高斯列主元素消元法源代码
时间: 2023-07-03 12:29:45 浏览: 47
以下是使用 Python 语言实现高斯列主元素消元法的源代码:
```python
import numpy as np
def gauss_elimination(A, b):
# 构造增广矩阵
Ab = np.concatenate((A, b.reshape((-1, 1))), axis=1)
# 消元过程
n = Ab.shape[0]
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]]
# 将当前列下方的元素消为零
for j in range(i+1, n):
Ab[j] = 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, -1] - np.dot(Ab[i, :-1], x)) / Ab[i, i]
return x
```
该代码中,`A` 是系数矩阵,`b` 是常数向量,`Ab` 是增广矩阵。函数先将 `A` 和 `b` 合并成增广矩阵 `Ab`,然后进行消元过程,将 `Ab` 转化为上三角矩阵。最后通过回代求解得到方程组的解。