列主元消去法python
时间: 2023-10-12 11:10:20 浏览: 130
列主元消去法(Gaussian elimination)是一种常用的线性方程组求解算法,可以用Python实现。下面是一个简单的示例代码:
```python
import numpy as np
# 定义一个线性方程组的系数矩阵A和常数向量b
A = np.array([[1, 2, 3],
[2, 5, 2],
[6, 1, 1]])
b = np.array([6, 1, 3])
# 求解线性方程组Ax=b
n = len(b)
for k in range(n-1):
# 选取主元,并进行列交换
if abs(A[k,k]) < 1e-10:
for i in range(k+1, n):
if abs(A[i,k]) > abs(A[k,k]):
A[[k,i],:] = A[[i,k],:]
b[[k,i]] = b[[i,k]]
break
# 列主元消去
for i in range(k+1, n):
if A[i,k] != 0:
lam = A[i,k]/A[k,k]
A[i,k+1:n] = A[i,k+1:n] - lam*A[k,k+1:n]
b[i] = b[i] - lam*b[k]
# 回代求解
x = np.zeros(n)
x[n-1] = b[n-1]/A[n-1,n-1]
for k in range(n-2, -1, -1):
x[k] = (b[k] - np.dot(A[k,k+1:n], x[k+1:n]))/A[k,k]
print(x)
```
这个示例代码中,我们使用了NumPy库来进行矩阵运算。首先我们定义了一个线性方程组的系数矩阵A和常数向量b,然后使用列主元消去法求解,最后使用回代法求解出线性方程组的解。
需要注意的是,这个示例代码中没有考虑一些特殊情况,比如矩阵A不可逆等。在实际应用中,需要根据具体情况进行处理。
阅读全文