2022年清华大学数值分析实验报告.docx
《2022年清华大学数值分析实验报告.docx》由会员分享,可在线阅读,更多相关《2022年清华大学数值分析实验报告.docx(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2022年清华大学数值分析实验报告 数值分析试验报告 一、 试验3.1 题目: 考虑线性方程组,编制一个能自动选取主元,又能手动选取主元的求解线性代数方程组的Gauss消去过程。 (1)取矩阵,则方程有解。取计算矩阵的条件数。分别用依次Gauss消元、列主元Gauss消元和完全选主元Gauss消元方法求解,结果如何? (2)现选择程序中手动选取主元的功能,每步消去过程都选取模最小或按模尽可能小的元素作为主元进行消元,视察并记录计算结果,若每步消去过程总选取按模最大的元素作为主元,结果又如何?分析试验的结果。 (3)取矩阵阶数n=20或者更大,重复上述试验过程,视察记录并分析不同的问题及消去过程
2、中选择不同的主元时计算结果的差异,说明主元素的选取在消去过程中的作用。 (4)选取其他你感爱好的问题或者随机生成的矩阵,计算其条件数,重复上述试验,视察记录并分析试验的结果。 1. 算法介绍 首先,分析各种算法消去过程的计算公式, 依次高斯消去法: 第k步消去中,设增广矩阵中的元素(若等于零则可以判定系数矩阵为奇异矩阵,停止计算),则对k行以下各行计算,分别用乘以增广矩阵的第行并加到第行,则可将增广矩阵中第列中以下的元素消为零;重复此方法,从第1步进行到第n-1步,则可以得到最终的增广矩阵,即; 列主元高斯消去法: 第k步消去中,在增广矩阵中的子方阵中,选取使得,当时,对中第行与第行交换,然后
3、根据和依次消去法相同的步骤进行。重复此方法,从第1步进行第n-1步,就可以得到最终的增广矩阵,即; 完全主元高斯消去法: 第k步消去中,在增广矩阵中对应的子方阵中,选取使得,若或,则对中第行与第行、第列与第列交换,然后根据和依次消去法相同的步骤进行即可。重复此方法,从第1步进行到第n-1步,就可以得到最终的增广矩阵,即; 接下来,分析回代过程求解的公式,简单看出,对上述任一种消元法,均有以下计算公式: 2. 试验程序的设计 一、输入试验要求及初始条件; 二、计算系数矩阵A的条件数及方程组的理论解; 三、对各不同方法编程计算,并输出最终计算结果。 3. 计算结果及分析 (1) 先计算系数矩阵的条
4、件数,结果如下, 可知系数矩阵的条件数较大,故此问题属于病态问题, b或A的扰动都可能引起解的较大误差; 采纳依次高斯消去法,计算结果为: 最终解为x=T 运用无穷范数衡量误差,得到=2.842170943040401e-14,可以发觉,采纳依次高斯消元法求得的解与精确解之间误差较小。通过进一步视察,可以发觉,根据依次高斯消去法计算时,其选取的主元值和矩阵中其他元素大小相近,因此依次高斯消去法方式并没有对结果造成特殊大的影响。 若采纳列主元高斯消元法,则结果为: 最终解为x=T 同样运用无穷范数衡量误差,有=0; 若运用完全主元高斯消元法,则结果为 最终解x=T 同样运用无穷范数衡量误差,有=
5、0; (2) 若每步都选取模最小或尽可能小的元素为主元,则计算结果为 最终解x=T 运用无穷范数衡量误差,有为2.842170943040401e-14;而完全主元消去法的误差为=0。 从(1)和(2)的试验结果可以发觉,列主元消去法和完全主元消去法都得到了精确解,而依次高斯消去法和以模尽量小的元素为主元的消去法没有得到精确解。在后两种消去法中,由于程序计算时的舍入误差,对最终结果产生了肯定的影响,但由于方程组的维度较低,并且元素之间相差不大,所以误差仍比较小。 为进一步分析,计算上述4种方法每步选取的主元数值,并列表进行比较,结果如下: 第n次消元 依次 列主元 完全主元 模最小 1 6.0
6、00000000000000 8 8 6.000000000000000 2 4.666666666666667 8 8 4.666666666666667 3 4.285714285714286 8 8 4.285714285714286 4 4.133333333333333 8 8 4.133333333333333 5 4.064516129032258 8 8 4.064516129032258 6 4.031746031746032 8 8 4.031746031746032 7 4.015748031496063 8 8 4.015748031496063 8 4.0078431
7、37254902 8 8 4.007843137254902 9 4.003913894324853 8 8 4.003913894324853 10 4.001955034213099 0.015617370605469 0.015617370605469 4.001955034213099 从上表可以发觉,对这个方程组而言,依次高斯消去选取的主元恰好事模尽量小的元素,而由于列主元和完全主元选取的元素为8,与4在数量级上差别小,所以计算过程中的累积误差也较小,最终4种方法的输出结果均较为精确。 在这里,详细说明一下依次法与模最小法的计算结果完全一样的缘由。该矩阵在消元过程中,每次选取主元的一
8、列只有两个非零元素,对角线上的元素为4左右,而其正下方的元素为8,该列其余位置的元素均为0。在这样的状况下,默认的主元也就是该列最小的主元,因此两种方法所得到的计算结果是一样的。 理论上说,完全高斯消去法的误差最小,其次是列主元高斯消去法,而选取模最小的元素作为主元时的误差最大,但是由于方程组的特别性(元素相差不大并且维度不高),这个理论现象在这里并没有充分体现出来。 (3) 时,重复上述试验过程,各种方法的计算结果如下所示,在这里,仍采纳无穷范数衡量肯定误差。 依次高斯消去法 列主元高斯消去 完全主元高斯消去 选取模最小或尽可能小元素作为主元消去 X 1.000000000000000 1.
9、000000000000000 1.000000000000000 1.000000000000001 0.999999999999998 1.000000000000004 0.999999999999993 1.000000000000014 0.999999999999972 1.000000000000057 0.999999999999886 1.000000000000227 0.999999999999547 1.000000000000902 0.999999999998209 1.000000000003524 0.999999999993179 1.000000000012
10、732 0.999999999978173 1.000000000029102 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1.000000000000000 1.000000000000000 1.000000000000000 1.000000000000001 0.999999999999998 1.000000000000004 0.999999999999993 1.000000000000014 0.999999999999972 1.000000000000057
11、0.999999999999886 1.000000000000227 0.999999999999547 1.000000000000902 0.999999999998209 1.000000000003524 0.999999999993179 1.000000000012732 0.999999999978173 1.000000000029102 2.910205409989430e-11 0 0 2.910205409989430e-11 可以看出,此时列主元和完全主元的计算结果仍为精确值,而依次高斯消去和模尽可能小方法仍旧产生了肯定的误差,并且两者的误差一样。与n=10时候的误差
12、比相比,n=20时的误差增长了大约1000倍,这是由于计算过程中舍入误差的不断累积所致。所以,假如进一步增加矩阵的维数,应当可以看出更明显的现象。 (4) 不同矩阵维度下的误差如下,在这里,为便利起见,选取2-条件数对不同维度的系数矩阵进行比较。 维度 条件数 依次消去 列主元 完全主元 模尽量小 1.7e+3 2.84e-14 0 0 2.84e-14 1.8e+6 2.91e-11 0 0 2.91e-11 5.7e+7 9.31e-10 0 0 9.31e-10 1.8e+9 2.98e-08 0 0 2.98e-08 1.9e+12 3.05e-05 0 0 3.05e-05 3.8e
13、+16 3.28e+04 3.88e-12 3.88e-12 3.28e+04 8.5e+16 3.52e+13 4.2e-3 4.2e-3 3.52e+13 从上表可以看出,随着维度的增加,不同方法对计算误差的影响渐渐体现,并且增长较快,这是由于舍入误差逐步累计而造成的。不过,方法二与方法三在维度小于40的状况下都得到了精确解,这两种方法的累计误差远比方法一和方法四慢;同样地,出于与前面相同的缘由,方法一与方法四的计算结果保持一样,方法二与方法三的计算结果保持一样。 4. 结论 本文矩阵中的元素差别不大,模最大和模最小的元素并没有数量级上的差异,因此,不同的主元选取方式对计算结果的影响在维度
14、较低的状况下并不明显,四种方法都足够精确。 对比四种方法,可以发觉采纳列主元高斯消去或者完全主元高斯消去法,可以尽量抑制误差,算法最为精确。不过,对于低阶的矩阵来说,四种方法求解出来的结果误差均较小。 另外,由于完全选主元方法在选主元的过程中计算量较大,而且可以发觉列主元法已经可以达到很高的精确程度,因而在实际计算中可以选用列主元法进行计算。 附录:程序代码 clear clc; format long; %方法选择 n=input; disp; disp; a=input; %赋值A和b A=zeros; b=zeros; for i=1:n A=6; if i>1 A=8; end
15、if i<n A=1; end end for i=1:n for j=1:n b=b+A; end end disp; A disp; b %求条件数及理论解 disp; X= fprintf); fprintf); fprintf); %依次Gauss消元法 if a=1 A1=A;b1=b; for k=1:n if A1=0 disp; break end fprintf) %disp; %A1 for p=k+1:n l=A1/A1; A1=A1-l*A1; b1=b1-l*b1; end end x1=b1/A1; for k=n-1:-1:1 for w=k+1:n b1=
16、b1-A1*x1; end x1=b1/A1; end disp; disp; disp; norm end %列主元Gauss消元法 if a=2 A2=A;b2=b; for k=1:n max_i,max_j=find=max); if max_i=k A2_change=A2; A2=A2; A2=A2_change; b2_change=b2; b2=b2; b2=b2_change; end if A2=0 disp; break end fprintf) %disp; %A2 for p=k+1:n l=A2/A2; A2=A2-l*A2; b2=b2-l*b2; end end
17、 x2=b2/A2; for k=n-1:-1:1 for w=k+1:n b2=b2-A2*x2; end x2=b2/A2; end disp; disp; disp; norm end %完全选主元Gauss消元法 if a=3 A3=A;b3=b; for k=1:n VV=eye; max_i,max_j=find=max); if numel=0 max_i,max_j=find=-max); end W=eye; W+k-1,max_i+k-1)=0; W=0; W+k-1,k)=1; W+k-1)=1; V=eye; V=0; V+k-1,max_j+k-1)=0; V+k-1
18、)=1; V+k-1,k)=1; A3=W*A3*V; b3=W*b3; VV=VV*V; if A3=0 disp; break end fprintf) %disp; %A3 for p=k+1:n l=A3/A3; A3=A3-l*A3; b3=b3-l*b3; end end x3=b3/A3; for k=n-1:-1:1 for w=k+1:n b3=b3-A3*x3; end x3=b3/A3; end disp; disp; disp; norm end %模最小或近可能小的元素作为主元 if a=4 A4=A;b4=b; for k=1:n AA=A4; AA=NaN; mi
19、n_i,j=find=min); if numel=0 min_i,j=find=-min); end W=eye; W+k-1,min_i+k-1)=0; W=0; W+k-1,k)=1; W+k-1)=1; A4=W*A4; b4=W*b4; if A4=0 disp; break end fprintf) %A4 for p=k+1:n l=A4/A4; A4=A4-l*A4; b4=b4-l*b4; end end x4=b4/A4; for k=n-1:-1:1 for w=k+1:n b4=b4-A4*x4; end x4=b4/A4; end disp; disp; disp;
20、norm end 二、试验3.3 题目: 考虑方程组的解,其中系数矩阵H为Hilbert矩阵: 这是一个闻名的病态问题。通过首先给定解(例如取为各个重量均为1)再计算出右端的方法给出确定的问题。 (1)选择问题的维数为6,分别用Gauss消去法(即LU分解)、J迭代法、GS迭代法和SOR迭代法求解方程组,其各自的结果如何?将计算结果与问题的解比较,结论如何。 (2)逐步增大问题的维数,仍用上述的方法来解它们,计算的结果如何?计算的结果说明的什么? (3)探讨病态问题求解的算法。 1. 算法设计 对随意线性方程组,分析各种方法的计算公式如下, (1)Gauss消去法: 首先对系数矩阵进行LU分解
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 清华大学 数值 分析 实验 报告
限制150内