![]() |
[求助]关于矩阵运算的问题
请问
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以后就变成一个列向量了呢 不知道我说清楚没 |
回复: [求助]关于矩阵运算的问题
这是一个线性代数零空间的求解问题,matlab给出的是其中的一个特解而已,后者的解实际上是过坐标原点和上述v单位化坐标的一条直线。所以和正负没有关系。上面c矩阵已经线性相关啦。
|
回复: [求助]关于矩阵运算的问题
首先,matlab进行特征值求解的时候是采用的迭代算法。你写的这句话v=null(a-e*eye(length(a))),是用原矩阵去减特征值为对角的矩阵,与matlab定义的求特征向量的式子是相反的,你可以在任意的数值计算的书上找到,顺序是 lamda*E - A,其中lamda是特征值,E是单位矩阵,A是已知矩阵。所以你求得的是负数就不奇怪了。
把v=null(e*eye(length(a))-a),运行一下,结果就如你所期待的。 |
回复: [求助]关于矩阵运算的问题
我发了一个线性代数的课件,你看看吧,看了应该能懂,或者直接向我要:lol:
|
所有时间均为北京时间。现在的时间是 13:13。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.