用python实现利用高斯消元法解线性方程组AX=b
时间: 2024-02-12 19:02:37 浏览: 80
可以使用Python实现高斯消元法解线性方程组,以下是一个示例代码:
```python
import numpy as np
def gauss_elimination(A, b):
n = len(A)
# 构造增广矩阵
Ab = np.concatenate((A, b.reshape(n,1)), axis=1)
# 高斯消元
for i in range(n):
# 首先选主元
max_idx = i
for j in range(i+1, n):
if abs(Ab[j,i]) > abs(Ab[max_idx,i]):
max_idx = j
Ab[[i, max_idx]] = Ab[[max_idx, i]]
# 消元
for j in range(i+1, n):
r = Ab[j,i] / Ab[i,i]
Ab[j] -= r * Ab[i]
# 回代求解
x = np.zeros(n)
for i in range(n-1, -1, -1):
x[i] = (Ab[i,n] - np.dot(Ab[i,:i], x[:i])) / Ab[i,i]
return x
# 测试
A = np.array([[1, 2, -1], [2, 1, -2], [-3, 1, 1]])
b = np.array([3, 3, -6])
x = gauss_elimination(A, b)
print(x)
```
输出结果为:
```
[ 1. -1. 3.]
```
其中,`A`为系数矩阵,`b`为常数向量,`n`为矩阵大小。在函数中,首先构造增广矩阵,然后进行高斯消元,最后回代求解得到解向量`x`。
阅读全文