Advertisement
Pug_coder

Untitled

Jun 6th, 2023
17
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. import numpy as np
  2.  
  3.  
  4. def system_equations(variables):
  5. x, y = variables
  6. equation1 = np.sin(y) + 2 * x - 2
  7. equation2 = np.cos(x - 1) + y - 0.7
  8. return np.array([equation1, equation2])
  9.  
  10.  
  11. def jacobian_matrix(variables):
  12. x, y = variables
  13. jacobian = np.array([[2, np.cos(y)], [-np.sin(x - 1), 1]])
  14. return jacobian
  15.  
  16.  
  17. def newton_method(initial_guess, tolerance=1e-3, max_iterations=100):
  18. variables = initial_guess
  19. for iteration in range(max_iterations):
  20. equations = system_equations(variables)
  21. jacobian = jacobian_matrix(variables)
  22.  
  23. delta = np.linalg.solve(jacobian, -equations)
  24. variables += delta
  25. if np.max(np.abs(delta)) < tolerance:
  26. return variables
  27. raise ValueError("The method did not converge")
  28.  
  29.  
  30. def main():
  31. initial_guess = np.array([0, 0], dtype=float)
  32. solution = newton_method(initial_guess)
  33. print(f"Solution: x = {solution[0]}, y = {solution[1]}")
  34.  
  35.  
  36. if __name__ == '__main__':
  37. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement