Попросил изучить OpenGL - для "чистой трехмерной гравитации"..
Это нужно только для визуализации :-)
Внутри модели трёхмерный мир можно сделать безо всяких OpenGL. Да и изобразить его можно "по-простому": например, в трёх проекциях или в аксонометрической проекции.
Прямо таки до нулевого? :-)
Я подозреваю, под нулевым расстоянием он понимает не нулевое расстояние между центрами (как физики), а нулевое расстояние между поверхностями (как в быту).
По описанию мне видится, что применяется что-нибудь типа коэффициента восстановления, используемого в моделировании сыпучих сред.
Ага, вот только нулевого, как я понял.
"Пластилин".
Хотя, по-моему, для ОДУ не применяются неявные схемы
А ошибки не полезут вразнос? Понятно, что ОДУ ведут себя лучше, чем ДУЧП, но уменьшив шаг моделирования, и добившись потери точности, можно сделать всё, что угодно, мне кажется...
alexo2, а подобрав аккуратно коэффициент упругости можно наверное и "чёрные дыры" получить. :-)
Боюсь, для этого его придётся сделать отрицательным :-)
Физике (в части гравитации) вроде как отвечает, но абсолютно нереальна - не бывает такого точного совпадения для более чем трёх тел.
Вот я предлагаю в этой теме зафиксировать такое словоупотребление: "физике отвечает" - это значит, что бывают такие реальные системы. А если всего лишь "отвечает базовым (фундаментальным) формулам физики" - это звучит немножко иначе. Это не говорит о физике системы
тел. К тому же, добиться того, чтобы модель отвечала закону
слишком банально, чтобы за это хвалить.
Cos(x-pi/2)Я думаю, тут вообще многие (если не все) участники разговора проходили через такую стадию :-) Меня тоже как-то отсутствие расходимости насторожило, хотя видимо, поглощение энергии играет достаточную роль при заданных параметрах.
Но "сначала погонять" - это же убивает весь энтузиазм! :-) Разумеется, хочется сразу чудес, а возиться с отладкой и приближением к реальности - занудно и скучно.
-- 29.02.2016 15:56:45 --Если все сделано правильно, то источником ошибок при подобных расчетах будут тесные сближения тел. Обычно проблемы такого рода решают какой-то регуляризацией уравнений (использовать переменный шаг тоже можно, но это обходится намного "дороже"), но в обсуждаемом случае это не требуется - введенная "упругость" убивает проблему наповал.
А можно сразу использовать решение задачи Кеплера, пренебрегая нафиг поправками от далёких тел? ;-)