Где я могу найти набор данных о начальных условиях нашей Солнечной системы?

Как следует из названия, мне нужен набор данных о нашей Солнечной системе. Подобно этому http://bima.astro.umd.edu/nemo/archive/#iau25 , но более конкретно, данные Дубинского Млечного Пути-Андромеды.

Я создаю симуляцию n тел для школы и не могу найти какие-либо начальные условия частиц, которые я мог бы использовать для моделирования нашей солнечной системы в программном обеспечении, которое я разрабатываю. Мне нужны начальные положения, скорость и масса.

Любая идея, где я могу найти это?

Ответы (4)

Генератор эфемерид Horizons может дать вам положение планеты и векторы скорости в указанное время.

Это один из возможных вариантов:

введите описание изображения здесь

Нажав кнопку «Создать эфемериды » на этой странице, вы получите векторы положения и скорости:

введите описание изображения здесь

Над векторами положения и скорости указана юлианская дата, а также более обычная дата.

Википедия может дать массу солнца и планет.

Вы, вероятно, уже давно ушли, но, просто для справки, начальные условия, которые использует HORIZONS, упоминаются ("header.431_572") на ftp://ssd.jpl.nasa.gov/pub/eph/planets/Linux/ README.txt , но единственное место, где я мог найти их в «табличной форме», — это мой собственный репозиторий git:

https://github.com/barrycarter/bcapps/blob/master/ASTRO/header.431_572

Значения объясняются в http://ilrs.gsfc.nasa.gov/docs/2014/196C.pdf , начиная со страницы 39, «VI. Начальные условия и константы», особенно в таблицах, начинающихся с Таблицы 4 на странице 47 и заканчивая Таблицей 13 на стр. 74.

Я написал сценарии для настройки начальных условий и численного решения дифференциальных уравнений с помощью Mathematica, поэтому может оказаться полезным следующее:

https://github.com/barrycarter/bcapps/blob/master/ASTRO/README

https://github.com/barrycarter/bcapps/blob/master/ASTRO/bc-header-values.pl

https://github.com/barrycarter/bcapps/blob/master/ASTRO/bc-integrate.m

Когда я уменьшаю размер шага в достаточной степени (размер шага по умолчанию в Mathematica слишком велик), мои результаты почти совпадают с результатами HORIZONS:

https://github.com/barrycarter/bcapps/blob/master/ASTRO/bc-integrate-compare.m

Мне удалось получить декартовы векторы орбит для всех основных тел из HORIZON только в эпоху J2000. Я мог бы расширить охват вперед во времени. При этом легко получить перегрузку данными. Моя симуляция смоделирована с использованием только Законов Гравитации и Движения. Это дает результаты, удивительно близкие к опубликованным. Прогон Солнечной системы в обратном направлении (путем обращения векторов скорости) дал мне начальные векторы назад к 1900 году. Это все, что мне было нужно, и результаты были достаточно близки для моих целей. У меня все еще есть файлы CSV.

У меня также были всевозможные проблемы с интерфейсом Horizons. Например, изменение даты не повлияло на значение векторов. то есть: все указанные даты начала имеют одинаковые значения. В последнее время мне не удалось повторить этот подвиг. Очевидно, что с этим интерфейсом есть серьезные проблемы, особенно в последнее время.

Я знаю, что данные, которые я получил, были правильными, потому что они прекрасно коррелируют с опубликованными событиями, например, с недавним прохождением Меркурия.

Я тоже все еще ищу этот тип данных.

На каком языке вы пишете эту симуляцию? Это 2D или 3D? Вам нужны только положения и скорости для планет нашей Солнечной системы?

Я сделал именно это (симулировал солнечную систему на Фортране), и мне не нужны были точные начальные положения, все, что мне было нужно, это начальные радиусы (в астрономических единицах от Солнца/центра масс) и начальные скорости. Используйте генератор случайных чисел, чтобы распределить планеты в случайных местах по их орбитам. На Фортране это выглядело так:

CALL RANDOM_NUMBER(randNum)
degrees = 2*3.141592653
theta(1:15) = degrees*randNum(1:15)

И там у меня есть массив из 15 случайных радиальных позиций. Вы можете получить начальные скорости планет нашей Солнечной системы из любого авторитетного источника.

Разве это решение не предполагает, что планеты имеют круговые орбиты?
Да, бывает, к сожалению. К счастью для нас, это разумное предположение. Какие планеты вы пытаетесь смоделировать? Если бы мы знали больше о первоначальных параметрах и целях вашего проекта, было бы немного лучше.
Ну, во-первых, я делаю это на C#, используя OpenCL и OpenGL. Я использую наивный алгоритм O(n^2), так как его проще всего реализовать в OpenCL. Сначала я пытался смоделировать столкновение Млечного Пути и Андромеды, но это оказалось очень медленно, поэтому сейчас я пытаюсь смоделировать нашу солнечную систему только в 2D.
Итак... C# гораздо меньше подходит для такого рода научных вычислений, чем что-то вроде C/C++/Fortran. Для чего вы используете OpenCL/GL? Симулировать солнечную систему гораздо проще, чем столкновение миллиардов звезд, да. Во-первых, если вы действительно не заботитесь об этом, вы можете игнорировать Меркурий (он ни на что не влияет). Вы моделируете это, чтобы попытаться увидеть, как он реагирует на нестабильность или какую-то другую конечную цель?
Что ж, я больше знаком с C#, чем с Fortran, и я использую OpenGL для визуализации и OpenCL для параллелизма. Моя конечная цель — визуализировать орбиты планет вокруг Солнца.
Ааа, ну в этом есть смысл. На самом деле я не визуализировал результаты моего моделирования (результаты для меня были огромным CSV-файлом), поэтому, боюсь, я не могу вам в этом помочь. Не похоже, что вы стремитесь к невероятной точности, поэтому мой ответ о начальных позициях вам подойдет.