我得到一个错误的本征向量时我使用matrix.eig()(也通过运行多次,以确保检查)。的矩阵是:

1.2290 1.2168 2.8760 2.6370 2.2949 2.6402
1.2168 0.9476 2.5179 2.1737 1.9795 2.2828
2.8760 2.5179 8.8114 8.6530 7.3910 8.1058
2.6370 2.1737 8.6530 7.6366 6.9503 7.6743
2.2949 1.9795 7.3910 6.9503 6.2722 7.3441 
2.6402 2.2828 8.1058 7.6743 7.3441 7.6870

该函数返回固有矢量:

-0.1698  0.6764  0.1442 -0.6929 -0.1069  0.0365
-0.1460  0.6478  0.1926  0.6898  0.0483 -0.2094
-0.5239  0.0780 -0.5236  0.1621 -0.2244  0.6072
-0.4906 -0.0758 -0.4573 -0.1279  0.2842 -0.6688
-0.4428 -0.2770  0.4307  0.0226 -0.6959 -0.2383
-0.4884 -0.1852  0.5228 -0.0312  0.6089  0.2865

Matlab的给出了以下的本征向量对于相同的输入:

0.1698 -0.6762 -0.1439  0.6931  0.1069  0.0365
0.1460 -0.6481 -0.1926 -0.6895 -0.0483 -0.2094
0.5237 -0.0780  0.5233 -0.1622  0.2238  0.6077
0.4907  0.0758  0.4577  0.1278 -0.2840 -0.6686
0.4425  0.2766 -0.4298 -0.0227  0.6968 -0.2384
0.4888  0.1854 -0.5236  0.0313 -0.6082  0.2857

有MATLAB和JAMA的本征值都匹配,但本征向量的一阶5列反转符号和仅最后一列是准确的。

有没有对Jama.Matrix.EigenvalueDecomposition.eig()那种输入的任何问题 接受或任何其他问题一样吗?请告诉我,我怎么能修复错误。由于事先。

有帮助吗?

解决方案

这里没有错误,两者结果是正确的 - 这是任何其他的标量倍特征向量。

有这项工作特征向量无限数量的 - 大部分软件程序报告说,有一个长的矢量它只是约定。也就是说贾马报告特征向量等于-1倍那些Matlab在可能只是它们所使用的算法的伪影。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top