- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WORD完美整理版
范文范例 参考指导
高等数值分析第二次实验作业
T1. 构造例子特征值全部在右半平面时, 观察基本的Arnoldi 方法和GMRES 方法的数值性态, 和相应重新启动算法的收敛性.
Answer:
构造特征值均在右半平面的矩阵A:
根据实Schur分解,构造对角矩阵D由n个块形成,每个对角块具有如下形式,对应一对特征值
这样D=diag(S1,S2,S3……Sn)矩阵的特征值均分布在右半平面。生成矩阵A=UTAU,其中U为正交阵,则A矩阵的特征值也均在右半平面。不妨构造A如下所示:
由于选择初值与右端项:x0=zeros(2*N,1);b=ones(2*N,1);
则生成矩阵A的过程代码如下所示:
N=500 %生成A为2N阶
A=zeros(2*N);
for a=1:N
A(2*a-1,2*a-1)=a;
A(2*a-1,2*a)=-a;
A(2*a,2*a-1)=a;
A(2*a,2*a)=a;
end
U = orth(rand(2*N,2*N));
A1 = U*A*U;
观察基本的Arnoldi和GMRES方法
编写基本的Arnoldi函数与基本GMRES函数,具体代码见附录。
function [x,rm,flag]=Arnoldi(A,b,x0,tol,m)
function [x,rm,flag]=GMRES(A,b,x0,tol,m)
输入:A为方程组系数矩阵,b为右端项,x0为初值,tol为停机准则,m为人为限制的最大步数。
输出:x为方程的解,rm为残差向量,flag为解是否收敛的标志。
外程序如下所示:
e=1e-6;
m=700;
tic
[xA,rmA,flagA]=Arnoldi(A1,b,x0,e,m);
toc
tic
[xG,rmG,flagG]=GMRES(A1,b,x0,e,m);
toc
subplot(1,2,1);
semilogy(rmA)
title(Arnoldiê?á2?ú??)
xlabel(μü′ú2?êyk)
ylabel(log(||rk||))
subplot(1,2,2);
semilogy(rmG)
title(GMRESê?á2?ú??)
xlabel(μü′ú2?êyk)
ylabel(log(||rk||))
得到:
得到两种方法的收敛曲线如上所示,将计算结果整理在下表中:
方法
Arnoldi
GMRES
rm
2.95e-05
3.07e-05
迭代次数
546
526
运行时间(s)
1.564715
92.828966
结果讨论:
从图中可以看出,基本的Arnoldi方法经过546步收敛,基本的GMRES方法经过526步收敛,基本的GMRES收敛速度会略快于基本的Arnoldi方法。
从图中可以看出,GMRES方法的的性态较Arnoldi方法更好。Arnoldi方法会有平台和不光滑段,但是由于GMRES具有的残差最优性,GMRES方法平稳地收敛,收敛曲线也更光滑。
观察重新启动的Arnoldi和GMRES方法
在上述两个函数的基础上,编写了重新启动的Arnoldi函数(详情见附录):
function [x,rm,flag,Maxi]=ArnoldiM(A,b,x0,tol,m,Maxm)
输入:m为给定步数,Maxm为人为限制的最大重启次数。
输出:x为方程的解,rm为残差向量,flag为解是否收敛的标志,Maxi为重启次数。
首先编写程序,计算重启次数Maxi与给定步数m的关系,为选取给定步数m给出依据:
num_restartA=[];
num_restartG=[];
for m=10:10:150
tic
[xG,rmG,flagG,MaxiG]=GMRESM(A,b,x0,tol,m,Maxm);
[xA,rmA,flagA,MaxiA]=ArnoldiM(A,b,x0,tol,m,Maxm);
num_restartA=[num_restartA MaxiA];
num_restartG=[num_restartG MaxiG];
toc
end
m1=10:10:150;
plot(m1,num_restartA,o-,m1,num_restartG,*-)
从上述结果中看到在m=50之后,重启次数随着给定步长的增加减少很慢,进入饱和。故可以取m=50,最大步数可知在50步以内,运算程序如下所示:
m=50;
Maxm=50;
tic
[xA,rmA,flagA,MaxiA]=ArnoldiM(A,b,x0,tol,m,Maxm);
toc
tic
[xG,rmG,flagG,
您可能关注的文档
最近下载
- SYT 5547-2000螺杆钻具使用、维修和管理.pdf
- 第三方产品节能环保ccc证书---服务器.docx VIP
- 一种连续酶解制备蛋白肽的系统及工艺.pdf VIP
- (高清版)B-T 40815.2-2021 电气和电子设备机械结构 符合英制系列和公制系列机柜的热管理 第2部分:强迫风冷的确定方法.pdf VIP
- 2025幼儿园园级家委会ppt全新 .pdf VIP
- PEP人教版六年级下册英语全册导学案.pdf VIP
- 鲁科版六年级上生物思维导图.pptx
- 电商运营方案电商运营方案.pptx VIP
- 计数型MSA测量系统分析报告(模板).xls VIP
- 发展低空经济课件.pptx VIP
文档评论(0)