MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]关于矩阵运算的问题 (https://www.labfans.com/bbs/showthread.php?t=7273)

aubrey 2009-04-02 15:12

[求助]关于矩阵运算的问题
 
请问

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以后就变成一个列向量了呢


不知道我说清楚没

zhang770729 2009-04-03 09:10

回复: [求助]关于矩阵运算的问题
 
这是一个线性代数零空间的求解问题,matlab给出的是其中的一个特解而已,后者的解实际上是过坐标原点和上述v单位化坐标的一条直线。所以和正负没有关系。上面c矩阵已经线性相关啦。

laosam280 2009-04-03 13:14

回复: [求助]关于矩阵运算的问题
 
首先,matlab进行特征值求解的时候是采用的迭代算法。你写的这句话v=null(a-e*eye(length(a))),是用原矩阵去减特征值为对角的矩阵,与matlab定义的求特征向量的式子是相反的,你可以在任意的数值计算的书上找到,顺序是 lamda*E - A,其中lamda是特征值,E是单位矩阵,A是已知矩阵。所以你求得的是负数就不奇怪了。
把v=null(e*eye(length(a))-a),运行一下,结果就如你所期待的。

麒麟子 2009-04-04 12:40

回复: [求助]关于矩阵运算的问题
 
我发了一个线性代数的课件,你看看吧,看了应该能懂,或者直接向我要:lol:


所有时间均为北京时间。现在的时间是 13:13

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.