Gauss列主元消去法的C程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a[k][j]=t;
}
t=b[i0];
b[i0]=b[k];
b[k]=t;
/*消去过程*/
for(i=k+1;i<n;i++)
{
l[i][k]=-a[i][k]/a[k][k];
b[i]=b[i]+l[i][k]*b[k];
for(j=k;j<n;j++)
a[i][j]=a[i][j]+l[i][k]*a[k][j];
for(k=0;k<n-1;k++)
{/*寻找列主元*/
t=fabs(a[k][k]);
i0=k;
for(i=k+1;i<n;i++)
if(t<fabs(a[i][k]))
{
t=fabs(a[i][k]);
i0=i;
}
for(j=k;j<n;j++)
{
t=a[i0][j];
a[i0][j]=a[k][j];
}
}
printf("检验最后的方程是否为下三角矩阵\n");
for(i=0;iLeabharlann Baidun;i++)
for(j=0;j<n;j++)
printf("%lf",a[i][j]);
/*回代过程*/
b[n-1]=b[n-1]/a[n-1][n-1];
for(i=n-2;i>-1;i--)
{
for(j=i+1;j<n;j++)
b[i]=b[i]-b[j]*a[i][j];
b[i]=b[i]/a[i][i];
}
printf("\n方程组的解\n");
for(i=0;i<n;i++)
printf("x%d=%lf\n",i+1,b[i]);
}
printf("数组的维数n\n");
scanf("%d",&n);
printf("输入a[i][j]\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%lf",&a[i][j]);
printf("输入b[i]\n");
for(i=0;i<n;i++)
scanf("%lf",&b[i]);
#include<stdio.h>
#include<math.h>
#define N 20
#define EPSILON 0.000000001
void main()
{
int i,j,k,n,i0;
double a[N][N];
double b[N];
double l[N][N];
double t;
相关文档
最新文档