Единицы, константы и math

Прежде чем считать небо, договоримся о единицах и заведём набор констант.

Астрономическая единица (а.е.) — среднее расстояние от Земли до Солнца, примерно $1.496 \times 10^{11}$ м. Парсек — $3.086 \times 10^{16}$ м, около 3.26 светового года.

Зоопарк единиц

Астрономия охватывает масштабы от метров (детали телескопа) до гигапарсеков (размер видимой Вселенной). Поэтому единиц много, и путаница в них — причина номер один ошибочных расчётов. Запомните основные мосты:

ВеличинаЗначение в СИ
1 а.е.$1.496 \times 10^{11}$ м
1 световой год$9.461 \times 10^{15}$ м
1 парсек$3.086 \times 10^{16}$ м = 3.262 св. года
1 год (юлианский)$3.156 \times 10^{7}$ с

Константы, которые понадобятся

Главные физические константы курса: гравитационная постоянная $G = 6.674 \times 10^{-11}\,\text{м}^3\,\text{кг}^{-1}\,\text{с}^{-2}$, скорость света $c = 2.998 \times 10^8$ м/с, постоянная Стефана-Больцмана $\sigma = 5.670 \times 10^{-8}\,\text{Вт}\,\text{м}^{-2}\,\text{К}^{-4}$, постоянная смещения Вина $b = 2.898 \times 10^{-3}$ м·К. Заведём их в коде один раз и будем переиспользовать.

import math

# Константы (СИ)
G = 6.674e-11       # гравитационная постоянная
c = 2.998e8         # скорость света, м/с
AU = 1.496e11       # астрономическая единица, м
PC = 3.086e16       # парсек, м
M_SUN = 1.989e30    # масса Солнца, кг

# Пример: сколько секунд свет идёт от Солнца до Земли?
t = AU / c
print("Свет от Солнца:", round(t, 1), "с =", round(t / 60, 2), "мин")

# Параметр GM Солнца (часто нужен вместе)
GM = G * M_SUN
print("GM Солнца:", "{:.3e}".format(GM), "м^3/с^2")

Вывод:

Свет от Солнца: 499.0 с = 8.32 мин
GM Солнца: 1.327e+20 м^3/с^2

Как работает под капотом

В астрономии часто фигурирует не отдельно $G$ и $M$, а их произведение $GM$ (его называют гравитационным параметром). Причина в том, что $G$ известна с большой относительной погрешностью, а вот $GM$ для Солнца, Земли и планет измерено очень точно — по движению спутников и зондов. Поэтому в формулах орбит удобно держать $GM$ как единое число.

Модуль math даёт всё нужное: math.sin, math.cos, math.asin, math.atan2, math.sqrt, math.log10, math.radians, math.degrees, а также math.pi. Важно: тригонометрия в Python работает с радианами, а астрономы любят градусы и часы — переводы будут постоянно.

Частые ошибки

  • Подставлять градусы туда, где math.sin ждёт радианы. Всегда конвертируйте через math.radians.
  • Смешивать единицы в одной формуле (а.е. и метры). Приводите всё к одной системе.
  • Использовать слишком грубые константы. Для учебных задач хватает 4 значащих цифр, но подписывайте, что это приближение.

Итог

  • Единицы в астрономии разнообразны — держите таблицу переводов под рукой.
  • Гравитационный параметр $GM$ удобнее и точнее, чем $G$ и $M$ по отдельности.
  • Тригонометрия в Python — в радианах; radians/degrees станут вашими друзьями.
Проверьте себя
1. Сколько примерно времени идёт свет от Солнца до Земли?
A8 секунд
B8 минут
C8 часов
D8 дней
2. Почему в формулах орбит удобнее держать GM как единое число?
AGM проще набрать
BGM измерено точнее, чем G и M по отдельности
CG меняется со временем
DM Солнца неизвестна
3. В каких единицах math.sin ожидает аргумент?
AВ градусах
BВ радианах
CВ часах
DВ оборотах