高斯消去法和列主元高斯消去法解线性方程组的程序(C语言)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

//Gauss消去法解线性方程组

//参考教材《计算方法教程》第二版,西安交通大学出版社#include

int main(void)

{

float A[7][7]={{3,-5,6,4,-2,-3,8},

{1,1,-9,15,1,-9 ,2},

{2,-1,7,5,-1,6,11},

{-1,1,3,2,7,-1,-2},

{4,3,1,-7,2,1,1},

{2,9,-8,11,-1,-4,-1},

{7,2,-1, 2,7,-1,9}};

float b[7]={11,2,29,9,5,8,25};

float x[7]={0};

float Aik,S;

int i,j,k;

int size=7;

printf("A[][]\n");

for(i=0;i

{

for(j=0;j

printf("%f ",A[i][j]);

printf("\n");

}

printf("b[]\n");

for(i=0;i

printf("%f ",b[i]);

printf("\n\n");

//消去过程

for(k=0;k

{

if(!A[k][k])

return -1;

for(i=k+1;i

{

Aik=A[i][k]/A[k][k];

for(j=k;j

{

A[i][j]=A[i][j]-Aik*A[k][j];

}

b[i]=b[i]-Aik*b[k];

}

}

//消去的结果

printf("A[]\n");

for(i=0;i

{

for(j=0;j

printf("%f ",A[i][j]);

printf("\n");

}

printf("b[]\n");

for(i=0;i

printf("%f ",b[i]);

printf("\n\n");

//回代过程

x[size-1]=b[size-1]/A[size-1][size-1];

for(k=size-2;k>=0;k--)

{

S=b[k];

for(j=k+1;j

{

S=S-A[k][j]*x[j];

}

x[k]=S/A[k][k];

}

//solution

printf("The solution x[]=\n");

for(i=0;i

printf("%f ",x[i]);

return 0;

}

/列主元Gauss消去法解线性方程组

//参考教材《计算方法教程》第二版,西安交通大学出版社#include

#include

int main(void)

{

float A[7][7]={{3,-5,6,4,-2,-3,8},

{1,1,-9,15,1,-9 ,2},

{2,-1,7,5,-1,6,11},

{-1,1,3,2,7,-1,-2},

{4,3,1,-7,2,1,1},

{2,9,-8,11,-1,-4,-1},

{7,2,-1, 2,7,-1,9}}; float b[7]={11,2,29,9,5,8,25};

float x[7]={0};

float Aik,S,temp;

int i,j,k;

float max;//列主元的绝对值

int col;//列主元所在的行

int size=7;

printf("A[][]\n");

for(i=0;i

{

for(j=0;j

printf("%f ",A[i][j]);

printf("\n");

}

printf("b[]\n");

for(i=0;i

printf("%f ",b[i]);

printf("\n\n");

//-------消去过程---------

for(k=0;k

{

max=fabs(A[k][k]);

col=k;

//查找最大元素所在的行

for(i=k;i

{

if(max

{

max=fabs(A[i][k]);

col=i;

}

}

printf("col:%d\n",col);

for(j=k;j

{

temp=A[col][j];

A[col][j]=A[k][j];

A[k][j]=temp;

相关文档
最新文档