- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
列主元Gauss消去法
列主元Gauss消去法:程序:#include stdio.h#include stdlib.h#include math.h#define M 9#define N (M+1)float num[M][N];//增广矩阵数组float x[M];void Read_Xishu(){ FILE *fp; int i,j; if((fp = fopen(../shuzu.txt,r))==NULL) { printf(打开错误!); exit(1); }for(i=0;iM;i++)//从文件中读取数据for(j=0;jN;j++)fscanf(fp,%f,num[i][j]);printf(该方程组的增广矩阵num[%d][%d]为:\n,M,N); for(i=0;iM;i++)//将数据输出到显示屏{for(j=0;jN;j++)printf(%3.0f ,num[i][j]);printf(\n);}fclose(fp);}void Lie_Zhu_Yuan(){int i,j,k;int Lmax;//列主元所在的行float temp;for(i=0;iM;i++){Lmax=i;temp=(float)fabs(num[i][i]);for(j=i+1;jM;j++){if(temp(float)fabs(num[j][i])){temp=(float)fabs(num[j][i]);Lmax=j;}}if(Lmax!=i){for(k=i;kN;k++){temp=num[Lmax][k];num[Lmax][k]=num[i][k];num[i][k]=temp;}}for(j=i+1;jM;j++)//将系数矩阵化成上三角阵{temp=num[j][i]/num[i][i];for(k=i;kN;k++)num[j][k]=num[j][k]-num[i][k]*temp;}}}void Result(){int i,j;x[M-1]=num[M-1][N-1]/num[M-1][N-2];for(i=M-2;i=0;i--){x[i]=num[i][N-1];for(j=N-2;ji;j--)x[i]=x[i]-num[i][j]*x[j];x[i]=x[i]/num[i][i];}printf(该线性方程组的解为:\n);for(i=0;iM;i++)printf(x[%d]=%f\n,i+1,x[i]);printf(\n);}int main(void){Read_Xishu();//从文件中读取系数Lie_Zhu_Yuan();//列主元,转化成等价的三角方程组Result();//求解 return 0;}运行结果:上机体会:通过此次上机编程我学会了如何从文本中读取数据,嵌套语句的使用,用列主元Gauss消去法解线性方程的方法
文档评论(0)