作业帮 > 综合 > 作业

毕业论文中需要用matlab求解矩阵的最大特征值及对应的正规化特征向量并做一致性检验.因为没有matlab基础,不会编写

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 03:20:06
毕业论文中需要用matlab求解矩阵的最大特征值及对应的正规化特征向量并做一致性检验.因为没有matlab基础,不会编写程序,
以以下矩阵为例:
U U1 U2 U3 U4 U5 U6
U1 1 1 1/4 3 3 3
U2 1 1 1/4 3 3 3
U3 4 4 1 5 5 5
U4 1/3 1/3 1/5 1 2 2
U5 1/3 1/3 1/5 1/2 1 3
U6 1/3 1/3 1/5 1/2 1/3 1
麻烦请给我完整代码,剩下的数据我可以带入代码中用matlab跑下.
在网上搜的答案总有问题.
并留下联系方式以防我后面遇到疑问需要请教就最好了.
给你提供一种很专业的数值算法“幂法”,这是专门用来算矩阵最大特征值的经典算法.“幂法“的算法过程其实很简单,就是拿一个向量,不停地用A乘,最后就会慢慢趋近于最大特征值对应的特征向量.“幂法”在矩阵拥有唯一最大特征值的前提下,迭代足够多次,就一定能收敛的,可以用线性代数的矩阵相似性原理证明.
我这段代码迭代了100次,取了随便一个向量[1 0 0 0 0 0]'作为初始值(一般是取个随机向量,其实没啥大差别).
A=[1 1 1/4 3 3 3 ;1 1 1/4 3 3 3 ;4 4 1 5 5 5;1/3 1/3 1/5 1 2 2; 1/3 1/3 1/5 1/2 1 3;1/3 1/3 1/5 1/2 1/3 1];
v=[1 0 0 0 0 0]';
for i = 1:100
v=A*v;
v=v/sqrt(sum(v.^2));
end
lamda=sqrt(sum((A*v).^2))/sqrt(sum(v.^2))
v
结果:
lamda =
6.3526
v =
0.3242
0.3242
0.8571
0.1612
0.1414
0.0963
你会发现,和内置算法的eigs命令求出的结果是一样的.
>>eigs(A)
ans =
6.3526
0.0737 - 1.4350i
0.0737 + 1.4350i
-0.2500 - 0.4319i
-0.2500 + 0.4319i
-0.0000
最大特征值同样是6.3526.