ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:135.50KB ,
资源ID:142909      下载积分:5 金币
已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(高斯列主消元数值分析实验报告.doc)为本站会员(夺命阿水)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(发送邮件至doc331@126.com或直接QQ联系客服),我们立即给予删除!

高斯列主消元数值分析实验报告.doc

1、数值分析实验报告之高斯列主消元法一、实验目的:清楚高斯列主元消去法与高斯主元素消去法的区别,以及它提出的必要性;掌握高斯列主元消去法的原理及推导过程,会用其解简单的线性方程组。二、实验内容:用高斯列主元消去法解方程组=三、实验原理:在采用高斯消去法解方程组时,小主元可能产生麻烦,即用其做除数,会导致其他元素数量级的严重增长和舍入误差的扩散,最终使得计算的解不可靠。故应避免采用绝对值小的主元素。在消元之前,选择一个绝对值最大的元素作为主元,用其做除数来进行消元,这样就具有较好的数值稳定性。这就是选主元消去法。下面详细说明列主元素消去法。 第一步:在Ax=b即的系数矩阵的第一列元素中选择一个绝对值

2、最大的元素,不妨设为。对调和及和(j=1,2,n,1ln)。以作为新的进行消元(消去对调后的第2n个方程中的)。 第k步:(1kn-1) 设第k-1步消元过程完成,得到,检查中第k列的后n-k+1个元素,从中选出绝对值最大者,不妨设是,称它为第k列主元素。若p=k,则取做除数直接进行消元。若pk,则将第p个方程与第k个方程对调,使成为新的,然后以其作为除数进行消元,继续这一过程,直至得到等价的三角形方程组,下一阶段的回代过程不变。四、 程序流程图:输入系数矩阵a,常数项b及ndet1k=0调用选列主元子程序i=k+1/(乘数 ) j=k+1jnindetdetkn-1/(求)i=n-2S10j

3、i+1j=0detdet。输出b及det结束开始否k+是是否i+是否j+否是j+是否i-回代过程消元过程选列主元的子程序流程图:有主程序转来d,pki=k+1|aik|d|daik, piind=0P=kj=ktapj apjakj akjtjntbp bpbk bktdet-det返回主程序是否选列主元否输出失败,det=0结束是否返回主程序是否j+i+五、程序代码#includestdio.h#includemath.h#define n 3void ChooseMain(double ann,double bn,int k,double *det) /选列主元int p=k;doubl

4、e d=akk,t;for(int i=k+1;ifabs(d)d=aik;p=i;if(d=0)det=0;printf(|a|=0n);elseif(p=k) return;elsefor(int j=k;jn;j+) /交换t=apj;apj=akj;akj=t;t=bp;bp=bk;bk=t;(*det)=-(*det);void Disp(double ann,double bn,double det)Double m;for(int k=0;kn-1;k+)ChooseMain(a,b,k,&det);/选主元for(int i=k+1;in;i+)m=aik/akk;/求乘数ai

5、k=m;for(int j=k+1;jn;j+)aij=aij-m*akj;bi=bi-aik*bk;det=akk*det;printf(-高斯列主消元法-n);printf(消元后,得到的上三角阵和b为:n-n);printf(aij bin);for(int i=0;in;i+)/输出for(int j=0;jn;j+)if(i=0;i-)double s=0;for(int j=i+1;jn;j+)s=s+aij*bj;bi=(bi-s)/aii;/求出xidet=an-1n-1*det;printf(-n);printf(方程组的解为:n x1 x2 x3n);for(i=0;in;i+)printf( %.4f,bi);printf(n-n);printf(行列式的值为: det=%.4fn,det);void main()double a33=0.001,2.000,3.000,-1.000,3.712,4.623,-2.000,1.072,5.643;double b3=1.000,2.000,3.000,det=1;Disp(a,b,det);六、程序结果七、实验总结 高斯列主元消去法在求解方程组时,避免了小主元对计算结果的影响,虽然花费了更多的机器时间,但这样使得求解得到的结果更加的准确。

宁ICP备18001539号-1