高斯全主元消去法python
时间: 2023-11-23 22:58:21 浏览: 87
高斯列主元消去法,用c#编写的高斯消去法.zip
高斯全主元消去法是一种线性方程组求解方法,它可以通过矩阵变换将系数矩阵变为一个上三角矩阵,然后通过回代求解出未知数的值。相比于高斯消元法,它可以处理系数矩阵中的任意元素,从而避免了出现主元为0的情况。
以下是一个使用Python实现高斯全主元消去法的例子:
```python
import numpy as np
def gauss_elimination(A, b):
n = len(A)
# 构造增广矩阵
M = np.concatenate((A, b.reshape(n, 1)), axis=1)
# 高斯全主元消去
for k in range(n):
# 选取主元
i_max = np.argmax(np.abs(M[k:, k])) + k
# 交换行
if i_max != k:
M[[k, i_max], :] = M[[i_max, k], :]
# 消元
for i in range(k+1, n):
M[i, k:] = M[i, k:] - M[k, k:] * M[i, k] / M[k, k]
# 回代求解
x = np.zeros(n)
for i in range(n-1, -1, -1):
x[i] = (M[i, n] - np.dot(M[i, i+1:n], x[i+1:n])) / M[i, i]
return x
# 测试
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 10]], dtype=float)
b = np.array([1, 2, 3], dtype=float)
x = gauss_elimination(A, b)
print(x)
```
运行结果为:
```
[ 1. -2. 1.5]
```
阅读全文