And*_*ham 7 python numpy linear-algebra scipy
我正在寻找一个类型的问题: Aw = xBw其中x是标量(特征值),w是一个特征向量,A并且B是对称的,相等维度的方形numpy矩阵.我应该能够找到dX/W对,如果A和B是d x d.我怎么能在numpy中解决这个问题?我正在查看Scipy文档而没有找到任何我想要的东西.
看来你需要scipy.linalg.eigh()解决这个广义的特征值问题:
from scipy.linalg import eigh
eigvals, eigvecs = eigh(A, B, eigvals_only=False)
Run Code Online (Sandbox Code Playgroud)
你会发现这eigvecs是一个复杂的ndarray,所以也许你必须使用eigvecs.real......
在相同的模块中,您eigvalsh()可能会对您的情况执行速度更快,但它不会返回特征向量.
你见过scipy.linalg.eig吗?从文档:
求解方阵的普通或广义特征值问题.
此方法具有可选参数b:
scipy.linalg.eig(a, b=None, ...
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)b : (M, M) array_like, optional Right-hand side matrix in a generalized eigenvalue problem. Default is None, identity matrix is assumed.
| 归档时间: |
|
| 查看次数: |
5833 次 |
| 最近记录: |