高斯若尔当消元法python
时间: 2024-04-09 08:26:41 浏览: 21
高斯若尔当消元法(Gaussian elimination)是一种用于解线性方程组的常用方法。它通过一系列的行变换将线性方程组转化为简化的行阶梯形式,从而求解方程组的解。
在Python中,可以使用NumPy库来实现高斯若尔当消元法。NumPy是一个强大的数值计算库,提供了丰富的线性代数函数和矩阵操作。
以下是使用NumPy实现高斯若尔当消元法的示例代码:
```python
import numpy as np
# 定义线性方程组的系数矩阵A和常数向量b
A = np.array([[2, 1, -1],
[-3, -1, 2],
[-2, 1, 2]])
b = np.array([8, -11, -3])
# 将系数矩阵A和常数向量b合并为增广矩阵
augmented_matrix = np.column_stack((A, b))
# 使用高斯若尔当消元法求解增广矩阵
n = len(b)
for i in range(n):
# 将当前列的主元素归一化为1
if augmented_matrix[i, i] != 0:
augmented_matrix[i, :] /= augmented_matrix[i, i]
# 将当前列下方的元素消为0
for j in range(i+1, n):
factor = augmented_matrix[j, i] / augmented_matrix[i, i]
augmented_matrix[j, :] -= factor * augmented_matrix[i, :]
# 提取解向量x
x = augmented_matrix[:, -1]
print("线性方程组的解为:", x)
```
这段代码首先定义了线性方程组的系数矩阵A和常数向量b,然后将它们合并为增广矩阵。接下来,通过一系列的行变换将增广矩阵转化为简化的行阶梯形式。最后,提取出解向量x即为线性方程组的解。