|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.06.2016, 19:29 | #1 |
Новичок
Джуниор
Регистрация: 09.06.2016
Сообщений: 2
|
c++ движение планеты в системе двойной звезды или движение трех тел
программа должна выводить координаты движения звезд и планеты в файл (рисую в gnuplot).
во-первых, не понимаю, почему выходит, что все три объекта движутся прямолинейно (в численном методе Верле я не до конца разобралась, похоже что ошибка там, потому что формула как для прямолинейного движения, хотя препод говорил, что "вроде верно"), во-вторых, не очень понимаю какие начальные условия задавать, в каком отношении друг к другу (ну например скорость и координаты и масса, в каком отношении они должны быть?). Еще препод сказал, что начальные векторы скорости должны быть по касательной к траектории, то есть насколько я понимаю, перпендикулярно к прямой, соединяющей две звезды, я вроде так и сделала, но все равно все неправильно выводит, может неправильно я и сделала. В общем, не понимаю, что делать( Код:
Последний раз редактировалось anpolol; 09.06.2016 в 20:52. |
09.06.2016, 19:58 | #2 | ||
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
Цитата:
А вот это - Цитата:
У вас типичная задача 3-х тел. Создайте структуру - " вектор " , состоящую из 3-х переменных double Код:
Можете создать другую, более полную, с массой тела Код:
- расчета ускорения тела от притяжения 2-х остальных - расчета изменения координат и скорости тела от этого ускорения И программа будет более компактной, более удобочитаемой и более удобной в отладке. PS Я делал что-то подобное, только не на Си, а на Паскале, и не по методу Верле, а по более крутому - Рунге-Кутты.. Последний раз редактировалось type_Oleg; 09.06.2016 в 20:30. |
||
09.06.2016, 20:51 | #3 | |
Новичок
Джуниор
Регистрация: 09.06.2016
Сообщений: 2
|
я все переделала, только вот этого не поняла:
Цитата:
я метод Верле с трудом понимаю, а вы про Рунге-Кутта( |
|
09.06.2016, 23:17 | #4 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
И вообще, anpolol, думаешь, кто-нибудь будет разбираться в твоём говнокоде? Ха-ха-ха. Своих, хватает. Проблемный участок и список ошибок. Больше ничего и не нужно. Если понадобится, скажем. А ещё лучше, приведи уравнение, по которому считал. Нам чё, его из твоего говнокода, в котором ошибок, как грязи, выводить? Ты, в своём уме?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 09.06.2016 в 23:29. |
|
10.06.2016, 02:08 | #5 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
anpolol, по поводу направления вектора начальной скорости планеты.
У вас он как раз направлен прочь от барицентра двух звезд. Потому что вектор положения r (500;500;500) и вектор скорости v(1;1;1) - одинаково направлены. См. рисунок. В таком случае движение будет очень простое - или планета просто улетает по прямой почти прочь ( если скорость больше параболической) , или отлетает по прямой, потом летит обратно и врезается в звезду ( если одна звезда. Если двойная звезда, то сложнее ..) Условие перпендикулярности - из определения векторного произведения: r*v = 0 Например, вектор v = (1;-0,5;-0,5) будет перпендикулярным вашему r, потому что 500*1+500*(-0.5)+500*(-0.5) = 0 И еще - откуда у вас исходные данные, из условий, или сами придумали? Посмотрите вот тут - https://ru.wikipedia.org/wiki/Орбитальная_скорость или тут https://ru.wikipedia.org/wiki/Первая...еская_скорость Там если не понятно μ = G*M У вас для планеты, при ваших условиях - начальная скорость получается больше параболической, она улетит по гиперболе при любом направлении начального вектора скорости. v параб. пл ~ 0.53 ; v нач.пл. = (1^2+1^2+1^2)^0.5 ~ 1.73 А у звезд - наоборот маловата скорость. Они будут вращаться по очень вытянутому эллипсу, и очень сильно сближаться. При сильном сближении резко возрастает погрешность расчета, особенно у такого простого метода. И скорее всего по расчету они тоже разлетятся. И потом, получается что у всей системы начальный импульс не равен 0. Поэтому барицентр всей системы постоянно куда-то движется в этой абсолютной системе координат. Это неудобно для для отображения. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Движение со скоростью света и быстрее скорости света - Сверхсветовое движение | Alar | Свободное общение | 354 | 13.11.2011 21:32 |
Движение колец и Движение линий сверху | Iren1993 | Помощь студентам | 2 | 07.11.2011 19:48 |
движение языков пламени или костер (огонь) - графика на Pascal ABC | Дариiя | Помощь студентам | 2 | 19.06.2011 17:55 |
Движение указателя по форме или Image | nevo | Компоненты Delphi | 5 | 06.04.2008 21:00 |