python解决高斯消元法
时间: 2023-10-30 17:59:19 浏览: 89
高斯消元法编程
4星 · 用户满意度95%
高斯消元法是一种用来解决线性方程组的方法,可以使用Python来实现。以下是一个使用Python解决高斯消元法的示例代码:
```python
import numpy as np
def gaussian_elimination(A, b):
n = len(A)
# 增广矩阵
augmented_matrix = np.concatenate((A, b), axis=1)
for i in range(n):
# 首先找到当前列中绝对值最大的元素的行号
max_row = i
for j in range(i+1, n):
if abs(augmented_matrix[j, i]) > abs(augmented_matrix[max_row, i]):
max_row = j
# 将绝对值最大的行与当前行交换
augmented_matrix[[i, max_row]] = augmented_matrix[[max_row, i]]
# 将当前行的第一个元素缩放为1
augmented_matrix[i] /= augmented_matrix[i, i]
# 将当前列下方的所有元素消为0
for j in range(i+1, n):
augmented_matrix[j] -= augmented_matrix[i] * augmented_matrix[j, i]
# 回代求解
x = np.zeros(n)
for i in range(n-1, -1, -1):
x[i] = augmented_matrix[i, -1]
for j in range(i+1, n):
x[i] -= augmented_matrix[i, j] * x[j]
return x
# 测试代码
A = np.array([[2, 1, -1], [4, 1, 1], [1, -1, 3]])
b = np.array([[1], [2], [3]])
x = gaussian_elimination(A, b)
print(x)
```
在示例代码中,我们首先定义了一个`gaussian_elimination`函数,它接受一个系数矩阵`A`和常数向量`b`作为输入,并返回方程组的解向量`x`。该函数首先构建增广矩阵,然后进行高斯消元和回代求解过程。
在测试代码中,我们定义了一个示例方程组,并调用`gaussian_elimination`函数求解方程组的解。最后,打印出解向量`x`的值。
注意,这只是一个简单的示例代码,实际应用中可能需要考虑更多的情况,比如处理奇异矩阵、无解或多解等情况。
阅读全文