Я пытаюсь получить некоторый опыт работы с принципом наименьшего действия, и для этого я выбрал простую одномерную задачу о движении частицы в некотором поле. Тогда принцип наименьшего действия будет выглядеть так:
Поэтому я разбиваю время на несколько точек и пытаюсь минимизировать сумму:
Но я получаю странные результаты: во-первых, если я не налагаю ограничений на систему, сумма оказывается неограниченной снизу. Что ж, это понятно, ведь может быть несколько решений, соответствующих разным начальным/граничным условиям. Хорошо, я выбираю некоторые значения для и как ограничения. Но даже сумма оказывается неограниченной. Ну, тогда я решил уменьшить возможный диапазон , и сумму, наконец, можно минимизировать...
Но в результате получается полная ерунда. Вот результат для , , , :
Позиции
Скорости
Здесь скорости, похоже, не отражают изменения позиций.
Что мне здесь не хватает? Должен ли я добавить некоторые другие ограничения, или я сделал какую-то простую ошибку?
Как сказано в этом ответе , скорость и положение не изменяются независимо. Действительно, при выводе уравнений Эйлера-Лагранжа мы явно используем тот факт, что .
Итак, когда я добавляю ограничение , указав и остается единственной дополнительной вещью, которая сойдется к решению. Например, установка , , и , Я получил:
Позиции:
Скорости:
Здесь последняя точка скорости неверна, но это артефакт ограничения: я использовал правую конечно-разностную производную, которую нельзя сделать для . Это можно исправить, выбрав другую разностную схему, но для целей этого ответа это неважная деталь реализации.
Что более важно, так это то, что если мы выберем в этом примере действие кажется неограниченным снизу даже при правильных ограничениях. Я считаю, что это уже не проблема реализации, а скорее результат того факта, что действие просто должно быть стационарным, но не минимальным, поэтому минимизация не является достаточно хорошей процедурой для получения истинной траектории.
адипы
Руслан
Qмеханик
Руслан