1、为希尔伯矩阵:,i = 1, 2n.假设,若取n = 6, 8, 10,分别用雅克比迭代及SOR迭代(w = 1, 1.25, 1.5)求解.比较计算结果3)实验原理与理论基础:(一) 雅克比(Jacobi)迭代法算法设计: 输入矩阵a与右端向量b及初值x(1,i); 按公式计算得 (二)高斯赛得尔迭代法算法设计:1. 输入矩阵a与右端向量b及初值x(1,i). 2. (i = 1, 2, n) (三)超松驰法算法设计:输入矩阵a与右端向量b及初值x(1,i)。,4)实验内容:代码:雅克比(Jacobi)迭代法function =yakebi(e)%输入矩阵a与右端向量b。for i=1:20
2、 a(i,i)=3;endfor i=3: for j=i-2 a(i,j)=-1/4; a(j,i)=-1/4; endfor i=2: for j=i-1 a(i,j)=-1/2; a(j,i)=-1/2;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=length(a);n x(1,i)=1;%数组中没有第0行。while k=1 for i=1: m=0; %此步也可以用ifj=i条件判定一下。 for j=1:(i-1) m=m+a(i,j)*x(k,j);
3、 for j=(i+1): x(k+1,i)=(b(i)-m)/a(i,i); l=0; %判定满足条件使循环停止迭代。 l=l+abs(x(k+1,i)-x(k,i); if l=2|w 请重新输入w的值,w在1与2之间; for j=i: x(k+1,i)=x(k,i)+w*(b(i)-q-p)/a(i,i);第二题:雅克比迭代法实现的函数 function X = p211_1_JJ(n)Hn = GET_Hn(n);b = GET_b(n);temp = 0;X0 = zeros(1, n);X_old = zeros(1, n);X_new = zeros(1, n);disp(No
4、w Jacobi method!);Start with the vector that (0, 0, 0, .)Tfor i = 1: for k = 1: X_old = X_new; temp = 0; for j = 1: if(j = i) temp = temp + Hn(i, j) * X_old(j); end X_new(i) = (b(i) - temp) / Hn(i, i);X = X_new;SOR迭代法实现的函数function X = p211_1_SOR(n, w)temp01 = 0;temp02 = 0;Now Successive Over Relaxti
5、on method! for k = 1: X_old = X_new; temp01 = 0; temp02 = 0; for j = 1: if(j temp02 = temp02 + Hn(i, j) * X_old(j); X_new(i) = w * (b(i) - temp01 - temp02) / Hn(i, i) + X_old(i);End5)实验结果:第一题 雅克比(Jacobi)迭代法此时初值全取1; 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;yak
6、ebi(0.00001)ans = Columns 1 through 9 0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 Columns 10 through 18 1.0000 1.0000 1.0000 0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 Columns 19 through 20 0.9787 0.9793k = 12 b=2.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.
7、5 1.9 2.5; Columns 1 through 12 1.0969 1.0707 1.0219 1.0103 1.0039 1.0016 1.0006 1.0003 1.0001 1.0001 1.0001 1.0001 Columns 13 through 20 1.0003 1.0006 1.0016 1.0039 1.0103 1.0219 1.0707 1.0969 14 gaoshisaideer(0.00001) 0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 1.0000 1.0000 1.0
8、000 0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787 0.979314gaoshisaideer(0.00001)超松驰法 caosongci(0.00001,1.5) 25 caosongci(0.00001,1.4) 19 caosongci(0.00001,1.3) 15 caosongci(0.00001,1.6) 34 caosongci(0.00001,1.7) 47 caosongci(0.00001,1.9) 150对于雅克比迭代法,通过执行以下代码 p211_1_JJ(6) p211_1_JJ(8) p211_1_JJ(10
9、) 可以分别得到: Now Jacobi method!Start with the vector that (0, 0, 0, .)T 2.4500 1.1036 0.6265 0.4060 0.2831 0.20712.7179 1.4101 0.8524 0.5809 0.4221 0.3198 0.2497 0.1995 Columns 1 through 9 2.9290 1.6662 1.0517 0.7423 0.5554 0.4315 0.3445 0.2807 0.2325 Column 10 0.1951 对于SOR迭代法,执行相对应代码n=6, =1,1.25,1.5的时
10、候 p211_1_SOR(6, 1) 2.4500 1.1036 0.6265 0.4060 0.2831 0.2071 p211_1_SOR(6, 1.25) 3.0625 0.2310 0.8704 0.3389 0.3141 0.2097 p211_1_SOR(6, 1.5) 3.6750 -1.1009 2.0106 -0.3994 0.7670 -0.0384与n=8, =1,1.25,1.5的时候 p211_1_SOR(8, 1) p211_1_SOR(8, 1.25)3.3973 0.4887 1.0898 0.5062 0.4501 0.3203 0.2573 0.2042 p
11、211_1_SOR(8, 1.5)4.0768 -0.9424 2.2923 -0.2753 0.9252 0.0578 0.4071 0.1275与n=10, =1,1.25,1.5的时候 p211_1_SOR(10, 1)2.9290 1.6662 1.0517 0.7423 0.5554 0.4315 0.3445 0.2807 0.2325 0.1951 p211_1_SOR(10, 1.25)3.6612 0.7098 1.2835 0.6617 0.5807 0.4299 0.3506 0.2844 0.2363 0.1984 p211_1_SOR(10, 1.5)4.3935 -0.7958 2.5326 -0.1523 1.0720 0.1565 0.5050 0.2041 0.2819 0.17666)实验结果分析与小结:1.在实习中,进行学习MATLAB,有助于将两者都更加的熟悉并加以充分利用。2.此次取的b对于雅克比迭代法、高斯赛得尔迭代法都是收敛的,对于相同的初值与右端向量明显可以看出高斯赛得尔迭代法比雅克比迭代法快,这与理论上的分析完全一致嘛。3.对于SOR迭代方法选择不同的松弛因子收敛次数大大不同,当松弛因子为1.1时,在同等条件下迭代最快.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1