MATLAB实现用幂法/反幂法求矩阵的最大/最小特征值问题(有追加!)。

问题:求A=[2-10;-12-1;0-12]的最大(用幂法求)/最小(用反幂法求)特征值。下面是我写的MATLAB程序,可是运行不了/*幂法程序,函数名:pow.m*/... 问题:求A=[2 -1 0;-1 2 -1;0 -1 2]的最大(用幂法求)/最小(用反幂法求)特征值。
下面是我写的MATLAB程序,可是运行不了
/*幂法程序,函数名:pow.m*/
function[m,u,index]=pow(A,ep,N)
%A为矩阵;ep为精度要求;N为最大迭代次数;m为绝对值最大的特征值;u为对应最大特征值的特征向量。
N=100;
ep=1e-6;
n=length(A);u=ones(n,1);
index=0;k=0;m1=0;
while k<=N
v=A*u;[vmax,i]=max(abs(v));
m=v(i);u=v/m;
if abs(m-m1)<ep
index=1;break;
end
m1=m;k=k+1;
end

输入A=[2 -1 0;-1 2 -1;0 -1 2];
[m,u,index]=pow(A,1e-6)

/*反幂法程序,函数名:pow_inv.m*/
function[m ,u,index]=pow_inv(A,ep,N)
%A为矩阵;ep为精度要求;N为最大迭代次数;m 为绝对值最小的特征值;u为对应最小特征值的特征向量。
N=100;
ep=1e-6;
n=length(A);u=ones(n,1);
index=0;k=0;m1=0;
invA=inv(A);
while k<=N
v=invA*u;[vmax,i]=max(abs(v));
m =v(i);u=v/ m ;
if abs(m-m1)<ep
index=1;break;
end
m1 m ;k=k+1;
end
m =1/ m ;

谁知道该怎么写?贴上正确的追加
展开
 我来答
wacs5
2011-01-01 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2807万
展开全部
%A为矩阵;ep为精度要求;N为最大迭代次数;m为绝对值最大的特征值;u为对应最大特征值的特征向量。
A=[2,-1,0;-1,2,-1;0,-1,2];

N=100;
ep=1e-6;

n=length(A);
u=ones(n,1);
index=0;
k=0;
m1=0;
while k<=N
v=A*u;
m=max(abs(v));
u=v/m
if abs(m-m1)<ep
index=1;
break;
end
m1=m;
k=k+1;
end

m %特征值
u/norm(u) %特征向量
[vv,ll]=eig(A); %matlab求解的特征值和特征向量
[mm,ii]=max(abs(diag(ll)));
m_matlab=mm
v_matlab=vv(:,ii)

这个是你的幂法,你的方法基本没有问题。
匿名用户
2021-05-05
展开全部
可以先做两次迭代,然后计算norm(x2-x1,inf),norm(x2+x1,inf),如果是双特征值矩阵,这两项会各有一次取2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式