当我使用时,我得到一个错误的特征向量(也通过多次运行检查以确定)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的向量的惯例.Jama报告的特征向量等于Matlab的-1倍可能只是他们使用的算法的一个人工产物.