python中求矩阵的特征值和特征向量
时间: 2025-04-25 15:29:51 浏览: 27
### Python 中计算矩阵特征值和特征向量
在 Python 中,`numpy.linalg.eig()` 函数用于计算方阵的特征值和右特征向量。该函数返回两个对象:第一个是一个包含特征值的一维数组;第二个是由对应于这些特征值的特征向量组成的二维数组[^1]。
对于更复杂的场景或者当处理稀疏矩阵时,则可以考虑使用 `scipy.sparse.linalg.eigs` 或者针对实对称/复厄米特矩阵优化过的 `scipy.sparse.linalg.eigsh` 来获取部分(如最大的几个)特征值及其对应的特征向量[^4]。
下面给出一段简单的例子来展示如何利用 NumPy 库中的 linalg 子模块来进行这样的运算:
```python
import numpy as np
A = np.array([[4, 2], [1, 3]])
w, v = np.linalg.eig(A)
print('Eigenvalues:', w)
for i in range(len(w)):
print(f'Eigenvector corresponding to eigenvalue {w[i]}:')
print(v[:,i])
```
此段代码创建了一个 2×2 的矩阵 A 并调用了 `np.linalg.eig()` 方法得到它的所有特征值以及相应的单位化后的特征向量。
#### 特殊情况下的广义特征问题
如果遇到的是广义特征值问题——即给定一对矩阵 \( \mathbf{A} \) 和 \( \mathbf{B} \),寻找满足条件 \( (\lambda\mathbf{B}-\mathbf{A})\mathbf{x}=0\) 的 λ 值及非零向量 x ——那么应该采用形似 `eig(a,b)` 这样的接口形式,在这里 a 表示待求解的主要系数矩阵而 b 则代表辅助项所构成的另一个矩阵[^2]。
阅读全文
相关推荐

















