Единицы, константы и 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станут вашими друзьями.