线性方程组迭代解法_第1页
线性方程组迭代解法_第2页
线性方程组迭代解法_第3页
线性方程组迭代解法_第4页
线性方程组迭代解法_第5页
免费预览已结束,剩余11页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-/实验六:线性方程组迭代解法1) 实验目的? 熟悉Matlab编程;? 学习线性方程组迭代解法的程序设计算法2) 实验题目1.研究解线性方程组12Ax=b迭代法收敛速度。A为20阶五对角距阵14121412要求:x0及右端向量b,给定迭代误差要求,用雅可比迭代和高斯-赛记录迭代次数,分析计算结果并得出(1) 选取不同的初始向量德尔迭代法求解,观察得到的序列是否收敛?若收敛, 你的结论。(2) 用SOR迭代法求解上述方程组,松弛系数3取1< 3 <2勺不同值,在时停止迭代.记录迭代次数,分析计算结果并得出你的结论。2.给出线性方程组HnXb,其中系数矩阵 H n为希尔伯特矩阵:Hn

2、hjrh,i,j 2,n.假设x 1,1,1n,b HnX.若取 n6,8,10,分别用雅可比迭代法及SOR迭代(1,1.25,1.5)求解,比较计算结果。3) 实验原理与理论基础1.雅克比(Jacobi)迭代法算法设计: 输入矩阵a与右端向量b及初值x(1,i); 按公式计算得.(k1)丄 biaiin(k) aijXj(i 1,2, n)2.高斯一一赛得尔迭代法算法设计:1. 输入矩阵a与右端向量b及初值x(1,i).2.x(k 1)-aii1(k 1) aijXj1n(k) aijXj(i =1,2,n)3.超松驰法算法设计:输入矩阵a与右端向量b及初值x(1,i) o x(k 1)(1

3、 )x(k)aiibi1(k 1) aijXj1(k) aijXj1,04) 实验内容 第一题实验程序:1.雅克比迭代法:function =yakebi(e)%俞入矩阵a与右端向量bofor i=1:20a(i,i)=3;endfor i=3:20 for j=i-2 a(i,j)=-1/4; a(j,i)=-1/4; endendfor i=2:20for j=i-1a(i,j)=-1/2; a(j,i)=-1/2; end endb=2.2 1.7 1.5 1.5 1.5 1.5 k=1;n=len gth(a);for i=1:nx(1,i)=1;%数组中没有第endwhile k&g

