Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- # Вхідні дані
- A = np.array([[210, 210, 210],
- [98.3, 103.9, 103.9, 103.9, 98.3],
- [31.3, 70.4, 70.4, 70.4, 31.3],
- [9, 9, 9]])
- b = np.array([0, 0, 0, 0])
- # Параметри методу
- omega = 1.25 # Параметр релаксації
- tolerance = 1e-6 # Точність
- max_iterations = 1000 # Максимальна кількість ітерацій
- # Ініціалізація невідомих
- x = np.zeros_like(b)
- # Ітераційний метод послідовної верхньої релаксації
- for iteration in range(max_iterations):
- x_old = x.copy()
- for i in range(len(b)):
- sigma = 0
- for j in range(len(b)):
- if j != i:
- sigma += A[i][j] * x[j]
- x[i] = (1 - omega) * x[i] + (omega / A[i][i]) * (b[i] - sigma)
- # Перевірка збіжності
- if np.linalg.norm(x - x_old, np.inf) < tolerance:
- break
- # Виведення результатів
- if iteration < max_iterations - 1:
- print("Розв'язок знайдено після", iteration + 1, "ітерацій:")
- print(x)
- else:
- print("Розв'язок не знайдено за максимальну кількість ітерацій")
Advertisement
Add Comment
Please, Sign In to add comment