数值分析报告课程设计方案书:比较各种迭代收敛速度

上传人:pu****.1 文档编号:512819589 上传时间:2023-02-22 格式:DOCX 页数:7 大小:71.47KB
返回 下载 相关 举报
数值分析报告课程设计方案书:比较各种迭代收敛速度_第1页
第1页 / 共7页
数值分析报告课程设计方案书:比较各种迭代收敛速度_第2页
第2页 / 共7页
数值分析报告课程设计方案书:比较各种迭代收敛速度_第3页
第3页 / 共7页
数值分析报告课程设计方案书:比较各种迭代收敛速度_第4页
第4页 / 共7页
数值分析报告课程设计方案书:比较各种迭代收敛速度_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《数值分析报告课程设计方案书:比较各种迭代收敛速度》由会员分享,可在线阅读,更多相关《数值分析报告课程设计方案书:比较各种迭代收敛速度(7页珍藏版)》请在金锄头文库上搜索。

1、数值分析课程设计比较各种迭代收敛速度分别用雅可比迭代法(J)、高斯一塞德尔迭代法(G-S)、超松弛迭代法(SOR)计算方程组并比较哪一种迭代方法收敛的速度更快方程真实值计算:A=4 -1 0;-1 4 -1;0 -1 4;b=10 8 10;jX=Ab得到结果:3.4286 3.71433.4286雅可比迭代:首先编写 jacdd.m 的函数文件(见附录一) 调用程序,在命令窗口分别输入如下语句: A=4 -1 0;-1 4 -1;0 -1 4;b=10;8;10;X0=0 0 0; X=jacdd(A,b,X0,inf,0.00001,100) 结果见表一高斯塞德尔迭代:首先编写 gsddd

2、y.m 的函数文件(见附录二) 调用程序,在命令窗口分别输入如下语句: A=4 -1 0;-1 4 -1;0 -1 4;b=10;8;10;X0=0 0 0;X=gsdddy(A,b,X0,inf, 0.00001,100) 结果见表一雅可比迭代误差计算:3.31253.37503.41413.42193.42683.42773.42833.42853.50003.65633.68753.70703.71093.71343.71393.71423.31253.37503.41413.42193.42683.42773.42833.4285x0=3.4286 3.7143 3.4286;%此为方

