用高斯列主元消去法参考程序
时间: 2024-04-15 14:06:30 浏览: 93
以下是使用高斯列主元消去法求解线性方程组的参考程序:
```python
import numpy as np
def gauss_elimination(A, b):
n = len(A)
# 将增广矩阵合并
Ab = np.hstack((A, b.reshape(n, 1)))
# 高斯消元
for i in range(n):
# 选取主元
max_idx = i
for j in range(i + 1, n):
if abs(Ab[j][i]) > abs(Ab[max_idx][i]):
max_idx = j
if max_idx != i:
Ab[[i, max_idx]] = Ab[[max_idx, i]]
# 消元
for j in range(i + 1, n):
Ab[j] -= Ab[i] * Ab[j][i] / Ab[i][i]
# 回带求解
x = np.zeros(n)
for i in range(n - 1, -1, -1):
x[i] = Ab[i][n] / Ab[i][i]
for j in range(i - 1, -1, -1):
Ab[j][n] -= Ab[j][i] * x[i]
return x
```
其中,输入矩阵 A 和向量 b 分别表示线性方程组的系数矩阵和常数向量,输出向量 x 表示方程组的解。该程序首先将增广矩阵合并,然后进行高斯消元,最后回带求解。在高斯消元的过程中,首先选取主元,然后进行消元。在回带求解的过程中,从最后一行开始,通过代入求解出每个未知数的值。
阅读全文