问题:求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 ;
谁知道该怎么写?贴上正确的追加