# 追赶法求解 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))