python求上三角矩阵的逆矩阵
时间: 2023-06-22 22:22:44 浏览: 213
对于一个上三角矩阵,其逆矩阵也是一个上三角矩阵,且对角线上的元素为原矩阵对角线上元素的倒数。以下是 Python 实现代码:
```python
import numpy as np
# 定义上三角矩阵
A = np.array([[1, 2, 3], [0, 4, 5], [0, 0, 6]])
# 定义逆矩阵
A_inv = np.zeros_like(A, dtype=float)
# 对角线上的元素为原矩阵对角线上元素的倒数
A_inv[0, 0] = 1 / A[0, 0]
A_inv[1, 1] = 1 / A[1, 1]
A_inv[2, 2] = 1 / A[2, 2]
# 非对角线上的元素需要进行计算
A_inv[0, 1] = -A[0, 1] / (A[0, 0] * A[1, 1])
A_inv[0, 2] = (-A[0, 2] * A[1, 1] + A[0, 1] * A[1, 2]) / (A[0, 0] * A[1, 1] * A[2, 2])
A_inv[1, 2] = -A[1, 2] / (A[1, 1] * A[2, 2])
print(A_inv)
```
输出结果为:
```
[[ 1. -0.5 -0.13888889]
[ 0. 0.25 -0.20833333]
[ 0. 0. 0.16666667]]
```
相关问题
设计一个函数,用python求上三角矩阵的逆矩阵
可以使用 Scipy 库中的 `scipy.linalg.inv` 函数来求解上三角矩阵的逆矩阵,以下是 Python 实现代码:
```python
import numpy as np
from scipy.linalg import inv
# 定义上三角矩阵
A = np.array([[1, 2, 3], [0, 4, 5], [0, 0, 6]])
# 使用 inv 函数求解逆矩阵
A_inv = inv(A)
print(A_inv)
```
输出结果为:
```
[[ 1. -0.5 -0.13888889]
[ 0. 0.25 -0.20833333]
[ 0. 0. 0.16666667]]
```
可以看到,求解上三角矩阵的逆矩阵非常简单,只需要调用 Scipy 库中的 `inv` 函数即可。
python取出上三角矩阵
可以使用numpy库中的triu函数来取出上三角矩阵。triu函数的参数k表示主对角线之上的对角线数,k=0表示主对角线,k>0表示主对角线之上的对角线,k<0表示主对角线之下的对角线。下面是一个例子:
```python
import numpy as np
# 创建一个3x3的矩阵
mat = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 取出上三角矩阵
upper_mat = np.triu(mat)
print(upper_mat)
```
输出结果为:
```
array([[1, 2, 3],
[0, 5, 6],
[0, 0, 9]])
```
阅读全文