Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- # Центры и радиусы
- c1 = np.array([0, 0])
- r1 = 1
- c2 = np.array([3, 1])
- r2 = 2
- c3 = np.array([3, 5])
- r3 = 2
- min_abs_c = float('inf')
- best_c = None
- # Перебор углов с шагом 0.1 градуса (~3600x3600 комбинаций)
- theta1_grid = np.linspace(0, 2*np.pi, 3600)
- theta2_grid = np.linspace(0, 2*np.pi, 3600)
- for theta1 in theta1_grid:
- a = c1 + r1 * np.array([np.cos(theta1), np.sin(theta1)])
- for theta2 in theta2_grid:
- b = c2 + r2 * np.array([np.cos(theta2), np.sin(theta2)])
- c = a + b
- if abs(np.linalg.norm(c - c3) - r3) < 1e-3:
- abs_c = np.linalg.norm(c)
- if abs_c < min_abs_c:
- min_abs_c = abs_c
- best_c = c
- print(f"Минимальное значение |c|: {min_abs_c:.3f}")
- print("Координаты c:", best_c)
Advertisement
Add Comment
Please, Sign In to add comment