消元法程序怎么写

时间:2025-01-26 14:59:22 单机游戏

消元法程序可以用多种编程语言实现,这里分别给出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++ 示例(使用高斯消元法)