用高斯消去法解线性方程组C程序及结果

上传人:hs****ma 文档编号:543561241 上传时间:2022-08-27 格式:DOC 页数:7 大小:33.50KB
返回 下载 相关 举报
用高斯消去法解线性方程组C程序及结果_第1页
第1页 / 共7页
用高斯消去法解线性方程组C程序及结果_第2页
第2页 / 共7页
用高斯消去法解线性方程组C程序及结果_第3页
第3页 / 共7页
用高斯消去法解线性方程组C程序及结果_第4页
第4页 / 共7页
用高斯消去法解线性方程组C程序及结果_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《用高斯消去法解线性方程组C程序及结果》由会员分享,可在线阅读,更多相关《用高斯消去法解线性方程组C程序及结果(7页珍藏版)》请在金锄头文库上搜索。

1、用高斯消去法解线性方程组。设有n元线性方程组如下:a00x0+a01x1+a0,n-1xn-1=b0a10x0+a11x1+a1,n-1xn-1=b1An-1,0x0+an-1,1x1+an-1,n-1xn-1=bn-1算法:对于从0开始到2结束,进行如下环节:一方面,第行第k列的数不能为0,若为0,则与下面不为0的行互换。将行所有数除以第k行第k列的数.另一方面,进行消去:ijaij-ik*akj,i=k1,+,,-b=bi-aik*b,i=+,k+2,n-1最后,回代过程xn-1=bn-1/an1n-1xibi-aijxj,I=n-2,1,0定义一种矩阵类Mati作为基类,然后由矩阵类派生

2、出线性方程组类ineu。程序清单:#inclueiotemiludecmathusingnmespace std;class Matrix /定义矩阵类public:Matix(in dim=) /构造函数ndex=dims; /保护数据赋值atrixAne doubleindx*indx; /动态内存分派Matrix() leteMatixA; /内存释放vod setMatrix(oube *ratr) /设立矩阵值for(in i=0;idexndx;i+)*(MatrxA+i)ratri; /矩阵成员赋初值vod printM(); /显示矩阵otetd:in index;doule*

3、 MatrixA;las Lineq:publi Matrix /线性方程组类pblic:Lneu(nt dms2):Mtrx(dis) sums=newdoubledims;slunewoubledis; Lineu();o setineu(dble*,dubl*b); /方程赋值o pt(); /显示方程int Solv(); /高斯消元法求解vodshwX(); /输出方程的解private:doube*sus;double *ol;void Mtrx:prit() /显示矩阵的元素coutTe atr is:endl;fr(int i0;idex;i+)fr(it j0;dex;+)c

4、out*(atriA+i*n+) ;outnd;ne:Linequ()deleteu;dletesolu;od Linequ::setLinequ(dble *a,oble *) /方程赋值sttrx(a);for(in ;nd;+)susi=b;voi inqu:prntL() /显示方程couth Lie ution i:edl;for(nt =0;iindex;)o(int j0;jindx;j+)cout*(aiA+*inx+j) ;cu sumiend;vid Lieq:showX() /输出方程的解ctThe Resul is:ed;fo(int i=0;iindx;i+)outX

5、i=soiedl;ntiequ:Slve() /解线性方程组ntl,k,j,is,m=0;oubl ,t;=;fr(k=0;d)d=t;is=i;f(d1.=.0)l=0;if(l=0)cutfailendl;retur(0);d=atrAk*indexk;if(d=0)m+;d=trixA(k)*index+;is=k+;if(s!)for(j=k;j=idx-1;j+)k*idex+j;q=*inex+j;=rixp;MatrxAp=Matrixq;atrix=t;t=sms;mk=susis;umsis=t;Matrxk*indexk; for(j=k;=indx;j+) p=index

6、j;MatrixAp=atrixAp/d; smsksumsk/d; for(i=k+;i=inx-;i+) fo(k1;=nde1;+) p=iindx; MatrixAMariAp-atrAindx+k*MatiAk*ndex+j; umsi=sumsi-atixAi*idx+kusk; d=MatriA(ide1)*ndeindex-1;if(fab(d)+10=0) outfiedl; tun(0);soundex=susindex-1/d; /回代过程f(i=nd-2;i=0;i-) =0.0; for(i+1;idex1;j+) t=tatrxAi*nd+oluj; sol=si-t;intmain() /主函数dule a=2,0.5,-5,0,-05,0,-.5,0.5,,,-.5, 0,-05,-0.5,2;double b4=0,3,3,0;iequeql(4);equl.stLiq(a,b);equl.prin();if(equSve()ql.hwX();eecotFailenl;eturn 0;运营成果:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号