列主元消元法python代码
时间: 2024-10-15 14:02:15 浏览: 31
Python基于高斯消元法计算线性方程组示例
5星 · 资源好评率100%
列主元消元法,也称为高斯消元法,是一种线性代数求解线性方程组的经典算法。在Python中,我们可以使用numpy库来实现这个过程。以下是简单的高斯消元法的代码示例:
```python
import numpy as np
def gauss_elimination(A, b):
# 确保输入矩阵A是方阵
assert A.shape[0] == A.shape[1], "Matrix must be square"
n = len(b) # 方程的个数
for i in range(n):
# 找到当前行的最大非零元素作为主元
max_index = abs(A[i, :]).argmax()
if max_index != i:
A[[i, max_index]] = A[[max_index, i]]
b[[i, max_index]] = b[[max_index, i]]
# 消元过程:将第i行的其它元素除以其最大元素
for j in range(i + 1, n):
factor = A[j, i] / A[i, i]
A[j, :] -= factor * A[i, :]
b[j] -= factor * b[i]
# 回带过程:从最后一行开始,用上方行的解更新未知数
X = np.zeros((n, 1))
for i in range(n - 1, -1, -1):
X[i] = (b[i] - np.dot(A[i, i+1:], X[i+1:])) / A[i, i]
return X
# 示例
A = np.array([[4, 2, -1], [3, 5, 2], [1, -6, 7]])
b = np.array([8, 14, 20])
solution = gauss_elimination(A, b)
print("Solution:", solution)
阅读全文