高斯消元法的python
时间: 2023-10-13 14:21:15 浏览: 78
以下是高斯消元法的Python实现:
```python
import numpy as np
def gauss_elimination(A, b):
n = len(b)
# 构造增广矩阵
M = np.hstack((A, b.reshape(n, 1)))
# 高斯消元
for i in range(n):
# 选主元
max_row = i
for j in range(i+1, n):
if abs(M[j, i]) > abs(M[max_row, i]):
max_row = j
# 将主元所在行换到第i行
M[[i, max_row]] = M[[max_row, i]]
# 消元
for j in range(i+1, n):
M[j, :] -= M[i, :] * (M[j, i] / M[i, i])
# 回代求解
x = np.zeros(n)
for i in range(n-1, -1, -1):
x[i] = (M[i, n] - np.dot(M[i, i+1:n], x[i+1:n])) / M[i, i]
return x
```
其中,A是系数矩阵,b是常数向量。函数返回方程组的解。需要注意的是,该函数只能解线性方程组,不能处理奇异矩阵(即行列式为0的矩阵)和无解的情况。
阅读全文