编写列主元高斯消元法的程序并求解简单的线性方程组
时间: 2024-02-25 12:58:05 浏览: 75
好的,下面是一个简单的 Python 代码实现列主元高斯消元法:
```python
import numpy as np
# 列主元高斯消元法求解线性方程组
def gauss_elimination(A, b):
n = len(A)
for i in range(n):
# 选取主元
max_index = i
for j in range(i+1, n):
if abs(A[j][i]) > abs(A[max_index][i]):
max_index = j
A[i], A[max_index] = A[max_index], A[i]
b[i], b[max_index] = b[max_index], b[i]
# 消元
for j in range(i+1, n):
factor = A[j][i] / A[i][i]
b[j] -= factor * b[i]
for k in range(i, n):
A[j][k] -= factor * A[i][k]
# 回代求解
x = np.zeros(n)
for i in range(n-1, -1, -1):
x[i] = b[i] / A[i][i]
for j in range(i):
b[j] -= A[j][i] * x[i]
return x
# 测试
A = np.array([[2, 1, -1],
[4, 1, 0],
[-2, 2, 1]], dtype=float)
b = np.array([3, 5, 2], dtype=float)
x = gauss_elimination(A, b)
print(x)
```
这段代码实现了列主元高斯消元法,并对一个简单的线性方程组进行求解。其中,输入矩阵 A 和向量 b 分别表示方程组的系数矩阵和常数向量,输出向量 x 表示方程组的解。
阅读全文