Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.74 KB | None | 0 0
  1. from pprint import pprint
  2. from numpy import array, zeros, diag, diagflat, dot
  3.  
  4.  
  5. def simpleiter(A, b, N=25, x=None):
  6.  
  7. if x is None:
  8. x = zeros(len(A[0]))
  9.  
  10.  
  11. D = diag(A)
  12. R = A - diagflat(D)
  13.  
  14. #
  15. for i in range(N):
  16. x = (b - dot(R,x)) / D
  17. return x
  18.  
  19. A = array([[0.405, 0.05, 0.04, 0, 0.09],
  20. [-0.061, 0.53, 0.073, 0.11, -0.06],
  21. [0.07, -0.036, 0.38, 0.03, 0.02],
  22. [-0.05, 0, 0.066, 0.58, 0.23],
  23. [0, 0.081, -0.05, 0, 0.41]])
  24. b = array([1.065, 0.975, -1.312, 1.096, -0.048])
  25. guess = array([1.0, 1.0, 1.0, 1.0, 1.0])
  26.  
  27. sol = simpleiter(A, b, N = 25, x = guess)
  28.  
  29. print ("A:")
  30. pprint(A)
  31.  
  32. print ("b:")
  33. pprint(b)
  34.  
  35. print ("x:")
  36. pprint(sol)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement