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

📄 guass-xiao-lie.c

📁 数值分析的几个C实现,比较小.
💻 C
字号:
#include<stdio.h>

main()
{int k,i,j,l,n=3;double z;
 double a[3][3]={{0.001,2,3},{-1,3.712,4.623},{-2,1.072,5.643}},b[3]={1,2,3},d,t;

 for(k=0;k<n;k++)
 {d=a[k][k];l=k;
  for(i=k+1;i<n;i++)
  {if(fabs(a[i][k])>fabs(d))
    {d=a[i][k];l=i; }
   }
  if(d==0) {printf("error\n");goto error;}
  else if(l!=k)
  {for(j=k;j<n;j++)
    { t=a[l][j];a[l][j]=a[k][j];a[k][j]=t;}
    t=b[l];b[l]=b[k];b[k]=t;
  }
 }

 for(k=0;k<n;k++)
 { for(j=k+1;j<n;j++)
     a[k][j]/=a[k][k];
   b[k]/=a[k][k];
   for(i=k+1;i<n;i++)
   { for(j=k+1;j<n;j++)
        a[i][j]-=a[i][k]*a[k][j];
     b[i]-=a[i][k]*b[k];
   }
  }
 for(i=n-2;i>=0;i--)
 { z=0;
   for(j=i+1;j<n;j++)
     z+=a[i][j]*b[j];
   b[i]-=z;
  }
 for(i=0;i<n;i++)
  printf("%.6f\n",b[i]);
 error:    ;
 getch();
 }

⌨️ 快捷键说明

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