ВНИМАНИЕ! На форуме началось голосование в конкурсе - астрофотография месяца МАРТ!
0 Пользователей и 1 Гость просматривают эту тему.
For i = 0 To Ne ' Ne=10 здесь Солнце имеет индекс 0, а Плутон 9 (десятое тело на расчеты не влияет)W(i + 3 * (Ne + 1)) = 0: W(i + 4 * (Ne + 1)) = 0: W(i + 5 * (Ne + 1)) = 0 ' обнуляем ускорения i-х тел по осям координатFor j = 0 To Ne ' If i = j Then GoTo 200 ' расчет R(i, j) без запаздывания по координатамDX(i, j) = X(j) - X(i) ' и первое приближение T(i, j), если надо будет рассчитывать запаздываниеDY(i, j) = Y(j) - Y(i)DZ(i, j) = Z(j) - Z(i)Rxy(i, j) = Sqr(DX(i, j) * DX(i, j) + DY(i, j) * DY(i, j)) ' находим расстояния между объектамиR(i, j) = Sqr(Rxy(i, j) * Rxy(i, j) + DZ(i, j) * DZ(i, j))T(i, j) = R(i, j) / Vgr ' время необходимое для распространения гравитации от i-го тела до j-го телаFX(i, j) = 0: FY(i, j) = 0: FZ(i, j) = 0 ' обнуляем силы действующие со стороны i-х тел на j-е тела200: Next jNext iIf kodOTO = 0 Then GoTo 250 ' ПЕРЕХОД, ЕСЛИ РАССЧЕТ ПО КЛАССИКЕ'здесь Vsr = Vgr ^ 2, т.е. скорость света в квадрате ' РАССЧЕТ ПО ОТОIf kodOTO = 1 Then ' РАССЧЕТ ПО ОТО (уравнения ЛАНДАУ)For i = 0 To Ne For j = 0 To NeIf i = j Then GoTo 410 ' расчет силIf kodF(i, j) = 0 Then GoTo 410k1 = m(i) * gamma / R(i, j) ^ 3k2 = (gamma * (5 * m(j) + 4 * m(i)) / R(i, j) - VX(j) ^ 2 - VY(j) ^ 2 - VZ(j) ^ 2 - 2 * VX(i) ^ 2 - 2 * VY(i) ^ 2 - 2 * VZ(i) ^ 2 _+ 4 * VX(j) * VX(i) + 4 * VY(j) * VY(i) + 4 * VZ(j) * VZ(i) + 3 * (VX(i) * DX(i, j) + VY(i) * DY(i, j) + VZ(i) * DZ(i, j)) ^ 2 / 2 / R(i, j) ^ 2)k3 = ((4 * VX(j) - 3 * VX(i)) * DX(i, j) + (4 * VY(j) - 3 * VY(i)) * DY(i, j) + (4 * VZ(j) - 3 * VZ(i)) * DZ(i, j))FX(i, j) = m(j) * (-k1 * DX(i, j) + (k1 / Vsr) * (DX(i, j) * k2 + (VX(j) - VX(i)) * k3))FY(i, j) = m(j) * (-k1 * DY(i, j) + (k1 / Vsr) * (DY(i, j) * k2 + (VY(j) - VY(i)) * k3))FZ(i, j) = m(j) * (-k1 * DZ(i, j) + (k1 / Vsr) * (DZ(i, j) * k2 + (VZ(j) - VZ(i)) * k3))410: Next jNext iEnd If ' kodOTO = 1If kodOTO = 2 Then ' РАССЧЕТ ПО ОТО (уравнения JPL)For i = 0 To NeV(i) = Sqr(VX(i) * VX(i) + VY(i) * VY(i) + VZ(i) * VZ(i)) ' суммарные скорости планетFor j = 0 To NeK0iu(j, i) = 0: Kiu(j, i) = 0 ' ОБНУЛЯЕМ суммы масс k,i и k,jNext jNext iFor i = 0 To Ne ' вычисляем суммы масс k,i и k,j для расчета первого члена в уравненииFor j = 0 To NeFor k = 0 To NeIf k = i Or kodF(k, i) = 0 Then GoTo 230 ' проверяем включены ли в систему объекты k и iK0iu(j, i) = K0iu(j, i) + gamma * m(k) / R(k, i)230: Next kFor k = 0 To NeIf k = j Or kodF(k, j) = 0 Then GoTo 240 ' проверяем включены ли в систему объекты k и jKiu(j, i) = Kiu(j, i) + gamma * m(k) / R(k, j)240: Next kNext jNext iFor i = 0 To Ne ' расчет сил (здесь сначала ускорений i-ых тел)For j = 0 To Ne ' DX(i, j) = X(j) - X(i) и DX(j, i) = X(i) - X(j), т.е. DX(i, j) = - DX(j, i), а R(i, j)= R(j, i)If i = j Or kodF(j, i) = 0 Then GoTo 430k1 = m(j) * gamma / R(j, i) ^ 3 ' находим еденичную силу по Ньютону' при k2=1 учитываем суммы масс в первом члене, а при k6=1 и k7=1 учитываем ускорение в первом члене формулы и в третьемFX(j, i) = k1 * DX(i, j) * (1 - k2 * (4 * K0iu(j, i) / Vsr + Kiu(j, i) / Vsr) + (V(i) / Vgr) ^ 2 + 2 * (V(j) / Vgr) ^ 2 _- 4 * VX(i) * VX(j) / Vsr - 3 * (DX(j, i) * VX(j) / R(i, j)) ^ 2 / (2 * Vsr) + k6 * DX(i, j) * dVX(j) / (2 * Vsr))FY(j, i) = k1 * DY(i, j) * (1 - k2 * (4 * K0iu(j, i) / Vsr + Kiu(j, i) / Vsr) + (V(i) / Vgr) ^ 2 + 2 * (V(j) / Vgr) ^ 2 _- 4 * VY(i) * VY(j) / Vsr - 3 * (DY(j, i) * VY(j) / R(i, j)) ^ 2 / (2 * Vsr) + k6 * DY(i, j) * dVY(j) / (2 * Vsr))FZ(j, i) = k1 * DZ(i, j) * (1 - k2 * (4 * K0iu(j, i) / Vsr + Kiu(j, i) / Vsr) + (V(i) / Vgr) ^ 2 + 2 * (V(j) / Vgr) ^ 2 _- 4 * VZ(i) * VZ(j) / Vsr - 3 * (DZ(j, i) * VZ(j) / R(i, j)) ^ 2 / (2 * Vsr) + k6 * DZ(i, j) * dVZ(j) / (2 * Vsr))If Check13.Value = 1 Then ' если учесть и 2-ой и 3-ий члены в формулеFX(j, i) = FX(j, i) + k1 * DX(j, i) * (4 * VX(i) - 3 * VX(j)) * (VX(i) - VX(j)) / Vsr + k7 * (7 * m(j) * gamma * dVX(j)) / (2 * R(i, j) * Vsr) FY(j, i) = FY(j, i) + k1 * DY(j, i) * (4 * VY(i) - 3 * VY(j)) * (VY(i) - VY(j)) / Vsr + k7 * (7 * m(j) * gamma * dVY(j)) / (2 * R(i, j) * Vsr) FZ(j, i) = FZ(j, i) + k1 * DZ(j, i) * (4 * VZ(i) - 3 * VZ(j)) * (VZ(i) - VZ(j)) / Vsr + k7 * (7 * m(j) * gamma * dVZ(j)) / (2 * R(i, j) * Vsr)End IfFX(j, i) = FX(j, i) * m(i): FY(j, i) = FY(j, i) * m(i): FZ(j, i) = FZ(j, i) * m(i) ' находим по ускорениям тел, действующие на них силы, чтобы 430: Next j' унифицировать расчет с классикой и с ОТО по ЛандауNext iEnd If ' kodOTO = 2GoTo 500 ' переход к расчету по силам FX(j, i) ускорений W
Я в своих программах Solsys7 и Galiley1 использовал уравнения ОТО, которые получаются из лагранжиана (106,17), приведенного во 2-м томе курса физики Ландау, но, сейчас я выяснил, что они не работают в сильных полях, хотя смещение перигелия Меркурия у меня получается по ним, как и положено 572 угл.сек. за век. Поэтому сейчас решил попробовать уравнения ОТО, которые использовали в JPL (подразделение NASA) при создание эфемерид планет DE-405 и DE-430, но столкнулся с тем, что эти уравнения даже для смещения перигелия Меркурия дают только 551 угл.сек. за век.
Как мне кажется, в теме по ссылке может быть наводящая информация:"Я у Чака при личной встрече спрашивал про nio, он сказал, что эта информация ДСП. Nio я взломал"Покопаться нужно с пристрастием.
Я в своих программах Solsys7 и Galiley1 использовал уравнения ОТО, которые получаются из лагранжиана (106,17), приведенного во 2-м томе курса физики Ландау, но, сейчас я выяснил, что они не работают в сильных полях, хотя смещение перигелия Меркурия у меня получается по ним, как и положено 572 угл.сек. за век.
А зачем вы используете лагранжиан для расчетов смещения перигелия планет? Можно получить точную формулу , исходя из уравнений Вайнберга для метрики Шварцшильда, которая будет верна для сильных полей (верна в смысле верности ОТО).
Для простых случаев ваша программа работает?Для сложного случая - двойная система или система типа солнечной - N+1 тело, да, есть проблемы.
Поскольку нет точного решения. Он увидел, что результат зависит от системы координат.Посмотрите внимательно, в каких системах отсчета работали Ландау и Мойер. Может это поможет.
Вообще-то, Ландау точно ни в какой системе координат не работал, а Мойер при работе над эфемеридами DE405 работал в барицентрической декартовой системе координат. Только я не пойму как это может мне помочь, если вы сами же пишите, что точного решения нет. А хоть какое ни будь более-менее точное решение есть?
использовал уравнения ОТО,.. но, сейчас я выяснил, что они не работают в сильных полях, хотя смещение перигелия Меркурия у меня получается по ним, как и положено 572 угл.сек. за век. Поэтому сейчас решил попробовать уравнения ОТО, которые.., но столкнулся с тем, что эти уравнения даже для смещения перигелия Меркурия дают только 551 угл.сек. за век.
Я вам еще на dxdy хотел сделать небольшое замечание."декартовые" или прямоугольные координаты вы можете ввести в разных представлениях метрики Шварцшильда. (5.11), (5.13), (5.14) Справочник по формулам .В первом приближении разложения в ряд gtt будет совпадать для изотропной и гармонической формы.Ландау работал скорее всего в гармонических координатах.
Вот, например, Сергей Хартиков получил решение в полярных координатах и пишет, что оно точное
Самое главное, чтобы оно было точным, а не постньтоновским приближением.
А может быть Вам не заморачиваться расчетами по ОТО, а попробовать метод запаздывания (гравитационного) потенциала?Если Ваша цель - проверить, как работают формулы ОТО или просто создать рабочую программу для вычисления параметров орбит каких-либо небесных тел согласно ОТО, тогда мое предложение Вас не заинтересует.А вот, если Вы хотите найти наиболее верное универсальное решение для вычисления параметров орбит небесных тел, тогда, быть может, метод запаздывающих потенциалов даст более универсальное решение.
Вызывает некие сомнения результат...
https://ru.wikipedia.org/wiki/Задача_Кеплера_в_общей_теории_относительности
Вы мне лучше скажите. Могу ли я, используя эти уравнения, моделировать поведение частицы в сферическом поле и будут ли полученные результаты соответствовать всем требованиям ОТО, чтобы по ним можно было делать выводы о самой ОТО.
Вот, например, Сергей Хартиков получил решение в полярных координатах и пишет,
Ну и чем решения, полученные из уравнения геодезической и приведенные на Вики, лучше решения данного Хартиковым.
Поэтому, если у вас есть какие-то конкретные претензии к вывду Хартикова, то озвучте их.
Для ситуации когда одно массивное тело и одна точечная планета, то можете, если Хартиков нигде не ошибся и если ОТО верна . Для многих планет, уже нет. Там нет точного решения.
В полярных в стандартной форме.
Вы мне объясните популярно вот что, если уж вы в теме. Вы для проверки ОТО используете эти самые эфемериды, а существует несколько таблиц, каждая по своей формуле. Так какая правильная? Что вы сравниваете с экспериментом и как это происходит?