Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2009-04-02
年龄: 37
帖子: 1
声望力: 0 ![]() |
![]()
请问
e=max(eig(a)) v=null(a-e*eye(length(a))) v为什么能是最大特征值对应的特征向量取负数呢 没明白第二句话 假设 a=[1,2,3;2,4,5;2,3,5] a = 1 2 3 2 4 5 2 3 5 >> e=max(eig(a)) e = 9.5712 >> [x,y]=eig(a) x = 0.3772 0.9409 0.0401 0.6899 -0.0495 -0.8338 0.6178 -0.3350 0.5506 y = 9.5712 0 0 0 -0.1735 0 0 0 0.6023 >> v=null(a-e*eye(length(a))) v = -0.3772 -0.6899 -0.6178 能算出来 可是不明白是怎么计算的 c=a-e*eye(length(a)) c = -8.5712 2.0000 3.0000 2.0000 -5.5712 5.0000 2.0000 3.0000 -4.5712 为什么null以后就变成一个列向量了呢 不知道我说清楚没 |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2008-09-08
年龄: 47
帖子: 9
声望力: 0 ![]() |
![]()
这是一个线性代数零空间的求解问题,matlab给出的是其中的一个特解而已,后者的解实际上是过坐标原点和上述v单位化坐标的一条直线。所以和正负没有关系。上面c矩阵已经线性相关啦。
|
![]() |
![]() |
![]() |
#3 |
高级会员
注册日期: 2008-11-07
住址: 湖南长沙
帖子: 233
声望力: 21 ![]() |
![]()
首先,matlab进行特征值求解的时候是采用的迭代算法。你写的这句话v=null(a-e*eye(length(a))),是用原矩阵去减特征值为对角的矩阵,与matlab定义的求特征向量的式子是相反的,你可以在任意的数值计算的书上找到,顺序是 lamda*E - A,其中lamda是特征值,E是单位矩阵,A是已知矩阵。所以你求得的是负数就不奇怪了。
把v=null(e*eye(length(a))-a),运行一下,结果就如你所期待的。 |
![]() |
![]() |
![]() |
#4 |
普通会员
注册日期: 2009-03-25
年龄: 37
帖子: 52
声望力: 18 ![]() |
![]()
我发了一个线性代数的课件,你看看吧,看了应该能懂,或者直接向我要:lol:
__________________
:水榭焚香听琴事,浪荡江湖不系舟: ![]() 感谢请点thanks |
![]() |
![]() |