特征值特征向量如何计算
时间: 2023-09-08 07:12:13 浏览: 45
对于一个 $n \times n$ 的矩阵 $A$,如果存在一个非零向量 $\mathbf{x}$,使得 $A \mathbf{x} = \lambda \mathbf{x}$,其中 $\lambda$ 是一个标量,那么 $\lambda$ 被称为 $A$ 的一个特征值(eigenvalue),$\mathbf{x}$ 被称为 $A$ 的对应于特征值 $\lambda$ 的特征向量(eigenvector)。
特征值和特征向量可以通过以下步骤计算:
1. 计算矩阵 $A - \lambda I$ 的行列式,其中 $\lambda$ 是一个待定的特征值,$I$ 是 $n \times n$ 的单位矩阵。即计算 $|A - \lambda I|$ 的值。
2. 求解 $|A - \lambda I| = 0$,得到特征值 $\lambda_1, \lambda_2, \cdots, \lambda_n$。
3. 对于每个特征值 $\lambda_i$,求解线性方程组 $(A - \lambda_i I) \mathbf{x} = \mathbf{0}$,得到特征向量 $\mathbf{x}_1, \mathbf{x}_2, \cdots, \mathbf{x}_n$。
在实际计算中,通常使用 NumPy 提供的 `numpy.linalg.eig` 函数来计算矩阵的特征值和特征向量。具体用法如下:
```python
import numpy as np
A = np.array([[1, 2], [2, 1]])
eigenvalues, eigenvectors = np.linalg.eig(A)
```
其中,`A` 是一个 $2 \times 2$ 的矩阵,`eigenvalues` 是一个包含矩阵 $A$ 的特征值的一维数组,`eigenvectors` 是一个 $2 \times 2$ 的矩阵,每一列是矩阵 $A$ 的对应于特征值的特征向量。