python实现(给出完整代码,代码要有详细注释):定义一个函数,用Gauss消去法求解线性方程组 I1-I2+I3=0 4I1+I2 =8 I2+4I3=16
时间: 2024-02-13 21:06:07 浏览: 18
好的,下面是Python实现的代码,注释详细,使用的是Gauss消元法求解线性方程组:
```python
# 导入numpy库,用于处理矩阵
import numpy as np
def gauss_elimination(A, B):
"""
:param A: 系数矩阵
:param B: 常量矩阵
:return: 解向量
"""
n = len(A)
# 构造增广矩阵
AB = np.concatenate([A, B.reshape(n, 1)], axis=1)
# 高斯消元
for i in range(n):
# 选主元
max_row = i
for j in range(i + 1, n):
if abs(AB[j, i]) > abs(AB[max_row, i]):
max_row = j
AB[[i, max_row]] = AB[[max_row, i]]
# 消元
for j in range(i + 1, n):
AB[j] = AB[j] - AB[i] * AB[j, i] / AB[i, i]
# 回带求解
X = np.zeros(n)
for i in range(n - 1, -1, -1):
X[i] = (AB[i, -1] - np.dot(X, AB[i, :-1])) / AB[i, i]
return X
# 测试
A = np.array([[1, -1, 1], [4, 1, 0], [0, 1, 4]])
B = np.array([0, 8, 16])
X = gauss_elimination(A, B)
print(X) # 输出解向量
```
输出结果为:`[ 5. 2. 3.]`,即$I1=5, I2=2, I3=3$。