如何用matlab求矩阵最大特征值的特征向量

2025-01-02 08:36:07
推荐回答(3个)
回答1:

用函数[V,D]=eig(A)
矩阵D的对角元存储的是A的所有特征值,
而且是从小到大排列的
矩阵V的每一列存储的是相应的特征向量
所以应该是V的最后一个列
就是最大特征值的特征向量

回答2:

这有个我们以前的MATLAB幂法求特征值和特征响量的程序:
[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)

回答3:

常用的调用格式有3种
E=eig(A),求A的全部特征值
[V,D]=eig(A);
[V,D]=eig(A,'nobalance')