Joe*_*sen 4 python numpy eigenvector
我有一个具有很多简并特征值的实对称矩阵,我想找到该矩阵的实值特征向量。我正在努力寻找 numpy 或 scipy 中的一种方法来为我做到这一点,我尝试过的方法给出了复值特征向量。有谁知道这样的功能是否存在?
使用numpy.linalg.eigh
或scipy.linalg.eigh
. 这些函数是为对称(或埃尔米特)矩阵设计的,对于实数对称矩阵,它们应始终返回实数特征值和特征向量。
例如,
In [62]: from numpy.linalg import eigh
In [63]: a
Out[63]:
array([[ 2., 1., 0., 0.],
[ 1., 2., 0., 0.],
[ 0., 0., 2., 1.],
[ 0., 0., 1., 2.]])
In [64]: vals, vecs = eigh(a)
Run Code Online (Sandbox Code Playgroud)
特征值在 中vals
,相应的特征向量在 的列中vecs
:
In [65]: vals
Out[65]: array([ 1., 1., 3., 3.])
In [66]: vecs
Out[66]:
array([[-0.70710678, 0. , 0. , 0.70710678],
[ 0.70710678, 0. , 0. , 0.70710678],
[ 0. , -0.70710678, 0.70710678, 0. ],
[ 0. , 0.70710678, 0.70710678, 0. ]])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8880 次 |
最近记录: |