Эллиптические орбиты и законы Кеплера
Чуть измени скорость планеты — и идеальный круг вытянется в эллипс с ближней и дальней точками.
Эллиптическая орбита — замкнутая траектория тела в поле тяготения, в одном из фокусов которой находится притягивающий центр (первый закон Кеплера).
От круга к эллипсу
Круговая орбита — особый, тонко настроенный случай: нужна ровно скорость $v = \sqrt{GM/r}$. Дай планете меньше — и она не удержится на круге, а «провалится» ближе к звезде, разгонится, обогнёт её и вернётся — получится вытянутый эллипс. Иоганн Кеплер открыл это для планет Солнечной системы: все они движутся по эллипсам, в фокусе которых стоит Солнце. Ближайшая к звезде точка называется перигелием, дальняя — афелием.
Симулируем эллипс
Стартуем с $r = 1$, но дадим лишь $80\%$ круговой скорости. Проследим, как меняется расстояние $r$, и найдём перигелий и афелий.
import math
GM = 4*math.pi**2
x, y = 1.0, 0.0
vx, vy = 0.0, 0.8*math.sqrt(GM) # медленнее круговой
dt = 0.002
rmin, rmax = 9.0, 0.0
for step in range(0, 601):
if step % 50 == 0:
t = step*dt; r = math.hypot(x, y)
print(f"t={t:.2f} x={x:+.3f} y={y:+.3f} r={r:.4f}")
r = math.hypot(x, y)
ax = -GM*x/r**3; ay = -GM*y/r**3
vx += ax*dt; vy += ay*dt
x += vx*dt; y += vy*dt
r = math.hypot(x, y)
rmin = min(rmin, r); rmax = max(rmax, r)
print(f"перигелий ~ {rmin:.4f} афелий ~ {rmax:.4f}")
Вывод:
t=0.00 x=+1.000 y=+0.000 r=1.0000 t=0.10 x=+0.798 y=+0.468 r=0.9249 t=0.20 x=+0.207 y=+0.680 r=0.7112 t=0.30 x=-0.455 y=+0.139 r=0.4757 t=0.40 x=-0.005 y=-0.642 r=0.6416 t=0.50 x=+0.669 y=-0.578 r=0.8839 t=0.60 x=+0.983 y=-0.153 r=0.9946 t=0.70 x=+0.902 y=+0.337 r=0.9629 t=0.80 x=+0.426 y=+0.665 r=0.7897 t=0.90 x=-0.317 y=+0.417 r=0.5239 t=1.00 x=-0.237 y=-0.505 r=0.5577 t=1.10 x=+0.495 y=-0.656 r=0.8221 t=1.20 x=+0.928 y=-0.301 r=0.9759 перигелий ~ 0.4707 афелий ~ 1.0001
Расстояние $r$ теперь «дышит»: оно колеблется между афелием $1.0$ (точка старта оказалась самой дальней) и перигелием $\approx 0.47$. Орбита — вытянутый эллипс. Заметьте по координатам: около перигелия (малое $r$) планета проходит участок траектории заметно быстрее, чем у афелия. Это второй закон Кеплера: радиус-вектор заметает равные площади за равные времена, поэтому у звезды планета мчится, а вдали ползёт.
Энергия и форма орбиты
Форму орбиты определяет полная энергия. Если она отрицательна — орбита замкнута (эллипс или круг), тело связано со звездой. Если энергии хватает (она $\ge 0$) — траектория разомкнута (парабола или гипербола), тело улетает навсегда. Граница — вторая космическая скорость $v_{\text{уб}} = \sqrt{\frac{2GM}{r}}$, в $\sqrt{2} \approx 1.41$ раза больше круговой. В наших единицах на $r = 1$ это $2\pi\sqrt{2} \approx 8.89$. Дав планете такую скорость, мы бы увидели, как она уходит в бесконечность, не возвращаясь.
Как работает под капотом
Самое замечательное: код симуляции не изменился по сравнению с круговой орбитой — те же три строки с гравитацией. Поменялись лишь начальные условия (скорость). Эллипс, парабола, гипербола — всё это разные решения одного уравнения, и симуляция выдаёт нужное автоматически, в зависимости от старта. Это иллюстрирует мощь численного подхода: одна программа охватывает всё семейство орбит, тогда как аналитически каждый тип требует отдельного разбора. Перигелий и афелий мы нашли простым отслеживанием минимума и максимума $r$ — приём, годный для любой колеблющейся величины.
Частые ошибки
- Считать любую орбиту круговой. Круг — редкое исключение; малейшее отклонение скорости даёт эллипс.
- Путать перигелий и афелий. Перигелий — ближняя точка (быстрое движение), афелий — дальняя (медленное).
- Забывать про вторую космическую. Превысив $\sqrt{2}\,v_{\text{круг}}$, тело улетает — орбита перестаёт быть замкнутой.
Итог
- Не круговая скорость даёт эллиптическую орбиту (1-й закон Кеплера: звезда в фокусе).
- У перигелия планета движется быстро, у афелия медленно (2-й закон Кеплера).
- Форму орбиты задаёт энергия; граница улёта — $v_{\text{уб}}=\sqrt{2GM/r}$.
- Один и тот же код даёт все типы орбит — меняются лишь начальные условия.