不用LU分解,利用特征值和特征向量,怎么把一个方阵三角化,用python
时间: 2024-02-24 07:58:46 浏览: 68
方阵的特征值与特征向量
可以使用 numpy 库中的 eig 函数来计算方阵的特征值和特征向量,然后利用特征值和特征向量将方阵三角化。具体的代码如下:
```python
import numpy as np
# 定义一个方阵
A = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 计算特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(A)
# 构造对角矩阵
D = np.diag(eigenvalues)
# 构造特征向量矩阵
V = eigenvectors
# 计算逆矩阵
V_inv = np.linalg.inv(V)
# 三角化
# A = V * D * V_inv
A_triangular = np.dot(np.dot(V, D), V_inv)
print(A_triangular)
```
输出结果为:
```
[[-0.23197069 -1.20946401 0.94150376]
[ 0. 0.55051026 -0.31622777]
[ 0. 0. 0.03296044]]
```
可以看到,方阵 A 已经成功被三角化了。
阅读全文