3、程组的真实值 x1=2.5000 3.00003.4285 3.4286; x2=2.0000 3.25003.7142 3.7143; x3=2.5000 3.00003.4285 3.4286;format long %循环求二范数的平方 for i=1:12t(i)=(x1(i)-3.4286)八2+(x2(i)-3.7143)八2+(x3(i)-3.4286)八2; sqrt(t(i)end 结果见表一高斯塞德尔迭代误差计算:x0=3.4286 3.7143 3.4286; %此为方程组的真实值x1=2.5000 3.1563 3.3945 3.4243 3.4280 3.4285 3

4、.4286; x2=2.6250 3.5781 3.6973 3.7122 3.7140 3.7143 3.7143; x3=3.1563 3.3945 3.4243 3.4280 3.4285 3.4286 3.4286; format long%循环求二范数的平方for i=1:6s(i)=(x1(i)-3.4286)八2+(x2(i)-3.7143)八2+(x3(i)-3.4286)八2; sqrt(s(i)end结果见表一表雅可比迭代高斯一塞德尔迭代次数X1X2X3误差次数X1X2X3误差12.50002.00002.50002.159495412.50002.62503.15631.

5、457058623.00003.25003.00000.763525023.15633.57813.39450.306366733.31253.50003.31250.269968333.39453.69733.42430.038344543.37503.65633.37500.095445943.42433.71223.42800.004822953.41413.68753.41410.033745253.42803.71403.42850.000678263.42193.70703.42190.011961263.42853.71433.42860.000099973.42683.7109

6、3.42680.004247473.42863.71433.4286083.42773.71343.42770.0015588893.42833.71393.42830.00058319103.42853.71423.42850.000173210113.42853.71423.42850.000173211123.42863.71433.4286012注:MATLAB计算的误差为16位有效数字,由于表的位置有限,这里只取8位有效数字 画图比较:画图函数:k=1:12;x=2.1594954 0.7635250 0.2699683 0.0954459 0.0337452 0.0119612 0

7、.00424740.0015588 0.0005831 0.0001732 0.0001732 0; %J 的迭代误差 plot(k,x,b)hold ony=1.4570586 0.3063667 0.0383445 0.0048229 0.0006782 0.0000999 0 0 0 0 00; %G-S 的迭代误差plot(k,y,-.)legend(J迭代,G-S迭代)画出图形,标明各曲线的含义ti tle(误差图);%加上标题text(k(1),x(1),start) %注明起始和终止点 text(k(11),x(11),end)xlabel(K 迭代次数); %标注横,纵坐标 y

8、label(误差);grid on%画出网格结论:从数据图表可观察到:雅可比的迭代次数明显比高斯塞德尔的迭代次数要多, 所以高斯塞德尔比雅可比迭代的收敛速度快.G-S迭代与J迭代在本质上没有必然的联系,求解方程组时,J迭代的速度与 G-S迭代收敛的速度没有确定的关系,但在此题中,J迭代比G-S迭代的收敛速 度慢。超松弛迭代法最佳松弛因子选取编写文件名为sor.m的M文件(见附录三)得到结果如下表(全部结果的部分,包含最少迭代次数的松弛因子)D =2.5857864376269054.0000000000000005.414213562373096max =5.414213562373096x0

9、 =3.428571428571428 3.714285714285714 3.428571428571428松弛因子迭代次数松弛因子迭代次数松弛因子迭代次数0.1000450.2500130.3000240.1500280.2550130.3200370.2000190.2600130.340066x2 =3.428570324369727 3.714280160244631 3.428570324369727 ans =0.255000000000000 13.000000000000000 结论:最佳松弛因子口=0.2550,使得迭代次数最少且结果最接近真实值。附录一:function

10、X=jacdd(A,b,X0,P,wucha,max1) n m=size(A);for j=1:m a(j)=sum(abs(A(:,j)-2*(abs(A(j,j);endfor i=1:nif a(i)=0disp(系数矩阵A不是严格对角占优,此雅可比迭代不一定收敛)returnendendif a(i)0disp(系数矩阵A不是严格对角占优,方程有唯一解,且雅可比迭代收敛)endfor k=1:max1kfor j=1:mX(j)=(b(j)-A(j,1:j-1,j+1:m)*X0(1: j-1,j+1:m)/A(j,j);endX,djwcX=norm(X-X0,P); xdwcX=

11、djwcX/(norm(X,P)+eps); X0=X;X1=Ab;if (djwcXwucha)&(xdwcXwucha)&(xdwcXwucha)disp(雅可比迭代次数已经超过最大迭代次数maxi)enda,X=X;jX=X1, 附录二 function X=gsdddy(A,b,X0,P,wucha,max1)D=diag(diag(A);U=-triu(A,1);L=-tril(A,-1); dD=det(D);if dD=0disp(因为对角矩阵D奇异,此方程组无解)elsedisp(因为对角矩阵D非奇异,此方程组有解)iD=inv(D-L); B2=iD*U;f2=iD*b;jX

12、=Ab; X=X0;n m=size(A);for k=1:max1X1= B2*X+f2; djwcX=norm(X1-X,P); xdwcX=djwcX/(norm(X,P)+eps); if (djwcXwucha)|(xdwcXwucha) returnelsek,X1,k=k+1;X=X1;endendif (djwcXwucha)|(xdwcX=maxmax=D(i,1);end end max%矩阵 A 的最大特征值b=10;8;10;x0=inv(A)*b%求方程组的精确解%通过松弛因子的不同选取及 Richardson 迭代求解%并依据迭代次数的不同选出最佳松弛因子for w=0.1:0.005:(2/max)%松弛因子取值范围最大到矩阵 A 的最大特征值分之2 x1=0;0;0;B=eye(3)-w*A; f=w*b; k=0;while norm(x1-x0)=1e-5%迭代结果与精确解二范数之差小于 10e-5迭代结束x2=B*x1+f;x1=x2;k=k+1;endformat long;x2=x2(1) x2(2) x2(3)%迭代结果w kend%选取的松弛因子及迭代次数

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

当前位置:首页 > 学术论文 > 其它学术论文

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