4、t;=1for i=1:n1.51.50行。1.5 1.5 1.51.51.5 1.51.5 1.5 1.5 1.5 1.7 2.2;m=0;%此步也可以用ifj=i条件判定一下。for j=1:(i-1)m=m+a(i,j)*x(k,j);endfor j=(i+1):n m=m+a(i,j)*x(k,j);endx(k+1,i)=(b(i)-m)/a(i,i); end1=0;%判定满足条件使循环停止迭代。for i=1:nl=l+abs(x(k+1,i)-x(k,i); endif l<ebreakendk=k+1;end%俞出所有的X的值。x(k+1,:)k2. 高斯一赛德尔迭代

5、法: function =gaoshisaideer(e) for i=1:20a(i,i)=3;endfor i=3:20for j=i-2a(i,j)=-1/4;a(j,i)=-1/4;end end for i=2:20for j=i-1a(i,j)=-1/2;a(j,i)=-1/2;endendb=2.2 1.7 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.7 2.2; k=1;n=len gth(a);for i=1:nx(1,i)=0;%数组中没有第0行。end while k>=1for

6、 i=1:np=0;q=0;for j=1:(i-1)p=p+a(i,j)*x(k+1,j);endfor j=(i+1):n q=q+a(i,j)*x(k,j);endx(k+1,i)=(b(i)-q-p)/a(i,i); endl=0;辔U定满足条件使循环停止迭代。for i=1:nl=l+abs(x(k+1,i)-x(k,i);endif l<ebreakendk=k+1;end%俞出所有的X的值。x(k+1,:)k3.S0R迭代法程序:function =caos on gci(e,w) for i=1:20a(i,i)=3;endfor i=3:20 for j=i-2 a(i

7、,j)=-1/4; a(j,i)=-1/4; endendfor i=2:20 for j=i-1 a(i,j)=-1/2; a(j,i)=-1/2; endend b=2.2 1.7 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.7 2.2; k=1;n=len gth(a);for i=1:nx(1,i)=0;%数组中没有第0行。endwhile k>=1if w>=2|w<=1'请重新输入w的值,w在 1与2之间;breakendfor i=1:np=0;q=0;for j=1

8、:(i-1)p=p+a(i,j)*x(k+1,j);endfor j=i:n q=q+a(i,j)*x(k,j);endx(k+1,i)=x(k,i)+w*(b(i)-q-p)/a(i,i); endl=0;%判定满足条件使循环停止迭代。for i=1:nl=l+abs(x(k+1,i)-x(k,i);endif l<ebreakendk=k+1;end%俞出所有的X的值。x(k+1,:)k第二题实验程序:1.雅克比迭代法:fun ctio n X = p211_1_JJ( n)Hn = GET_ Hn(n);b = GET_b( n);temp = 0;X0 = zeros(1, n)

9、;X_old = zeros(1, n);X_new = zeros(1, n);dis p('Now Jacobi method!');dis p( 'Start with the vector that (0, 0, 0, .)T'); for i = 1:nfor k = 1:nX_old = X_n ew;temp = 0;for j = 1:nif(j = i)temp = temp + Hn (i, j) * X_old(j); endendX_n ew(i) = (b(i) - tem p) / Hn( i, i); endendX = X_new

10、;end2.S0R迭代法:fun ction X = p211_1_SOR( n, w)Hn = GET_ Hn(n);b = GET_b( n);temp 01 = 0;temp02 = 0;X0 = zeros(1, n);X_old = zeros(1, n);X_new = zeros(1, n);dis p('Now Successive Over Relaxti on method!'); dis p('Start with the vector that (0, 0, 0, .)T'); for i = 1:nfor k = 1:nX_old =

11、X_n ew; temp 01 = 0; temp02 = 0;forj = 1:nif(j < i)temp 01 = temp01 + Hn (i, j) * X_n ew(j); end if(j > i)temp02 = temp02 + Hn(i, j) * X_old(j);endendendX_new(i) = w * (b(i) - tem p01 - tem p0 2) / Hn (i, i) + X_old(i);endX = X_new; end5)实验结果 第一题实验结果:1.雅克比迭代法: 输入:>> b=2.2 1.7 1.5 1.5 1.5

12、 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.7 2.2; yakebi(0.00001)结果:ans =Colu mns 1 through 120.97930.97870.99410.99700.99890.99950.99980.99991.00001.00001.00001.0000Colu mns 13 through 200.99990.99980.97930.99950.99890.99700.99410.9787122.高斯一赛德尔迭代法: 此时初值全取1;输入:>> b=2.2 1.7 1.5 1.5

13、 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.7 2.2; >> gaoshisaideer(0.00001)结果:ans =Colu mns 1 through 120.97930.97870.99410.99700.99890.99950.99980.99991.0000 1.0000 1.0000 1.0000Colu mns 13 through 200.99990.99980.99950.9989k =0.99700.99410.97870.979314此时初值全取1;输入:>> b=2.

14、5 1.9 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.9 2.5; gaoshisaideer(0.00001)结果:ans =Colu mns 1 through 121.09691.07071.00031.00011.0001Colu mns 13 through 201.00031.00061.02191.00011.00161.0969143.SOR迭代法:>> caoso ngci(0.00001,1.1) ans =Colu mns 1 through 120.97930.9787

15、0.99410.99991.00001.00001.00001.01031.00011.00390.99701.00001.00391.01030.99890.99951.00161.02190.99981.00061.0707Colu mns 13 through 200.99990.99980.99950.99890.99700.99410.9787-/250.979311>> caoso ngci(0.00001,1.2) ans =Colu mns 1 through 120.97930.97870.99991.00001.0000Colu mns 13 through 2

16、00.99990.99980.99411.00000.99701.00000.99890.99950.99980.979312>> caoso ngci(0.00001,1.3) ans =Colu mns 1 through 120.97930.97870.99991.00001.0000Colu mns 13 through 200.99990.99980.979315>> caoso ngci(0.00001,1.4) ans =Colu mns 1 through 120.97930.97870.99991.00001.0000Colu mns 13 throu

17、gh 200.99990.99980.979319>> caoso ngci(0.00001,1.5) ans =Colu mns 1 through 120.97930.97870.99991.00001.0000Colu mns 13 through 200.99990.99980.9793k =>> caoso ngci(0.00001,1.6)0.99950.99890.99700.99410.97870.99411.00000.99701.00000.99890.99950.99980.99950.99890.99700.99410.97870.99411.0

18、0000.99701.00000.99890.99950.99980.99950.99890.99700.99410.97870.99411.00000.99701.00000.99890.99950.99980.99950.99890.99700.99410.9787-/ans =Colu mns 1 through 120.97930.97870.99410.99700.99890.99950.99980.99991.00001.00001.00001.0000Colu mns 13 through 200.99990.99980.99950.99890.99700.99410.97870

19、.979334>> caoso ngci(0.00001,1.7)ans =Colu mns 1 through 120.97930.97870.99410.99700.99890.99950.99980.99991.00001.00001.00001.0000Colu mns 13 through 200.99990.99980.99950.99890.99700.99410.97870.979347>> caoso ngci(0.00001,1.8)ans =Colu mns 1 through 120.97930.97870.99410.99700.99890.9

20、9950.99980.99991.00001.00001.00001.0000Colu mns 13 through 200.99990.99980.99950.99890.99700.99410.97870.979373>> caoso ngci(0.00001,1.9)ans =Colu mns 1 through 120.97930.97870.99410.99700.99890.99950.99980.99991.00001.00001.00001.0000Colu mns 13 through 200.99990.99980.99950.99890.99700.99410

21、.97870.9793150第二题实验结果:1.雅克比迭代法:>> p211_1_JJ(6)Now Jacobi method!Start with the vector that (0, 0, 0, .)Tans =2.45001.10360.62650.40600.28310.2071>> p211_1_JJ(8)Now Jacobi method!Start with the vector that (0, 0, 0, .)Tans =2.71791.41010.85240.58090.42210.31980.24970.1995>> p211_1_J

22、J(10)Now Jacobi method!Start with the vector that (0, 0, 0, .)Tans =Colu mns 1 through 92.92901.66621.05170.74230.55540.43150.34450.28070.2325Colu mn 100.19512.SOR迭代法:n=6,沪1,1.25,1.5 的时候>> p211_1_SOR(6, 1)Now Successive Over Relaxti on method!Start with the vector that (0, 0, 0, .)Tans =2.4500

23、1.1036 0.62650.4060 0.28310.2071>> p 211_1_SOR(6, 1.25)Now Successive Over Relaxti on method!Start with the vector that (0, 0, 0, .)Tans =3.06250.23100.87040.33890.31410.2097>> p211_1_SOR(6, 1.5)Now Successive Over Relaxti on method!Start with the vector that (0, 0, 0, .)Tans =3.6750 -1.

24、10092.0106 -0.39940.7670-0.0384与 n=8, 03=1,1.25,1.5 的时候>> p 211_1_SOR(8, 1)Now Successive Over Relaxti on method!Start with the vector that (0, 0, 0, .)Tans =2.71791.41010.85240.58090.42210.31980.24970.1995>> p 211_1_SOR(8, 1.25)Now Successive Over Relaxti on method!Start with the vector that (0, 0, 0, .)Tans =3.39730.48871.08980.50620.45010.32030.25730.2042 >> p 211_1_SOR(8, 1.5)Now Successive Over Relaxti on method!Start with the vector that (0, 0, 0, .)Tans =4.0768 -0.94242.2923 -0.27530.92520.05780.40710.1275与n=10,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论