HM1_Aufgabenserie10/Schenk_Brandenberger_S10_Au...

25 lines
708 B
Python

import numpy as np
print("*********Jacobi-Verfahren*********")
def Jacobi(A,b,x,steps):
L = np.tril(A,k=-1)
D = np.diag(np.diag(A))
R = np.triu(A, k=1)
for steps in range(steps):
x = -np.linalg.inv(D) @ (L + R) @ x + np.linalg.inv(D) @ b
#print(np.linalg.norm((-np.linalg.inv(D) @ (L + R)),np.inf))
return x
A = np.array([[8,5,2],[5,9,1],[4,2,7]])
b = np.array([[19],[5],[34]])
x = np.array([[1],[-1],[3]])
steps = 3
print(Jacobi(A,b,x,steps))
print("Sum of vector:")
#print(np.sum(Jacobi(A,b,x,steps)))
#print(np.linalg.norm(Jacobi(A,b,x,3)-Jacobi(A,b,x,2),np.inf)*7)
print(np.linalg.norm(Jacobi(A,b,x,3)-Jacobi(A,b,x,2),np.inf))
print((0.0001*0.125)/0.7693452380952384)