gauss列主元法的c语言编程实现

gauss列主元法的c语言编程实现

ID:18650563

大小:48.50 KB

页数:5页

时间:2018-09-20

gauss列主元法的c语言编程实现_第1页
gauss列主元法的c语言编程实现_第2页
gauss列主元法的c语言编程实现_第3页
gauss列主元法的c语言编程实现_第4页
gauss列主元法的c语言编程实现_第5页
资源描述:

《gauss列主元法的c语言编程实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Gauss列主元法的C语言编程实现用高斯列主元消去法解线性方程组Ax=b。编程思路:在消元之前,在剩余的元素中选取绝对值最大的为主元,并将其换到主元的位置,以防止出现小数被大数吃掉的现象。然后再将矩阵化为三角矩阵,按照高斯消去法进行计算,最后进行回代求解。高斯列主元法程序代码如下:#include#includevoidmain(){floatarray[4][5],x,s;//定义二维数组和浮点变量//inti,j,m,k;//定义整型变量//printf("pleaseinputcoefficientmatrixar

2、ray:");//输入增广矩阵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("");for(k=0;k<=3;k++)//在相应的列中选主元//{m=k;for(i=k+1;i<=3;i++){x=

3、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[m][j]=x;}for(i=0;i<4;i++){for(j=0;j<5;j++){printf("%8.4f",array[i][j]);}printf("");}p

4、rintf("");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++)//输出变换后的矩阵//{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>=

5、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]);//输出结果//printf("");printf("x2=%f",array[1][4]);printf("");printf("x3=%f",array[2][4]);printf("");printf("x4=%f",array[3][4]);printf("");}验证程序的正确

6、性,输入已知解的方程增广矩阵,运行结果与方程解一致。图为输入的增广矩阵图为运行结果方程的解图为随机输入的增广矩阵运行的结果

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。