欢迎来到天天文库
浏览记录
ID:11097508
大小:48.50 KB
页数:5页
时间:2018-07-10
《gauss列主元法的c语言编程实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Gauss列主元法的C语言编程实现用高斯列主元消去法解线性方程组Ax=b。编程思路:在消元之前,在剩余的元素中选取绝对值最大的为主元,并将其换到主元的位置,以防止出现小数被大数吃掉的现象。然后再将矩阵化为三角矩阵,按照高斯消去法进行计算,最后进行回代求解。高斯列主元法程序代码如下:#include#includevoidmain(){floatarray[4][5],x,s;//定义二维数组和浮点变量//inti,j,m,k;//定义整型变量//printf("p
2、leaseinputcoefficientmatrixarray:");//输入增广矩阵array//for(i=0;i<4;i++){for(j=0;j<5;j++){scanf("%f",&array[i][j]);//输入一个4*5阶矩阵//}printf("");}for(i=0;i<4;i++)//输出输入的矩阵//{for(j=0;j<5;j++){printf("%8.4f",array[i][j]);}printf("");}printf("")
3、;for(k=0;k<=3;k++)//在相应的列中选主元//{m=k;for(i=k+1;i<=3;i++){x=fabs(array[m][k]);if(fabs(array[i][k]>x))m=i;}printf("%d",m);if(array[m][k]==0){printf("ERROR");return;}else//两行进行比较交换两行//{for(j=k;j<=4;j++){x=array[k][j];array[k][j]=array[m][j];array[
4、m][j]=x;}for(i=0;i<4;i++){for(j=0;j<5;j++){printf("%8.4f",array[i][j]);}printf("");}printf("");for(i=k+1;i<=3;i++){s=array[i][k]/array[k][k];//消元过程//for(j=0;j<=4;j++){array[i][j]=array[i][j]-s*array[k][j];}}}}for(i=0;i<4;i++)//输出变换后的矩阵//
5、{for(j=0;j<5;j++){printf("%8.4f",array[i][j]);}printf("");}array[3][4]=array[3][4]/array[3][3];//回代过程//for(i=2;i>=0;i--){x=0;for(j=i+1;j<4;j++){x=x+array[i][j]*array[j][4];}array[i][4]=(array[i][4]-x)/array[i][i];}printf("x1=%f",array[0][4]);//输出结果/
6、/printf("");printf("x2=%f",array[1][4]);printf("");printf("x3=%f",array[2][4]);printf("");printf("x4=%f",array[3][4]);printf("");}验证程序的正确性,输入已知解的方程增广矩阵,运行结果与方程解一致。图为输入的增广矩阵图为运行结果方程的解图为随机输入的增广矩阵运行的结果
此文档下载收益归作者所有