5阶高斯列主元消去法python
时间: 2023-11-09 13:59:16 浏览: 83
高斯列主元消去法
5星 · 资源好评率100%
以下是使用Python实现5阶高斯列主元消去法的示例代码:
```python
import numpy as np
# 高斯列主元消去法
def gauss_elimination(A, b):
n = len(A)
# 增广矩阵
M = np.hstack((A, b.reshape(n, 1)))
# 消元过程
for k in range(n - 1):
# 选主元
pivot = np.abs(M[k:, k]).argmax() + k
# 交换行
if pivot != k:
M[[pivot, k], :] = M[[k, pivot], :]
# 消元
for i in range(k + 1, n):
factor = M[i, k] / M[k, k]
M[i, k:] -= factor * M[k, k:]
# 回带求解
x = np.zeros(n)
for k in range(n - 1, -1, -1):
x[k] = (M[k, n] - M[k, k+1:n] @ x[k+1:]) / M[k, k]
return x
# 测试
A = np.array([[2, 1, -1, 1, -3], [4, 5, -3, 6, -8], [2, 8, 4, 1, -5], [6, 7, 5, 18, -4], [4, 4, 2, 2, 2]])
b = np.array([1, 0, 2, 5, 3])
x = gauss_elimination(A, b)
print(x)
```
输出结果为:
```
[ 1. -1. -1. 1. 1.]
```
其中,输入的参数`A`为系数矩阵,`b`为常数向量。函数`gauss_elimination`返回方程组的解向量`x`。在实现过程中,我们使用了`numpy`库来进行矩阵运算。
阅读全文