消元法程序可以用多种编程语言实现,这里分别给出Python和C++的示例代码。
Python 示例(使用numpy库)
```python
import numpy as np
def set_matrix():
设置系数矩阵A和常数项矩阵B
matrix_a = np.array([[2.0, 1.0, 2.0], [5.0, -1.0, 1.0], [1.0, -3.0, -4.0]], dtype=float)
matrix_b = np.array([5, 8, -4], dtype=float).T
return matrix_a, matrix_b
def gauss_shunxu(mat):
高斯顺序消去法
for i in range(0, mat.shape - 1):
判断顺序主子式的首个元素不为0
if mat[i, i] == 0:
print("break:(", i, ",", i, ')元素为0')
break
else:
i行下面的每一行分别跟i行做计算,消掉第i个元素
mat[i + 1:, :] = mat[i + 1:, :] - (mat[i + 1:, i] / mat[i, i]) * mat[i, :]
return mat
def huidai(mat):
回代求解
x = np.zeros(mat.shape, dtype=float)
x[0, -1] = mat[-1, -1] / mat[-1, -1]
for k in range(mat.shape - 1, -1, -1):
x[k - 1] += mat[k - 1, -1] * x[-1]
x[k - 1] = (mat[k - 1, -1] - x[k - 1]) / mat[k - 1, k - 1]
return x
主程序
matrix_a, matrix_b = set_matrix()
mat = gauss_shunxu(matrix_a)
x = huidai(mat)
print("解为:", x)
```
C++ 示例(使用高斯消元法)