全文预览

清华大学贾仲孝老师高等数值分析第二次实验

上传者:菩提 |  格式:docx  |  页数:26 |  大小:380KB

文档介绍
')得到的收敛曲线结果如下图所示:得到两种方法的收敛曲线如上所示,将计算结果整理在下表中:方法ArnoldiMGMRESMrm2.07e-052.29e-05重启次数2622总迭代次数13001100运行时间0.8445770.(s)803231结果讨论:重启次数随着m的增大而减小,当m增大到一定程度如50之后,减小很缓慢,当m非常大的时候,就过度到了基本算法。重启的算法如何选择合适的m的因问题而不同。重启算法的总迭代次数(重启次数×m)要多于基本的算法。这是由于在重启动时,从另一个我们认为更好的初值点(其实不一定好)x0重新开始计算,可能会丢掉一些之前算过的信息。重启算法与基本算法相比,虽然总迭代次数增加了,但是运算速度却能大大提高,运行时间远远小于基本算法(尤其是重启GMRES算法)。一般情况,对于同一个题目,重启的GMRES方法收敛速度要比Arnoldi方法快;总的来说,对题中的矩阵A,四种方法均能稳定地收敛。T2.对于1中的矩阵,将特征值进行平移,使得实部有正有负,和1的结果进行比较,方法的收敛速度会如何?基本的Arnoldi算法有无峰点?若有,基本的GMRES算法相应地会怎样?Answer:对A的特征值进行平移,如对S矩阵的实部统一减去一个数s,则小单元矩阵S对应的一对特征值变为,当矩阵A构造同上题,那么控制s的大小,即控制了实部为负的特征值的个数。这里将上面的矩阵生成做如下改造:clearall;N=500tol=1e-6;m=50;Maxm=50;A=zeros(2*N);s=1.5fora=1:NA(2*a-1,2*a-1)=a-s;A(2*a-1,2*a)=-a;A(2*a,2*a-1)=a;A(2*a,2*a)=a-s;endU=orth(rand(2*N,2*N));A1=U'*A*U;改变s的值,进而改变实部为负的特征值个数,计算结果整理如下表所示:

收藏

分享

举报
下载此文档