资源描述:
《数值分析实验报告_清华大学__线性代数方程组的数值解法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、线性代数方程组的数值解法实验1.主元的选取与算法的稳定性问题提出:Gauss消去法是我们在线性代数中已经熟悉的。但由于计算机的数值运算是在一个有限的浮点数集合上进行的,如何才能确保Gauss消去法作为数值算法的稳定性呢?Gauss消去法从理论算法到数值算法,其关键是主元的选择。主元的选择从数学理论上看起来平凡,它却是数值分析中十分典型的问题。实验内容:考虑线性方程组编制一个能自动选取主元,又能手动选取主元的求解线性方程组的Gauss消去过程。实验要求:(1)取矩阵,则方程有解。取n=10计算矩阵的条件数。让程序自动选取
2、主元,结果如何?(2)现选择程序中手动选取主元的功能。每步消去过程总选取按模最小或按模尽可能小的元素作为主元,观察并记录计算结果。若每步消去过程总选取按模最大的元素作为主元,结果又如何?分析实验的结果。(3)取矩阵阶数n=20或者更大,重复上述实验过程,观察记录并分析不同的问题及消去过程中选择不同的主元时计算结果的差异,说明主元素的选取在消去过程中的作用。(4)选取其他你感兴趣的问题或者随机生成矩阵,计算其条件数。重复上述实验,观察记录并分析实验结果。1.1程序清单n=input('矩阵A的阶数:n=');A=6*di
3、ag(ones(1,n))+diag(ones(1,n-1),1)+8*diag(ones(1,n-1),-1);b=A*ones(n,1);p=input('计算条件数使用p-范数,p=');cond_A=cond(A,p)[m,n]=size(A);Ab=[Ab];r=input('选主元方式(0:自动;1:手动),r=');Abfori=1:n-1switchrcase(0)[aii,ip]=max(abs(Ab(i:n,i)));ip=ip+i-1;case(1)ip=input(['第',num2str(i)
4、,'步消元,请输入第',num2str(i),'列所选元素所处的行数:']);end;Ab([iip],:)=Ab([ipi],:);aii=Ab(i,i);fork=i+1:nAb(k,i:n+1)=Ab(k,i:n+1)-(Ab(k,i)/aii)*Ab(i,i:n+1);end;ifr==1Abendend;x=zeros(n,1);x(n)=Ab(n,n+1)/Ab(n,n);fori=n-1:-1:1x(i)=(Ab(i,n+1)-Ab(i,i+1:n)*x(i+1:n))/Ab(i,i);endx1.2运行
5、结果(1)n=10,矩阵的条件数及自动选主元Cond(A,1)=2.5575×103Cond(A,2)=1.7276×103Cond(A,inf)=2.5575×103程序自动选择主元(列主元)a.输入数据矩阵A的阶数:n=10计算条件数使用p-范数,p=1选主元方式(0:自动;1:手动),r=0b.计算结果x=[1,1,1,1,1,1,1,1,1,1]T(2)n=10,手动选主元a.每步消去过程总选取按模最小或按模尽可能小的元素作为主元矩阵A的阶数:n=10计算条件数使用p-范数,p=1选主元方式(0:自动;1:手动
6、),r=1第1步消元,请输入第1列所选元素所处的行数:1第2步消元,请输入第2列所选元素所处的行数:2…(实际选择时,第k步选择主元处于第k行)最终计算得x=[1.0000,1.0000,1.0000,1.0001,0.9998,1.0004,0.9993,1.0012,0.9979,1.0028]Tb.每步消去过程总选取按模最大的元素作为主元矩阵A的阶数:n=10计算条件数使用p-范数,p=1选主元方式(0:自动;1:手动),r=1第1步消元,请输入第1列所选元素所处的行数:2第2步消元,请输入第2列所选元素所处的行
7、数:3…(实际选择时,第k步选择主元处于第k+1行)最终计算得x=[1,1,1,1,1,1,1,1,1,1]T(3)n=20,手动选主元a.每步消去过程总选取按模最小或按模尽可能小的元素作为主元矩阵A的阶数:n=20计算条件数使用p-范数,p=1选主元方式(0:自动;1:手动),r=1第1步消元,请输入第1列所选元素所处的行数:1第2步消元,请输入第2列所选元素所处的行数:2…(实际选择时,第k步选择主元处于第k行)最终计算得x=[1.0000,1.0000,1.0000,1.0001,0.9998,1.0004,0.
8、9993,1.0014,0.9972,1.0057,0.9886,1.0227,0.9547,1.0902,0.8209,1.3524,0.3179,1.2732,0.8173,1.9102]Tb.每步消去过程总选取按模最大的元素作为主元矩阵A的阶数:n=20计算条件数使用p-范数,p=1选主元方式(0:自动;1:手动),r=1第