文档详情

高等数值分析作业-第二次实验

pu****.1
实名认证
店铺
DOCX
218.72KB
约13页
文档ID:453560032
高等数值分析作业-第二次实验_第1页
1/13

高等数值分析第二次实验作业注:矩阵阶数均为1000阶T1. 构造例子特征值全部在右半平面时,观察基本的Arnoldi方法和GMRES方法的数值性态,和相应重新启动算法的收敛性Answer:Ø 关于特征值均在右半平面的矩阵A:首先构造对角矩阵D,其中D矩阵的对角是由以下形式的2×2的子矩阵组成其对角元:S=a-bba,其中a,b为实数此时,S矩阵的特征值分别为a+bi和a-bi,这样D=diag(S1,S2,S3……Sn)矩阵的特征值均分布在右半平面另矩阵A=QTAQ,则A矩阵的特征值也均在右半平面,生成矩阵的过程代码如下所示:N=500 %生成的矩阵为2N阶A=zeros(2*N);%delta控制特征值分布的密集程度,即控制条件数大小,delta越大条件数越大delta=0.1; %构造D矩阵for j=1:N A(2*j-1,2*j-1)=N+j*delta; A(2*j-1,2*j)=-N-j*delta; A(2*j,2*j-1)=N+j*delta; A(2*j,2*j)=N+j*delta;endU = orth(rand(2*N,2*N));A = U'*A*U;Ø 首先进行观察基本的Arnoldi方法和GMRES方法的数值性态,考虑N=500,即矩阵为1000阶,取X0=zeros(N,1),b=ones(N,1),收敛准则为e=10-6;Arnoldi方法函数如下:function [xm,error,num]=Arnoldi(A,x0,b,e)N=size(A,1);r=b-A*x0;belta=norm(r);v=r/belta;V=v;j=0;while norm(r)>e & j e & j

delta=1时,计算结果如下:方法ArnoldiGMRES方法log10rm-6.4922 -6.0110迭代次数2526运行时间(s)0.1092160.135968可以看到两种方法的迭代次数差不多,有曲线可以看到GMRES方法的的性态较Arnoldi方法良好,Arnoldi方法会有平台段,但是GMRES方法的则平稳地收敛,这也是最后迭代次数GMRES较Arnoldi方法少一次的原因Ø 对于重启的Arnoldi方法和GMRES方法代码如下所示:A、 首先对之前的标准Arnoldi方法和GMRES方法进行修改,代码如下(m为间隔m步重启):function [xm,error]=Arnoldi_m(A,x0,b,e,m)N=size(A,1);r=b-A*x0;belta=norm(r);v=r/belta;V=v;j=0;while abs(norm(r))>e & j e & je j=j+1; [xm,error]=Arnoldi_m(A,xm,b,e,m); num(j)=j; err(j)=log10(error); endjlog10(error)endfunction [xm,err,num]=GMRESm(A,x0,b,e,m)N=size(A,1);jmax=N/m;j=0;xm=x0;error=1000;while je j=j+1; [xm,error]=GMRES_m(A,xm,b,e,m); n。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档