exm0531_3.m

来自「书名应为《掌握和精通MATLAB》附有完整的源程序」· M 代码 · 共 17 行

M
17
字号
%exm0531_3.m

%指令eig与eigs的比较。
rand('state',1),A=rand(100,100)-0.5;
t0=clock;[V,D]=eig(A);T_full=etime(clock,t0)	%指令eig的运作时间。
options.tol=1e-8;									%为eigs设定计算精度。
options.disp=0;									%使中间迭代结果不显示。
t0=clock;[v,d]=eigs(A,1,'lr',options);		%计算最大实部特征值和特征向量。
T_part=etime(clock,t0)							%指令eigs的运作时间。
[Dmr,k]=max(real(diag(D)));						%在eig求得的全部特征值中找最大实部的那个。
d,D(1,1)  

vk1=V(:,k+1);										%与d相同的特征向量应是V的第k+1列。
vk1=vk1/norm(vk1);v=v/norm(v);					%向量长度归一。
V_err=acos(norm(vk1'*v))*180/pi				%求复数向量之间的夹角(度)。
D_err=abs(D(k+1,k+1)-d)/abs(d)					%求两个特征值间的相对误差。  

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?