编写一个高斯消元法的代码解方程组
时间: 2024-02-23 21:02:59 浏览: 54
以下是一个简单的高斯消元法的 Python 代码,可以用来解决方程组:
```python
import numpy as np
def gauss_elimination(A, b):
n = len(b)
# 拼接增广矩阵
Ab = np.concatenate((A, b.reshape(n, 1)), axis=1)
# 消元过程
for i in range(n):
# 将主元归一
pivot = Ab[i, i]
Ab[i, :] /= pivot
# 消元
for j in range(i+1, n):
factor = Ab[j, i] / Ab[i, i]
Ab[j, :] -= factor * Ab[i, :]
# 回代过程
x = np.zeros(n)
for i in range(n-1, -1, -1):
x[i] = Ab[i, -1]
for j in range(i+1, n):
x[i] -= Ab[i, j] * x[j]
return x
```
使用示例:
```python
A = np.array([[2, 1, -1], [4, 1, 3], [3, -1, 2]])
b = np.array([8, 15, 10])
x = gauss_elimination(A, b)
print(x) # 输出 [ 2. 3. 1.]
```
注意:该代码并未考虑一些特殊情况,例如主元为零的情况、多解或无解的情况等。在实际应用中应根据具体情况进行修改。
阅读全文