Астрозадача №6: Уравнение Эйлера — Лагранжа

Лагранжева механика является переформулировкой классической механики, введённой Лагранжем в 1788 году. В лагранжевой механике траектория объекта получается при помощи отыскания пути, соотвествующее наименьшему действию S. Само действие S связано с функцией Лагранжа L. Функция Лагранжа для классической механики вводится в виде разности между кинетической энергией и потенциальной энергией:

T — кинетическая энергия, V — потенциальная энергия.

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

Важным уравнением в формализме Лагранжа, является уравнение Эйлера-Лагранжа:

q — обобщенные координаты (x, y, z), q̇ — обобщённые скорости (vx, vy, vz), ∂ — символ частной производной (при решении данной задачи можно считать за обыкновенный дифференциал d). Это уравнение позволяет получить дифференциальное уравнение, описывающее динамику любой системы.

Рассмотрим следующую систему, состоящую из двух математических маятников, скрепленных друг с другом, следующим образом:

Здесь шарик 1 вращается по окружности радиуса R с угловой скоростью ω, к нему подвешен шарик 2 нитью длиной l, шарик 2 совершает колебательные движения.

Запишем выражения для координат шариков:

Теперь мы можешь записать кинетические и потенциальные энергии для двух шариков

Суммарные энергии будут равны T = T1 +T2, V = V1 +V2. И тогда лагранжиан запишется как:

Теперь, чтобы смоделировать динамику системы, описанную выше, требуется составить уравнение Эйлера-Лагранжа для данного лагранжиана и решить, полученное таким образом дифференциальное уравнение.

Для вычисления производных воспользуйтесь библиотекой sympy (см. файл-справку во вложении), а для решения дифференциального уравнения библиотекой scipy. Результатом задачи должна быть анимация движения системы из двух шариков.