高斯列主元消去法 ,已知增广矩阵,写出回带过程 用Python
时间: 2023-05-24 20:04:57 浏览: 149
假设已经使用高斯列主元消去法将增广矩阵变为上三角矩阵,下面是回带过程的Python实现:
```python
import numpy as np
# 假设矩阵A是一个上三角矩阵,b是矩阵A的增广矩阵的最后一列
def back_substitution(A, b):
n = len(b)
x = np.zeros(n)
for i in range(n-1, -1, -1): # 从最后一行开始回带
x[i] = b[i]
for j in range(i+1, n):
x[i] -= A[i][j] * x[j]
x[i] /= A[i][i]
return x
```
使用时需要传入一个上三角矩阵和一个增广矩阵的最后一列,返回值是方程组的解的向量。
示例:
假设有一个方程组:
```
2x + y - z = 8
-3x - y + 2z = -11
-2x + y + 2z = -3
```
将其对应的增广矩阵进行高斯列主元消去法变换得到:
```
2 1 -1 | 8
0 -1.5 1 | -5.5
0 0 1.33| 1.33
```
代码实现:
```python
A = np.array([[2, 1, -1], [0, -1.5, 1], [0, 0, 1.33]])
b = np.array([8, -5.5, 1.33])
x = back_substitution(A, b)
print(x)
```
输出结果:
```
[ 3. -1. -1.]
```
表示方程组的解是 $x=3, y=-1, z=-1$。
阅读全文