求矩阵最大特征值

来源:百度知道 编辑:UC知道 时间:2024/07/04 12:53:34
有安装了matlab的好心人帮忙算一下,论文急用
M={1,3,5,4,1/5,1/3,1/2,1/4,2;1/3,1,3,2,1/7,1/5,1/4,1/6,1/2;1/5,1/3,1,1/2,1/9,1/7,1/6,1/8,1/4;1/4,1/2,2,1,1/8,1/6,1/5,1/7,1/3;5,7,9,8,1,3,4,2,6;3,5,7,6,1/3,1,2,1/2,4;2,4,6,5,1/4,1/2,1,1/3,3;4,6,8,7,1/2,2,3,1,5;1/2,2,4,3,1/6,1/4,1/3,1/5,1}

[maxnorm.m]
function t=maxnorm(a)
%求数列中按模最大的分量

n=length(a);
t=0;
for i=1:n
if abs(a(i)/max(abs(a)))>=1
t=a(i);
end
end

function [mt,my]=maxtr(a,eps)
%用幂法求矩阵的主特征值和对应的特征向量

n=length(a);
x0=diag(ones(n));
k=1
x=a*x0
while norm(x-x0)>eps
k=k+1
q=x;
y=x/maxnorm(x)
x=a*y;
x0=q;
end
mt=maxnorm(x)
my=y

[main1.m]
a=[3 2;4 5]
maxtr(a,0.0001)

[invmaxtr.m]
function [mx,mt,my]=invmaxtr(a,eps)
%求矩阵按模最小的特征值和对应的特征向量

n=length(a);
x0=diag(ones(n));
x=inv(a)*x0;
k=0
while norm(x-x0)>eps
k=k+1
q=x;
y=x/maxnorm(x)
x=inv(a)*y;
x0=q;
end
mt=1/maxnorm(x)
my=y

[main.m]
a=[3 2;4 5]
invmaxtr(a)