数值分析A实验报告.docx

上传人:人*** 文档编号:542321905 上传时间:2023-08-10 格式:DOCX 页数:18 大小:53.67KB
返回 下载 相关 举报
数值分析A实验报告.docx_第1页
第1页 / 共18页
数值分析A实验报告.docx_第2页
第2页 / 共18页
数值分析A实验报告.docx_第3页
第3页 / 共18页
数值分析A实验报告.docx_第4页
第4页 / 共18页
数值分析A实验报告.docx_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《数值分析A实验报告.docx》由会员分享,可在线阅读,更多相关《数值分析A实验报告.docx(18页珍藏版)》请在金锄头文库上搜索。

1、数 值 分 析实验报告工程物理系二一六年一月十日实验3.1(主元的选取与算法的稳定性)问题提出:Gauss消去法是我们在线性代数中已经熟悉的。但由于计算机的数值运算是在一个有限的浮点数集合上进行的,如何才能确保Gauss消去法作为数值算法的稳定性呢?Gauss消去法从理论算法到数值算法,其关键是主元的选择。主元的选择从数学理论上看起来平凡,它却是数值分析中十分典型的问题。实验内容:考虑线性方程组 编制一个能自动选取主元,又能手动选取主元的求解线性方程组的Gauss消去过程。实验要求:(1)取矩阵,则方程有解取n=10计算矩阵的条件数。分别用顺序GAUSS消元法、列主元GAUSS消元法、完全主元

2、GAUSS消元法,结果如何?(2)现选择程序中手动选取主元的功能。每步消去过程总选取按模最小或按模尽可能小的元素作为主元,观察并记录计算结果。若每步消去过程总选取按模最大的元素作为主元,结果又如何?分析实验的结果。(3)取矩阵阶数n=20或者更大,重复上述实验过程,观察记录并分析不同的问题及消去过程中选择不同的主元时计算结果的差异,说明主元素的选取在消去过程中的作用。(4)选取其他你感兴趣的问题或者随机生成矩阵,计算其条件数。重复上述实验,观察记录并分析实验结果。3.1.1程序清单format long;n=input(矩阵的阶数:n=);sp_M=input(矩阵的种类(1:Hilbert;

3、2:随机矩阵;3:本题给出的矩阵;4:幻方矩阵):sp_M=);switch sp_M case(1); A=hilb(n); case(2); A=round(8*rand(n); case(3); A=6*diag(ones(1,n),0)+8*diag(ones(1,n-1),-1)+diag(ones(1,n-1),1); case(4); A=magic(n); end;b=A*ones(n,1);p=input(计算条件数的p-范数,p=);cond_A=cond(A,p)Any1=zeros(1,n);Any20=zeros(n,1);Any21=zeros(n,1);Any12

4、=eye(n);m,n=size(A);Ab=A b;Pro=input(计算方法(1:顺序高斯消元法;2,:列主元高斯消元法;3:完全主元高斯消元法;4:手动选主元法,Pro=);Abfor i=1:n-1 switch Pro case(1); case(2); aii,ip=max(abs(Ab(i:n,i); ip=ip+i-1; Any1=Ab(ip,:); Ab(ip,:)=Ab(i,:); Ab(i,:)=Any1; case(3); Y,I=max(max(abs(Ab(i:n,i:n); %显示最大值列号 I=I+i-1; x1,r=max(max(abs(Ab(i:n,i:

5、n); %显示最大值行号 r=r+i-1; Any2=Ab(:,I); Ab(:,I)=Ab(:,i); Ab(:,i)=Any2; %Ab阵I列与i列互换 Any1=Ab(r,:); Ab(r,:)=Ab(i,:); Ab(i,:)=Any1; %Ab阵r行与i行互换 Any21=Any12(:,I); Any12(:,I)=Any12(:,i); Any12(:,i)=Any21; %列交换跟踪 case(4); ip=input(第,num2str(i),步消元,请输入第,num2str(i),列所选元素所处行数:); Any1=Ab(ip,:); Ab(ip,:)=Ab(i,:); A

6、b(i,:)=Any1; end; aii=Ab(i,i); for k=i+1:n if(aii=0) Ab(k,i:n+1)=Ab(k,i:n+1)-(Ab(k,i)/aii)*Ab(i,i:n+1); else break; end; end; Abend;x=zeros(n,1);x(n)=Ab(n,n+1)/Ab(n,n);for i=n-1:-1:1 if(Pro=3) x(i)=(Ab(i,n+1)-Ab(i,i+1:n)*x(i+1:n)/Ab(i,i); x=Any12-1*x; else x(i)=(Ab(i,n+1)-Ab(i,i+1:n)*x(i+1:n)/Ab(i,i

7、); end;endx3.1.2实验结果及分析(1)Cond(A,1)= 2.557500000000000103 Cond(A,2)= 1.727556024913821103 Cond(A,inf)= 2.557500000000000103未知数顺序高斯消元法列主元高斯消元法完全主元高斯消元法x11.00000000000000011x21.00000000000000011x31.00000000000000011x41.00000000000000111x50.99999999999999811x61.00000000000000411x70.99999999999999311x81

8、.00000000000001211x90.99999999999997911x101.00000000000002811(2)手动选取主元,n=10未知数主元模最小或模尽可能小主元模最最大x11.0000000000000001x21.0000000000000001x31.0000000000000001x41.0000000000000011x50.9999999999999981x61.0000000000000041x70.9999999999999931x81.0000000000000121x90.9999999999999791x101.0000000000000281 结果分

9、析:由计算结果可知,主元取模最小结果没有主元取模最大结果好。由于最大主元与最小主元都没有过于小,都是相对好的一个数,所以结果差距很小。造成这样结果的原因是使用较小的数作为除数计算结果的误差会被放大。(3)n=20 Cond(A,1)= 2.621437500000000106 Cond(A,2)= 1.789670565812014106 Cond(A,inf)= 2.621437500000001106未知数顺序高斯消元法列主元高斯消元法完全主元高斯消元法手动主元模最小或模尽可能小手动主元模最最大x11.000000000000000111.0000000000000001x21.00000

10、0000000000111.0000000000000001x31.000000000000000111.0000000000000001x41.000000000000001111.0000000000000011x50.999999999999998110.9999999999999981x61.000000000000004111.0000000000000041x70.999999999999993110.9999999999999931x81.000000000000014111.0000000000000141x90.999999999999972110.9999999999999

11、721x101.000000000000057111.0000000000000571x110.999999999999886110.9999999999998861x121.000000000000227111.0000000000002271x130.999999999999547110.9999999999995471x141.000000000000902111.0000000000009021x150.999999999998209110.9999999999982091x161.000000000003524111.0000000000035241x170.999999999993179110.9999999999931791x181.000000000012732111.0000000000127321x190.999999999978173110.9999999999781731x201.000000000029102111.0000000000291021计算结果与二相比表明: 1.选取模最大的元素作为主元会产生为精确的结果。 2.在选取模最小元素作为主元时条件数越大误差越大。这是可以由摄动理论中事后误差估计是看出来的。

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

当前位置:首页 > 研究报告 > 教育

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