Vla_DOS

porn_block

Oct 23rd, 2023
868
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.30 KB | None | 0 0
  1. import numpy as np
  2.  
  3. # Вхідні дані
  4. A = np.array([[210, 210, 210],
  5.               [98.3, 103.9, 103.9, 103.9, 98.3],
  6.               [31.3, 70.4, 70.4, 70.4, 31.3],
  7.               [9, 9, 9]])
  8.  
  9. b = np.array([0, 0, 0, 0])
  10.  
  11. # Параметри методу
  12. omega = 1.25  # Параметр релаксації
  13. tolerance = 1e-6  # Точність
  14. max_iterations = 1000  # Максимальна кількість ітерацій
  15.  
  16. # Ініціалізація невідомих
  17. x = np.zeros_like(b)
  18.  
  19. # Ітераційний метод послідовної верхньої релаксації
  20. for iteration in range(max_iterations):
  21.     x_old = x.copy()
  22.     for i in range(len(b)):
  23.         sigma = 0
  24.         for j in range(len(b)):
  25.             if j != i:
  26.                 sigma += A[i][j] * x[j]
  27.         x[i] = (1 - omega) * x[i] + (omega / A[i][i]) * (b[i] - sigma)
  28.     # Перевірка збіжності
  29.     if np.linalg.norm(x - x_old, np.inf) < tolerance:
  30.         break
  31.  
  32. # Виведення результатів
  33. if iteration < max_iterations - 1:
  34.     print("Розв'язок знайдено після", iteration + 1, "ітерацій:")
  35.     print(x)
  36. else:
  37.     print("Розв'язок не знайдено за максимальну кількість ітерацій")
  38.  
Advertisement
Add Comment
Please, Sign In to add comment