Как определить большую малую полуось орбиты.

Компьютеры математика наука физика астрономия

В общем, вопрос такой. Есть программа, которая моделирует движение планеты вокруг солнца. Нужно посчитать большую и малую полуоси орбиты. Но, к сожалению, совершенно нет никаких идей по поводу этого.
Пытались за один оборот все рассчитать, но идея с треском провалилась.
Балы бы премного благодарна, если бы те, кто сталкивался с подобной проблемой, мог помочь.

Примечание:
Если понадобится код, добавлю.

Примечание:
Да, можно вытащить. Все в астрономических единицах.

Примечание:
Могу расписать, как я пыталась сделать. Координаты вычисляю так:
as[i]=-GM*coord[i]/(r*r*r);
v[i]+=as[i]*dt;
coord[i]+=v[i]*dt;
Опиралась на книгу Гулда и Тобочника "Компьютерное моделирование в физике". В общем, вот. Брала планеты солнечной системы,и данные для них. Там среднюю орбитальную скорость, р-е от солнца (планеты запускала с афелия), массу. Вроде бы рисует все хорошо, все орбиты похожи на окружность.
Как известно, в разных четвертях проекции сил имеют различное направление. С учетом этого, при прохождении одного оборота силы координаты планеты меняют определенным образом свои знаки. Использую это, и, если планета поменяет координаты определенным образом, то она остановится. В начальный момент времени а(большая полуось) и b(малая полуось) равны нулю. По прохождении одного оборота нахожу наибольший положительный у(это и будет малой полуосью) и наибольший положительный х(планета для определенности в начальный момент времени имеет координаты (-х0;0), следовательно (х+х0)/2 даст большую полуось). Я получаю все, но эксцентриситет получается неприлично большим. Период обращения рассчитываю как длину эллипса делю на среднюю скорость. Для земли он получился больше одного года.
Я понимаю, что могут накопиться какие-то погрешности во время выполнения программы, то, что в системе только одно тело, но не может же быть, что слишком сильно результаты будут отклонятся.

Примечание:
Наверное, я неправильно выразилась. Тело не на солнце находится, а на расстоянии х0 от солнца. А к нулю сначала приравниваю, чтобы определить максимальное положительное отклонение от солнца. Может вам это скажет больше, но тут уже пытаюсь работать с наибольшим расстоянием между 2-мя точками на орбите:
a=sqrt((c[0]-1.016)*(c[0]-1.016)+(c[1])*(c[1]));//Расстояние от планеты до солнца
while (fl) {
R=sqrt((c[0]-1.016)*(c[0]-1.016)+(c[1])*(c[1]));// Расстояние от планеты до солнца
if (c[1]>b) b=c[1];
if (R>a) a=R;// Если текущее больше предидущего
euler ();
putpixel (c[0]*30+250, c[1]*30+250, WHITE);
if (prev[0]>=0 && c[0]>=0 && prev[1]<=0 && c[1]>=0){// Если знаки поменялись определенным образом
fl=false;// Опускаем флажок
}
prev[0]=c[0]; prev[1]=c[1];
}

Примечание:
Ну, если то, что я пытаюсь сделать, слишком странно, но не могли бы вы предложить что-нибудь? Просто уже нет никаких идей, и ни одно вычисление не выполняется правильно. Даже не знаю, то вообще еще можно придумать.

Примечание:
Не придавать вращения вокруг солнца?
Ответы:
А что вообще выдаёт код? Расстояние до звезды в каждый момент времени можно вытащить?


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.