⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 列主元高斯消元法.txt

📁 高斯消元法
💻 TXT
字号:
#include<stdio.h>
#include<math.h>
#define H 20
#define L 30
main()
{
  int n,i,j,k,p;
  float a[H][L],m[H][L],b[H],x[L];
  float max,temp1,temp2,E;
  printf("Input n:");
  scanf("%d",&n);
  printf("Input a:\n");
  for(i=0;i<=n-1;i++)
  {
    for(j=0;j<=n-1;j++)
	{
	  scanf("%f,",&a[i][j]);
	}
  }
  printf("Input b:\n");
  for(i=0;i<=n-1;i++)
  {
    scanf("%f,",&b[i]);
  }
  for(k=0;k<=n-2;k++)
  {
    max=(float)fabs(a[k][k]);
	for(i=k;i<=n-1;i++)
	{
	  if((float)fabs(a[i][k])>(float)fabs(a[k][k]))
	  {
	    p=i;
		max=a[p][k];
	  }
	}
    if(max==0)
	{
	  printf("qi yi!\n");
	}
    if(p!=k)
	{
	  temp2=b[p];
	  b[p]=b[k];
	  b[k]=temp2;
	  for(j=k;j<=n-1;j++)
	  {
	    temp1=a[p][j];
        a[p][j]=a[k][j];
	    a[k][j]=temp1;
	  }
	} 
	for(i=k+1;i<=n-1;i++)
	{
	  m[i][k]=a[i][k]/a[k][k];
	  b[i]=b[i]-b[k]*m[i][k];
	  for(j=k+1;j<=n-1;j++)
	  {
	    a[i][j]=a[i][j]-a[k][j]*m[i][k];
	  }
	}
  }
  if(a[n-1][n-1]==0)
  {
    printf("qi yi!\n");
  }
  else
  {
	x[n-1]=b[n-1]/a[n-1][n-1];
	for(k=n-2;k>=0;k--)
	{
	  E=0.0;
	  for(j=k+1;j<=n-1;j++)
	  {
	    E=E+a[k][j]*x[j];
	  }
      x[k]=(b[k]-E)/a[k][k];
	}
    for(i=0;i<=n-1;i++)
	{
      printf("x[%d]=%f\n",i+1,x[i]);
	}
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -