已知Ax=b,先将A矩阵三角化,然后求解除X,并分离出其中的系数,最终求A的逆矩阵。用python代码实现
时间: 2024-02-23 18:02:23 浏览: 103
可以使用高斯消元法(Gaussian elimination)将矩阵A三角化,然后使用回带法求解X,分离出其中的系数,最后求A的逆矩阵。代码如下:
```python
import numpy as np
def gauss_jordan(A, b):
n = len(b)
AB = np.hstack((A, b.reshape(n, 1)))
for i in range(n):
# 选主元,将主元所在的行交换到对角线位置
max_row = i
for j in range(i+1, n):
if abs(AB[j][i]) > abs(AB[max_row][i]):
max_row = j
AB[[i, max_row]] = AB[[max_row, i]]
# 将对角线位置的元素缩放为1
pivot = AB[i][i]
AB[i] /= pivot
# 将其他行的对应元素消为0
for j in range(n):
if j != i:
AB[j] -= AB[j][i] * AB[i]
# 提取解向量X和A的逆矩阵
X = AB[:, n]
inv_A = AB[:, :n]
return X, inv_A
```
其中,A是矩阵,b是列向量。该函数返回方程 Ax=b 的解向量 X 和矩阵 A 的逆矩阵 inv_A。
阅读全文