Уравнение движения небесных тел

Тема в разделе "WASM.HEAP", создана пользователем _DEN_, 22 дек 2008.

  1. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Пусть есть N материальных точек, имеющих начальное положение и скорость в пространстве, а также массу. Интересует уравнение положения в пространстве каждого объекта в некоторый момент времени t.

    Релятивизм и прочие финслеровы пространства не интересуют, просто классическая механика. Т.е. F = G m1 m2 / R^2, F = a m, и т.д.

    PS. Численные методы - отстой. Дают накопительную ошибку и очень ресурсоемки для хорошей точности.
     
  2. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    Как найдешь решение - обязательно отпишись.
    Помнится, еще Стивен Хоккинг писал, что "рассчитать траекторию движения 3х тел в вакууме" - крайне проблематично
     
  3. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    _DEN_
    Начните с простого. :) Возьмите просто две материальные точки на расстоянии l с нулевыми начальными скоростями и массами m1 и m2. Ну и рассчитайте время t, через которое они столкнутся.
    Это не совсем ответ на вопрос, но, когда Вы решите, это поможет осознать сложность задачи. :derisive:
     
  4. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Magnum

    l_inc

    Ну как мне кажется... Для двух тел...

    F = G m1 m2 / R^2

    Это надо привести к системе из трех дифуров. F это вторая произврдная позиции, деленная на массу ну и т.д. Для N тел на каждое будет действовать сила, равная сумме правых частей. Там, видимо аналогично будет система из трех дифуров.
     
  5. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    _DEN_
    Вообще, если сильно не извращаться, идя по простому пути, то для двух материальных точек достаточно одного дифура.
     
  6. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    [edit]

    p1, p2 - позиции двух точек.

    p1'' = G m2 (p2 - p1) / norm(p2 - p1) ^ 3
    p2'' = G m1 (p2 - p1) / norm(p2 - p1) ^ 3

    Во, кажется так. Мда... :)
     
  7. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
  8. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    _DEN_
    Мда... нифигово не извращаемся. :) Для двух точек достаточно одной оси. Так что пусть в Ваших уравнениях p1 = x1, а p2 = x2. Тогда:
    x1" = G*m2 / (x2-x1)^2
    x2" = G*m1 / (x2-x1)^2
    А вот теперь интересно, как Вы эту системку относительно t решать будете. :)
     
  9. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    [edit]

    Мда... :) Не так тут все просто )
     
  10. scf

    scf Member

    Публикаций:
    0
    Регистрация:
    12 сен 2005
    Сообщения:
    386
    Это как раз задача численного решения системы дифференциальных уравнений (задача Коши)
    по возрастанию точности:
    метод Эйлера
    модифицированный метод Эйлера
    метод Рунге-Кутта
    метод Рунге-Кутта-Фембера
    Если не хватит точности, кури многошаговые методы Адамса-Бэшфорда/Адамса-Мультона
    И пара утверждений:
    Задача Коши n-го порядка сводится к n задачам Коши 1 порядка
    Система диффуров из n уравнений сводится к диффуру n-го порядка
    ЗЫ: при решении используй шаг кратный 2 (включая отрицательные степени двойки конечно)
     
  11. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Вот система диффуров для общего случая, n объектов:

    [​IMG]

    k уравнений, k = 1, ..., n

    G, m - константы.


    scf

    Спасибо, попробую...)
     
  12. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Браво _DEN_ если и правда решишь аналитически - отпишись - пошлём петицию в нобелевский комитет :))
     
  13. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    _DEN_
    А вот здесь ты в корне не прав ;) Накопление ошибки это следствие некорректности конкретного численного алгоритма и не более того. Чаще всего эта некорректность следствие попыток сначала сформулировать постановку задачи в виде диф-ура, а затем численно решить уже диф-ур вместо моделирования самого процесса :)) (это как Крис в одной из старых статей сравнивал асм с С компилятором - скомпилировал С код в асм листинг и затем его компиляцию сравнил с прямой компиляцией С кода :))))
    На самом деле численный подход самодостаточен, т.е. модель всегда можно сразу строить численно не прибегая к промежуточной аналитике и именно численный подход самый универсальный, а аналитический всего лишь интересный способ иногда находить приближённые решения ;). А уж его ресурсоёмкость (загрузка мозгов) на более менее серьёзных задачах это вообще жуть :))
    Например, существующее аналитическое решение для двух тел позволяет приблизительно смоделировать взаимное движение луны и земли, но в реальности на луну и землю действуют как минимум все остальные планеты (+ солнце :) солнечной системы, наличие на земле океанов и т.п. - на фоне этих воздействий ошибка численного округления соизмерима с метеорным дождём (т.е. влиянием космического мусора). И несмотря на наличие таких серьёзных влияний луна не уклоняется от "правильного пути" вокруг земли ;) - думаешь она ориентируется на аналитическое решение? вовсе нет - её основной ориентир - принцип динамического равновесия, вот его и клади в основу численного моделирования ;) если заставишь численную модель "плясать" вокруг "условий реалистичности" (здесь это принцип Д’Аламбера, в других задачах другие условия), то численная ошибка перестанет накапливаться и станет тем чем и должна быть - слабым случайным воздействием, которое к тому же имеет физический смысл - влияние космического мусора ;))
    Отладь процесс на двух телах, сравнивая с аналитикой, и получишь универсальный инструмент в который можно добавлять как тела, так и другие факторы (например океаны, гравитационные аномалии и т.п. ;) - в аналитике и тела то не больно подобавляешь, а уж про "разнородные" воздействия и говорить не приходится ;)

    ЗЫ: Нобелевку за такое решение вряд-ли получишь - подумаешь "численным подходом больше/меньше" :))) но на самом деле это правильно, универсально и не просто не хуже, а намного лучше аналитики :)
     
  14. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Y_Mur

    На счет отстоя я, действительно, поторопился. Тогда я имел ввиду только итеративный метод.
     
  15. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Хы хы

    http://ru.wikipedia.org/wiki/Гравитационная_задача_N_тел
     
  16. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Y_Mur

    Поторопился поторопиться :) Любое численное решение диффура так или иначе - численное интегрирование. А любое численное интегрирование это либо накопление ошибки, либо линейный рост сложности вычислений с линейным ростом переменной.
     
  17. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    _DEN_
    но можно поступать по разному ;)
    вариант 1: строить диф-ур, убеждаться в его аналитической неразрешимости, переходить к играм с различными численными методами решения диф-уров. Очевидный недостаток - диф-ур модель уже "идеализированный\стерилизованный случай" в котором отброшено всё что не влазиет в жёсткие рамки такой постановки задачи. Это во-первых сильно ограничивает исходную гибкость численного подхода изначально не отягощённого условностиями диф-ура ;), а во вторых заставляет численное решение подстраиваться под уже приближённую постановку задачи и считать диф-ур эталоном до которого ему ооочень далеко :)

    вариант 2: на основе элементарных математических выражений общих физических законов строить элементарную модель (в данном случае для момента времени, в других задачах для "кусочка" конструкции и т.п.), затем переходить к итерационному объединению этих кусочков/моментов времени и т.п.
    На первый взгляд это очень похоже на то что происходит при формулировке и численном решении диф-ура, но только на первый взгляд - до тех пор пока не начнёшь разбираться что же такое численные методы решения диф-уров на самом деле ;) а на самом дле разница между 2 и 1 такая же как между кодом написаном на асме и на VB, отягощённом Hi-level условностями и неуклюжим компилятором :))
    При этом втором подходе очень важно чётко сформулировать "условия реалистичности" промежуточного решения, которое позволяет постоянно возвращать "уходящее решение" в правильное русло - это как раз лекарство от накапливающейся погрешности ;).
    Кстати по аналогии с интегралами, где однажды проинтегрированная функция может подставляться в более сложные модели, при этом подходе 2 тоже можно находить "пространства численных решений" для подзадачи (которая не решается аналитическим интегрированием ;), интерполировать эти решения и тоже подставлять в более сложные модели - такой подход резко снижает ресурсоёмкость модели делая решение похожим на аналитическое со всеми его достоинствами (в конце концов какая на разница как представлено решение - функцией, рядом, или набором интерполяционных коэффициентов, обеспечивающем требуемую точность)
    Я сейчас играюсь с этим вторым подходом на другой задаче :) очень интересная и перспективная весчь :), хотя почему-то малоупотребляемая, и совершенно уверен в универсальности этого подхода ;)
     
  18. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Помедитировал ещё и пришёл к выводу, что принцип Д’Аламбера необходимое, но недостаточное "условие реалистичности" если ориентироваться только на него итерационная модель "уйдёт". Для стабилизации нужно добавить закон сохранения энергии или импульса (думаю будет достаточно только одного из них), на основании которого нужно корректировать шаги траектории, вычисленные по принципу Д’Аламбера + закон равноускоренного движения, тогда даже при достаточно крупных шагах по завершению "переходного процесса", стационарное решение для двух тел совпадёт с Кеплеровским эллипсом как и положено "с точностью до константы", т.е. эллипс может отличаться положением в пространстве (которое вообще-то безразличное) или прециссировать, но по форме и взаимному расположению фокусов будет правильным (без ярковыраженной накопленной погрешности).
    А вообще-то задачка прикольная (давненько я про неё не вспоминал), как нибудь на досуге замоделирую :))
     
  19. Vilco

    Vilco Vitaly

    Публикаций:
    0
    Регистрация:
    5 мар 2007
    Сообщения:
    190
    Адрес:
    Nsk, Russia
    Не существует общего решения для N>3. Для N=3 были получены т.н. ряды Зундмана, область применения которых сводится на нет вследствие их чрезвычайно медленной сходимости. Если вам интересно, погуглите "гравитационная задача N тел".
    То есть остаются только численные методы.
     
  20. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Vilco
    ты это случаем не по ссылке из поста #15 прочитал? :))))