Численная модель Солнечной системы
Эта статья включает список литературы , связанную литературу или внешние ссылки , но ее источники остаются неясными, поскольку в ней отсутствуют встроенные цитаты . ( Апрель 2009 г. ) |
Численная модель Солнечной системы представляет собой набор математических уравнений, которые при решении дают приблизительное положение планет в зависимости от времени. Попытки создания такой модели определили более общую область небесной механики . Результаты этого моделирования можно сравнить с прошлыми измерениями, чтобы проверить точность, а затем использовать для прогнозирования будущих положений. Поэтому его основное применение — подготовка альманахов.
Старые усилия
[ редактировать ]Моделирование может выполняться как в декартовых , так и в сферических координатах. Первые проще, но чрезвычайно трудоемки и практичны только на электронном компьютере. Таким образом, в прежние времена использовался только последний. Строго говоря, последний был не намного менее трудоемким в расчетах, но можно было начать с простых приближений, а затем добавлять возмущения столько, сколько необходимо для достижения желаемой точности.
По сути, это математическое моделирование Солнечной системы является разновидностью проблемы N тел . Символ N представляет собой количество тел, которое может вырасти довольно большим, если в него включить Солнце, 8 планет, десятки лун и бесчисленное количество планетоидов, комет и так далее. Однако влияние Солнца на любое другое тело настолько велико, а влияние всех остальных тел друг на друга настолько мало, что задачу можно свести к аналитически решаемой задаче двух тел. Результатом для каждой планеты является орбита, простое описание ее положения как функции времени. Как только эта проблема будет решена, влияние лун и планет друг на друга будет добавлено в виде небольших поправок. Они малы по сравнению с полной планетарной орбитой. Некоторые поправки могут составлять несколько градусов, а измерения могут быть выполнены с точностью лучше 1 дюйма.
Хотя этот метод больше не используется для моделирования, он по-прежнему полезен для поиска приближенных эфемерид , поскольку можно взять относительно простое основное решение, возможно, добавить несколько самых крупных возмущений и без особых усилий прийти к желаемому положению планеты. Недостаток состоит в том, что теория возмущений представляет собой очень сложную математику.
Современный метод
[ редактировать ]Современный метод заключается в численном интегрировании в трехмерном пространстве. Начинаем со значения высокой точности положения ( x , y , z ) и скорости ( v x , v y , v z ) для каждого из задействованных тел. Если также известна масса каждого тела, ускорение ( a x , a y , a z ) можно рассчитать на основе закона гравитации Ньютона . Каждое тело притягивает друг друга, причем общее ускорение представляет собой сумму всех этих притяжений. Затем выбирают небольшой временной шаг Δ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 = gravitationfunction(x.old) x.new = x.old + v.old * dt v.new = v.old + a.old * dt
Поскольку, по сути, ускорение, используемое на протяжении всего временного шага, такое же, каким оно было в начале временного шага, этот простой метод не имеет высокой точности. Гораздо лучшие результаты достигаются, если взять среднее ускорение, среднее между начальным значением и ожидаемым (невозмущенным) конечным значением:
a.old = gravitationfunction(x.old) x.expect = x.old + v.old * dt a.expect = gravitationfunction(x.expect) v.new = v.old + (a.old + a.expect) * 0.5 * dt x.new = x.old + (v.new + v.old) * 0.5 * dt
Конечно, можно ожидать еще лучших результатов, если взять промежуточные значения. Именно это и происходит при использовании метода Рунге-Кутты , особенно наиболее полезными являются методы 4 или 5 степени. Наиболее распространенным методом является метод чехарды из-за его хорошего долгосрочного энергосбережения.
Совершенно другой метод — использование рядов Тейлора . В таком случае мы пишем:
но вместо того, чтобы развиваться только до некоторой более высокой производной по r, можно развиваться по r и v (то есть r'), написав а затем выпишите множители f и g в ряд .
Приближения
[ редактировать ]Для расчета ускорений необходимо учитывать гравитационное притяжение каждого тела друг к другу. Как следствие, объем вычислений при моделировании увеличивается пропорционально квадрату числа тел: удвоение количества тел увеличивает работу в четыре раза. Чтобы повысить точность моделирования, необходимо использовать не только больше десятичных знаков, но и меньшие временные шаги, что опять же быстро увеличивает объем работы. Очевидно, нужно применить какие-то хитрости, чтобы уменьшить объем работы. Некоторые из этих трюков приведены здесь.
Безусловно, самым важным трюком является использование правильного метода интеграции, как уже было описано выше.
Выбор единиц важен. Вместо того, чтобы работать в единицах СИ , из-за которых некоторые значения будут чрезвычайно малы, а некоторые чрезвычайно велики, все единицы должны быть масштабированы так, чтобы они были близки к 1. Например, для расстояний в Солнечной системе астрономическая единица является наиболее подходящей. простой. Если этого не сделать, почти наверняка можно увидеть, что моделирование прервано в середине расчета числа с плавающей запятой из-за переполнения или опустошения , а если не так уж и плохо, точность все равно может быть потеряна из-за ошибок усечения .
Если N велико (не столько в симуляциях Солнечной системы, сколько в симуляциях галактик), принято создавать динамические группы тел. Все тела в определенном направлении и на большом расстоянии от рассчитываемого в этот момент тела отсчета собираются вместе и их гравитационное притяжение усредняется по всей группе.
Полное количество энергии и угловой момент замкнутой системы являются сохраняющимися величинами. Вычисляя эти суммы после каждого временного шага, симуляцию можно запрограммировать на увеличение размера шага Δt, если они существенно не меняются, и на уменьшение, если они начнут меняться. Также возможно объединение тел в группы, как в предыдущем случае, и применение больших и, следовательно, меньших временных шагов к далеким телам, чем к более близким.
Чтобы обеспечить чрезмерно быстрое изменение ускорения при приближении конкретного тела к телу сравнения, принято вводить малый параметр е , чтобы
Осложнения
[ редактировать ]Если необходима максимально возможная точность, расчеты значительно усложняются. В случае комет необходимо учитывать негравитационные силы, такие как радиационное давление и сопротивление газа. В случае Меркурия и других планет при долгосрочных расчетах нельзя игнорировать релятивистские эффекты. Тогда полная энергия перестанет быть постоянной (потому что четырехвекторная энергия с линейным импульсом является константой). Конечная скорость света также делает важным учитывать эффекты светового времени, как классические, так и релятивистские. Планеты больше нельзя рассматривать как частицы, но необходимо учитывать и их форму и плотность. Например, уплощение Земли вызывает прецессию, вызывающую изменение наклона оси, что влияет на долговременные движения всех планет. Долгосрочные модели, выходящие за пределы нескольких десятков миллионов лет, невозможны из-за отсутствия стабильности Солнечной системы .
См. также
[ редактировать ]Ссылки
[ редактировать ]- Буле, Дэн Л. (1991). Методы определения орбиты для микрокомпьютера . Ричмонд, Вирджиния Willmann-Bell, Inc. : ISBN 978-0-943396-34-7 . ОСЛК 23287041 . [ нужна страница ]