我正在实现Jacobi算法,以获得对称矩阵的特征向量。我不明白为什么我从我的应用程序获得不同的特征向量(与我的相同结果:http://fptchlx02.tu-graz.ac.at/cgi-bin/access.com?c1=0000&c2=0000&c3=0000&file=0638)和Wolfram Aplha不同:http://www.wolframalpha.com/input/?i=eigenvector%7B%7B1%2C2%2C3%7D%2C%7B2%2C2%2C1%7D%2C%7B3%2C1%2C1%7D%7D
示例矩阵:
1 2 3
2 2 1
3 1 1
我的结果:
0.7400944496522529, 0.6305371413491765, 0.23384421945632447
-0.20230251371232585, 0.5403584533063043, -0.8167535949636785
-0.6413531776951003, 0.5571668060588798, 0.5274763043839444
来自WA的结果:
1.13168, 0.969831, 1
-1.15396, 0.315431, 1
0.443327, -1.54842, 1
我希望解决方案很简单,但我找不到它。我在mathoverflow上问了这个问题,他们把我指向了这个网站。
答案 0 :(得分:0)
矩阵的特征向量不是唯一的,并且存在多种可能的分解;实际上,只能定义唯一的本征空间。您收到的两个结果都是有效的。通过要求Wolfram Alpha将第二个矩阵正交化,您可以很容易地看到它。 Run the following query:
Orthogonalize[{{1.13168, 0.969831, 1.}, {-1.15396, 0.315431, 1.}, {0.443327, -1.54842, 1.}}]
获取
0.630537 0.540358 0.557168
-0.740094 0.202306 0.641353
0.233844 -0.816754 0.527475
现在您可以看到您的算法返回了正确的结果。首先,矩阵被转置:WA给你行向量,你的算法在列中返回它们。然后,第一个向量乘以-1,但任何特征向量都可以乘以非零常数,以产生有效的特征向量。否则,结果完全匹配。
您可能还会发现以下数学StackExchange答案有用:Are the eigenvectors of a real symmetric matrix always an orthonormal basis without change?