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 + -
显示快捷键?