3个回答
展开全部
先给你说个土的,就是Matlab的内置算法,可以算所有特征值和特征向量(没什么技术含量的,也没有什么思想,只是工程学上的纯应用罢了)。
A=[1 2 1/4 4 1/2;1/2 1 1/5 3 1/3;4 5 1 7 3;1/4 1/3 1/7 1 1/5; 2 3 1/3 5 1];
[V,D]=eigs(A)
结果:
V =
0.2532 -0.1274 - 0.1409i -0.1274 + 0.1409i -0.0586 + 0.3893i -0.0586 - 0.3893i
0.1608 -0.1373 + 0.0246i -0.1373 - 0.0246i 0.2097 - 0.1984i 0.2097 + 0.1984i
0.8616 0.9116 0.9116 0.7441 0.7441
0.0774 0.0024 + 0.0881i 0.0024 - 0.0881i -0.0832 + 0.0314i -0.0832 - 0.0314i
0.4020 0.0918 - 0.3118i 0.0918 + 0.3118i -0.3444 - 0.2854i -0.3444 + 0.2854i
D =
5.1374 0 0 0 0
0 0.0088 - 0.8328i 0 0 0
0 0 0.0088 + 0.8328i 0 0
0 0 0 -0.0775 - 0.0956i 0
0 0 0 0 -0.0775 + 0.0956i
所以最大特征值是5.1374,对应特征向量为[0.2532 0.1608 0.8616 0.0774 0.4020]‘。
再给你提供一种很专业的数值算法“幂法”,这是专门用来算矩阵最大特征值的经典算法。我大学里《数值分析》课程教授专门花了半节课讲解过这个算法和它的原理,“幂法”一出手,绝对是专业级的解答!“幂法“的算法过程其实很简单,就是拿一个向量,不停地用A乘,最后就会慢慢趋近于最大特征值对应的特征向量。“幂法”在矩阵拥有唯一最大特征值的前提下,迭代足够多次,就一定能收敛的,可以用线性代数的矩阵相似性原理证明。
我这段代码迭代了100次,取了随便一个向量[1 0 0 0 0]'作为初始值(一般是取个随机向量,其实没啥大差别)。“幂法”在矩阵阶数很高的情况下,比内置算法要快得多(一个5维矩阵是看不出速度上差别的)!
A=[1 2 1/4 4 1/2;1/2 1 1/5 3 1/3;4 5 1 7 3;1/4 1/3 1/7 1 1/5; 2 3 1/3 5 1];
v=[1 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 =
5.1374
v =
0.2532
0.1608
0.8616
0.0774
0.4020
最大特征值5.1374,对应特征向量[0.2532 0.1608 0.8616 0.0774 0.4020]‘。
可以看到,迭代了100次后,"幂法"和直接算法得出了完全一样的结果!用“幂法”,显得算法思想非常的清晰,不像用内置的eigs函数,你也不知道Matlab怎么算出来的,是不?
A=[1 2 1/4 4 1/2;1/2 1 1/5 3 1/3;4 5 1 7 3;1/4 1/3 1/7 1 1/5; 2 3 1/3 5 1];
[V,D]=eigs(A)
结果:
V =
0.2532 -0.1274 - 0.1409i -0.1274 + 0.1409i -0.0586 + 0.3893i -0.0586 - 0.3893i
0.1608 -0.1373 + 0.0246i -0.1373 - 0.0246i 0.2097 - 0.1984i 0.2097 + 0.1984i
0.8616 0.9116 0.9116 0.7441 0.7441
0.0774 0.0024 + 0.0881i 0.0024 - 0.0881i -0.0832 + 0.0314i -0.0832 - 0.0314i
0.4020 0.0918 - 0.3118i 0.0918 + 0.3118i -0.3444 - 0.2854i -0.3444 + 0.2854i
D =
5.1374 0 0 0 0
0 0.0088 - 0.8328i 0 0 0
0 0 0.0088 + 0.8328i 0 0
0 0 0 -0.0775 - 0.0956i 0
0 0 0 0 -0.0775 + 0.0956i
所以最大特征值是5.1374,对应特征向量为[0.2532 0.1608 0.8616 0.0774 0.4020]‘。
再给你提供一种很专业的数值算法“幂法”,这是专门用来算矩阵最大特征值的经典算法。我大学里《数值分析》课程教授专门花了半节课讲解过这个算法和它的原理,“幂法”一出手,绝对是专业级的解答!“幂法“的算法过程其实很简单,就是拿一个向量,不停地用A乘,最后就会慢慢趋近于最大特征值对应的特征向量。“幂法”在矩阵拥有唯一最大特征值的前提下,迭代足够多次,就一定能收敛的,可以用线性代数的矩阵相似性原理证明。
我这段代码迭代了100次,取了随便一个向量[1 0 0 0 0]'作为初始值(一般是取个随机向量,其实没啥大差别)。“幂法”在矩阵阶数很高的情况下,比内置算法要快得多(一个5维矩阵是看不出速度上差别的)!
A=[1 2 1/4 4 1/2;1/2 1 1/5 3 1/3;4 5 1 7 3;1/4 1/3 1/7 1 1/5; 2 3 1/3 5 1];
v=[1 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 =
5.1374
v =
0.2532
0.1608
0.8616
0.0774
0.4020
最大特征值5.1374,对应特征向量[0.2532 0.1608 0.8616 0.0774 0.4020]‘。
可以看到,迭代了100次后,"幂法"和直接算法得出了完全一样的结果!用“幂法”,显得算法思想非常的清晰,不像用内置的eigs函数,你也不知道Matlab怎么算出来的,是不?
参考资料: http://boya.xmu.edu.cn/hhal/numchapt3/num_31.files/frame.htm
展开全部
a=[1 2 1/4 4 1/2
1/2 1 1/5 3 1/3
4 5 1 7 3
1/4 1/3 1/7 1 1/5
2 3 1/3 5 1];
[V,D]=eigs(a)
V =
0.2532 -0.1274 - 0.1409i -0.1274 + 0.1409i -0.0586 + 0.3893i -0.0586 - 0.3893i
0.1608 -0.1373 + 0.0246i -0.1373 - 0.0246i 0.2097 - 0.1984i 0.2097 + 0.1984i
0.8616 0.9116 0.9116 0.7441 0.7441
0.0774 0.0024 + 0.0881i 0.0024 - 0.0881i -0.0832 + 0.0314i -0.0832 - 0.0314i
0.4020 0.0918 - 0.3118i 0.0918 + 0.3118i -0.3444 - 0.2854i -0.3444 + 0.2854i
D =
5.1374 0 0 0 0
0 0.0088 - 0.8328i 0 0 0
0 0 0.0088 + 0.8328i 0 0
0 0 0 -0.0775 - 0.0956i 0
0 0 0 0 -0.0775 + 0.0956i
V的第一列是归一化向量
D的第一个值就是对应最大的特征值
1/2 1 1/5 3 1/3
4 5 1 7 3
1/4 1/3 1/7 1 1/5
2 3 1/3 5 1];
[V,D]=eigs(a)
V =
0.2532 -0.1274 - 0.1409i -0.1274 + 0.1409i -0.0586 + 0.3893i -0.0586 - 0.3893i
0.1608 -0.1373 + 0.0246i -0.1373 - 0.0246i 0.2097 - 0.1984i 0.2097 + 0.1984i
0.8616 0.9116 0.9116 0.7441 0.7441
0.0774 0.0024 + 0.0881i 0.0024 - 0.0881i -0.0832 + 0.0314i -0.0832 - 0.0314i
0.4020 0.0918 - 0.3118i 0.0918 + 0.3118i -0.3444 - 0.2854i -0.3444 + 0.2854i
D =
5.1374 0 0 0 0
0 0.0088 - 0.8328i 0 0 0
0 0 0.0088 + 0.8328i 0 0
0 0 0 -0.0775 - 0.0956i 0
0 0 0 0 -0.0775 + 0.0956i
V的第一列是归一化向量
D的第一个值就是对应最大的特征值
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个。。。。,你随便挑一个向量,设为x1,那么进行迭代,x(n+1)=Axn,只要不知有中彩票的运气,迭代个几千次,就能发现x(n+1)约等于kAxn,这里k就是最大特征值,而xn就是特征向量。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询