python/ヤコビ法の収束回数が変わらない

python

A = np.array([[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 1]])b = [1, 2, 3, 4, 5]x_o = [0, 0, 0, 0, 0] #初期値count = 0 a = np. diag(A) #Aの対角成分ベクトルD = np. diagflat(a) #aベクトルを対角成分に持つ行列D_inv = np.linalg.inv(D) #Dの逆行列 print(A) for i in range(1000): x_n = D_inv @ (b - (A - D) @ x_o) err = np.linalg.norm(x_n - x_o) count += 1 x_o = x_n if err < 1.0e-7: break print("収束するまでかかった回数:", count)

コメントを投稿

0 コメント