Числовая модель Солнечной системы представляет собой набор математических уравнений, которые при решении дают приблизительные положения планет как функцию времени. Попытки создать такую модель создали более общую область небесной механики . Результаты этого моделирования можно сравнить с прошлыми измерениями для проверки точности, а затем использовать для прогнозирования будущих положений. Поэтому его основное применение заключается в подготовке альманахов.
Моделирование может быть выполнено либо в декартовых , либо в сферических координатах. Первые проще, но требуют чрезвычайно большого объема вычислений и применимы только на электронном компьютере. Поэтому в прежние времена использовался только последний вариант. Строго говоря, последний вариант не был намного менее интенсивным в плане вычислений, но можно было начать с некоторых простых приближений, а затем добавлять возмущения столько, сколько требовалось для достижения желаемой точности.
По сути, это математическое моделирование Солнечной системы является формой задачи N-тел . Символ N представляет собой количество тел, которое может стать довольно большим, если включить Солнце, 8 планет, десятки лун и бесчисленное множество планетоидов, комет и так далее. Однако влияние Солнца на любое другое тело настолько велико, а влияние всех других тел друг на друга настолько мало, что задачу можно свести к аналитически решаемой задаче 2-х тел. Результатом для каждой планеты является орбита, простое описание ее положения как функции времени. После того, как это решено, влияния лун и планет друг на друга добавляются в качестве небольших поправок. Они малы по сравнению с полной планетарной орбитой. Некоторые поправки могут быть все еще большими в несколько градусов, в то время как измерения могут быть сделаны с точностью лучше, чем 1″.
Хотя этот метод больше не используется для моделирования, он все еще полезен для поиска приблизительных эфемерид , поскольку можно взять относительно простое основное решение, возможно, добавить несколько самых больших возмущений и без особых усилий прийти к желаемому положению планеты. Недостатком является то, что теория возмущений — это очень продвинутая математика.
Современный метод состоит из численного интегрирования в трехмерном пространстве. Начинается с высокой точности значения положения ( x , y , z ) и скорости ( vx , vy , vz ) для каждого из вовлеченных тел. Когда также известна масса каждого тела, ускорение ( ax , ay , az ) можно рассчитать по закону тяготения Ньютона . Каждое тело притягивает все остальные тела, а общее ускорение является суммой всех этих притяжений. Затем выбирается небольшой временной шаг Δt и применяется Второй закон движения Ньютона . Ускорение, умноженное на Δt , дает поправку к скорости. Скорость, умноженная на Δt , дает поправку к положению. Эта процедура повторяется для всех других тел.
Результатом является новое значение положения и скорости для всех тел. Затем, используя эти новые значения, начинаем заново весь расчет для следующего временного шага Δ t . Повторяя эту процедуру достаточно часто, получаем описание положений всех тел с течением времени.
Преимущество этого метода в том, что для компьютера это очень простая работа, и он дает высокоточные результаты для всех тел одновременно, избавляясь от сложных и трудных процедур определения возмущений. Недостатком является то, что нужно начинать с высокоточных цифр в первую очередь, или результаты будут отдаляться от реальности со временем; что вы получаете положения x , y , z , которые часто сначала преобразуются в более практичные эклиптические или экваториальные координаты, прежде чем их можно будет использовать; и что это подход «все или ничего». Если кто-то хочет узнать положение одной планеты в определенный момент времени, то все другие планеты и все промежуточные временные шаги также должны быть рассчитаны.
В предыдущем разделе предполагалось, что ускорение остается постоянным в течение малого временного шага Δt, так что расчет сводится к простому добавлению V × Δt к R и т. д. В действительности это не так, за исключением случаев, когда Δt берется настолько малым, что количество шагов, которые необходимо сделать, будет непозволительно большим. Потому что, хотя в любой момент времени положение изменяется под действием ускорения, значение ускорения определяется мгновенным положением. Очевидно, что необходимо полное интегрирование.
Доступно несколько методов. Сначала обратите внимание на необходимые уравнения:
Это уравнение описывает ускорение, которое все тела i, движущиеся от 1 до N, оказывают на конкретное тело j . Это векторное уравнение, поэтому его следует разбить на 3 уравнения для каждого из компонентов X, Y, Z, что даст:
с дополнительными отношениями
,
то же самое для Y и Z.
Первое уравнение (гравитация) может показаться зловещим, но его вычисление не представляет проблемы. Последние уравнения (законы движения) кажутся более простыми, но все же их невозможно вычислить. Компьютеры не умеют интегрировать, они не умеют работать с бесконечно малыми величинами, поэтому вместо dt мы используем Δt и переносим полученную переменную влево:
, и:
Помните, что a все еще является функцией времени. Самый простой способ решения этих задач — просто алгоритм Эйлера , который по сути является линейным сложением, описанным выше. Ограничимся только одним измерением на каком-то общем языке программирования:
a.old = функция гравитации(x.old)x.новый = x.старый + v.старый * dtv.new = v.old + a.old * dt
Поскольку по сути ускорение, используемое на протяжении всего временного шага, является тем же, что и в начале временного шага, этот простой метод не имеет высокой точности. Гораздо лучшие результаты достигаются при использовании среднего ускорения, среднего между начальным значением и ожидаемым (невозмущённым) конечным значением:
a.old = функция гравитации(x.old)x.expect = x.old + v.old * dta.expect = функция гравитации (x.expect)v.new = v.old + (a.old + a.expect) * 0,5 * dtx.новый = x.старый + (v.новый + v.старый) * 0,5 * dt
Конечно, можно ожидать еще лучших результатов, принимая промежуточные значения. Это то, что происходит при использовании метода Рунге-Кутта , особенно 4 или 5 степени, которые наиболее полезны. Наиболее распространенным методом является метод перескока из- за его хорошего долгосрочного сохранения энергии.
Совершенно иной метод — использование ряда Тейлора . В этом случае мы пишем:
но вместо того, чтобы развивать до некоторой более высокой производной только по r, можно развить по r и v (то есть r'), записав , а затем выписав множители f и g в ряд.
Для расчета ускорений необходимо учитывать гравитационное притяжение каждого тела друг к другу. Как следствие, объем вычислений в моделировании увеличивается пропорционально квадрату числа тел: удвоение числа тел увеличивает работу в четыре раза. Для повышения точности моделирования необходимо не только брать больше десятичных знаков, но и меньшие временные шаги, что снова быстро увеличивает объем работы. Очевидно, что для уменьшения объема работы необходимо применять приемы. Некоторые из этих приемов приведены здесь.
Безусловно, самым важным приемом является использование правильного метода интеграции, как уже было указано выше.
Выбор единиц важен. Вместо того, чтобы работать в единицах СИ , что сделало бы некоторые значения чрезвычайно малыми, а некоторые чрезвычайно большими, все единицы должны быть масштабированы таким образом, чтобы они находились в районе 1. Например, для расстояний в Солнечной системе астрономическая единица является наиболее простой. Если этого не сделать, то почти наверняка можно увидеть, как моделирование будет прервано посреди вычисления при переполнении или недополнении с плавающей точкой , и даже если не так уж и плохо, все равно точность, скорее всего, будет потеряна из-за ошибок усечения .
Если N велико (не так много в симуляциях Солнечной системы, но больше в симуляциях галактик), то принято создавать динамические группы тел. Все тела в определенном направлении и на большом расстоянии от опорного тела, которое рассчитывается в этот момент, берутся вместе, и их гравитационное притяжение усредняется по всей группе.
Общее количество энергии и углового момента замкнутой системы являются сохраняющимися величинами. Вычисляя эти величины после каждого временного шага, можно запрограммировать симуляцию на увеличение размера шага Δt, если они не изменяются значительно, и на его уменьшение, если они начинают меняться. Также возможно объединение тел в группы, как в предыдущем случае, и применение больших и, следовательно, меньших временных шагов к далеким телам, чем к близким.
Чтобы учесть чрезмерно быстрое изменение ускорения, когда конкретное тело находится близко к телу отсчета, принято вводить малый параметр e, так что
Если требуется максимально возможная точность, вычисления становятся намного сложнее. В случае комет необходимо учитывать негравитационные силы, такие как давление излучения и сопротивление газа. В случае Меркурия и других планет для долгосрочных расчетов нельзя игнорировать релятивистские эффекты. Тогда также полная энергия больше не является константой (потому что четырехвекторная энергия с линейным импульсом является константой). Конечная скорость света также делает важным учет эффектов свет-время, как классических, так и релятивистских. Планеты больше не могут рассматриваться как частицы, но их форму и плотность также необходимо учитывать. Например, сплющивание Земли вызывает прецессию, которая приводит к изменению наклона оси, что влияет на долгосрочные движения всех планет. Долгосрочные модели, выходящие за рамки нескольких десятков миллионов лет, невозможны из-за отсутствия стабильности Солнечной системы .