我用scipy.sparse.linalg.eigsh()来解决广义特征值问题。我想使用eigsh(),因为我在操作一些大型稀疏矩阵。问题是我不能得到正确的答案,eigsh()输出的特征值和特征向量与我从Matlab的eigs()得到的完全不同。在
看起来像这样:
数据:a:
304.7179 103.1667 36.9583 61.3478 11.5724
35.5242 111.4789 -9.8928 8.2586 -4.7405
10.8358 4.3433 145.6586 26.5153 13.1871
-1.1924 -2.5430 0.4322 43.1886 -0.6098
-18.7751 -8.8031 -4.3962 -5.8791 17.6588
b:
736.9822 615.7946 587.6828 595.7169 545.1878
615.7946 678.2142 575.7579 587.3469 524.7201
587.6828 575.7579 698.6223 593.5402 534.3675
595.7169 587.3469 593.5402 646.0410 530.1114
545.1878 524.7201 534.3675 530.1114 590.1373
在python中:
a、 b是努比·恩达雷在
^{pr2}$
可以看出,特征值和特征向量不足以重新组合原始矩阵。在
但是,在MATLAB中它很好地工作:[y,x] = eigs(a,b,2,'sm');
y =
0.0037 -0.0141
-0.0056 0.0151