Files
CalWay_Python/227-7.py
2025-04-16 21:40:31 +08:00

37 lines
677 B
Python

# 储存追赶法A矩阵
A = [
[0,4,-1],
[-1,4,-1],
[-1,4,-1],
[-1,4,-1],
[-1,4,0]
]
b = [100,200,200,200,100]
# 追赶法求解
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])
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])
for i in range(n-2,-1,-1):
b[i] = b[i] - beta[i]*b[i+1]
return b
if __name__ == "__main__":
print("x:")
print(ZGsolve(A,b))