全主元高斯消去法python
时间: 2023-10-08 13:06:50 浏览: 230
以下是使用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_row = i
for j in range(i, n):
if abs(Ab[j, i]) > abs(Ab[pivot_row, i]):
pivot_row = j
Ab[[i, pivot_row]] = Ab[[pivot_row, i]]
# 消元
for j in range(i + 1, n):
multiplier = Ab[j, i] / Ab[i, i]
Ab[j, i:] = Ab[j, i:] - multiplier * Ab[i, i:]
# 回代求解
x = np.zeros(n)
for i in range(n - 1, -1, -1):
x[i] = (Ab[i, n] - np.dot(Ab[i, i+1:n], x[i+1:n])) / Ab[i, i]
return x
```
其中,输入参数`A`为系数矩阵,`b`为方程组右侧的常数向量。输出为方程组的解向量`x`。
使用示例:
```python
A = np.array([[3, 2, -1], [2, -2, 4], [-1, 0.5, -1]])
b = np.array([1, -2, 0])
x = gauss_elimination(A, b)
print(x)
```
输出结果为:
```
[ 1. -2. 2.]
```
表示方程组的解为`x1=1`,`x2=-2`,`x3=2`。
阅读全文