import numpy as np
def gauss_seidel(A, b, n, x_ini=None):
x = x_ini or np.zeros_like(b)
D = np.diag(np.diag(A)) #提取对角阵
L = -np.tril(A,k = -1) #提取严格下三角矩阵
U = -np.triu(A,k = 1) #提取严格上三角矩阵
for i in range(n):
x = np.linalg.inv(D - L) @ (U @ x + b)
return x
if __name__ == "__main__":
A = np.array(eval(input()), dtype=float)
b = np.array(eval(input()), dtype=float)
n = int(input())
print(gauss_seidel(A, b, n).tolist())
P.S. 希望小编能够改一下下标的细节,目前存在一些bug,可能会造成误解。

京公网安备 11010502036488号