Files
CalWay_Python/227-7.py
2025-06-13 21:30:09 +08:00

39 lines
851 B
Python

# 追赶法求解
def ZGsolve(A,b):
n = len(b)
beta = [0]*n
for i in range(n):
if i == 0:
beta[i] = A[i][2] / A[i][1]
else:
beta[i] = A[i][2] / (A[i][1] - A[i][0]*beta[i-1])
print("beta:")
print(beta[:-1])
for i in range(n):
if i == 0:
b[i] = b[i] / A[i][1]
else:
b[i] = (b[i] - A[i][0]*b[i-1]) / (A[i][1] - A[i][0]*beta[i-1])
print("y:")
print(b)
for i in range(n-2,-1,-1):
b[i] = b[i] - beta[i]*b[i+1]
return b
#把A,b换成题干的数值###########################################
if __name__ == "__main__":
# 储存追赶法A矩阵
A = [
[0,4,-1],
[-1,4,-1],
[-1,4,-1],
[-1,4,-1],
[-1,4,0]
]
b = [100,200,200,200,100]
print("x:")
print(ZGsolve(A,b))