Численные методы интегрирования уравнений движения

Содержание
  1. Интегрирование уравнений движения
  2. Интегрирование уравнений движения
  3. Численное интегрирование
  4. Явный метод Эйлера
  5. Почему явный метод Эйлера не (всегда) так уж хорош
  6. Симплектический метод Эйлера
  7. Существует множество других методов интегрирования
  8. Реализация RK4
  9. Сравнение симплектического метода Эйлера и RK4
  10. Заключение
  11. Численные методы интегрирования уравнений движения
  12. Интегрирование дифференциальных уравнений прямолинейного движения материальной точки
  13. Краткое изложение результатов
  14. Сила, зависящая от времени
  15. Сила, зависящая от скорости
  16. Сила, зависящая от перемещения
  17. Дифференциальное уравнение движения точки
  18. Интегрирование уравнения движения с силой, зависящей от времени
  19. Постоянная сила
  20. Равномерное движение
  21. Интегрирование уравнения движения с силой, зависящей от скорости
  22. Решение уравнения, определяя vx(t)
  23. Решение уравнения, определяя vx(x)
  24. Интегрирование уравнения движения с силой, зависящей от перемещения
  25. Приложение к движению в пространстве
  26. Сила в пространстве, зависящая от времени
  27. Силы, приводящие к разделению переменных
  28. 💡 Видео

Видео:ЧК МИФ 1 2 03 07 L3 Численное интегрирование уравнений движенияСкачать

ЧК МИФ 1 2 03 07 L3  Численное интегрирование  уравнений движения

Интегрирование уравнений движения

Численные методы интегрирования уравнений движения

Симуляция физики делает небольшие предсказания на основании законов физики. Эти предсказания на самом деле достаточно просты, что-то вроде «если объект вот здесь и он движется с такой скоростью в этом направлении, то за краткий промежуток времени он окажется вот тут». Мы создаём такие предсказания с помощью математической техники под названием интегрирование.

Темой этой статьи как раз и будет реализация такого интегрирования.

Видео:3.2 Численное интегрирование (лекция)Скачать

3.2 Численное интегрирование (лекция)

Интегрирование уравнений движения

Вы можете помнить из курса старшей школы или вуза, что сила равна произведению массы на ускорение.

Численные методы интегрирования уравнений движения

Преобразуем это уравнение и увидим, что ускорение равно силе, делённой на массу. Это соответствует нашим интуитивным ожиданиям, потому что тяжёлые объекты труднее бросать.

Численные методы интегрирования уравнений движения

Ускорение — это темп изменения скорости от времени:

Численные методы интегрирования уравнений движения

Аналогично, скорость — это темп изменения позиции от времени:

Численные методы интегрирования уравнений движения

Это значит, что если мы знаем текущие позицию и скорость объекта, а также приложенные к нему силы, то сможем проинтегрировать, чтобы найти его позицию и скорость в определённый момент времени.

Видео:18+ Математика без Ху!ни. Дифференциальные уравнения.Скачать

18+ Математика без Ху!ни. Дифференциальные уравнения.

Численное интегрирование

Если вы не изучали дифференциальные уравнения в вузе, то можете вздохнуть спокойно — вы почти в такой же ситуации, что и те, кто их изучал, потому что мы не будем решать дифференциальные уравнения аналитически. Вместо этого мы будем искать решение численным интегрированием.

Вот как работает численное интегрирование: во-первых, начнём с исходной позиции и скорости, затем сделаем небольшой шаг вперёд, чтобы найти скорость и позицию в будущем. Затем повторим это, двигаясь вперёд небольшими шагами, используя результат предыдущих вычислений как исходную точку следующих.

Но как нам найти изменение скорости и позиции на каждом шаге?

Ответ лежит в уравнениях движения.

Давайте назовём наше текущее время t, а шаг времени dt или «delta time».

Теперь мы можем представить уравнения движения в понятном всем виде:

Интуитивно это понятно: если вы находитесь в автомобиле, движущемся со скоростью 60 км/ч, то за один час вы проедете 60 км. Аналогично, автомобиль, ускоряющийся на 10 км/ч в секунду, через 10 секунд будет двигаться на 100 км/ч быстрее.

Разумеется, эта логика сохраняется, только когда ускорение и скорость постоянны. Но даже если они меняются, то это для начала вполне неплохая аппроксимация.

Давайте представим это в коде. Начнём с стационарного объекта массой один килограмм и приложим к нему постоянную силу в 10 кН (килоньютонов) и сделаем шаг вперёд, принимая, что один временной шаг равен одной секунде:

Вот каким будет результат:

Как вы видите, на каждом шаге мы знаем и позицию, и скорость объекта. Это и есть численное интегрирование.

Видео:Алгоритмы. Численное интегрированиеСкачать

Алгоритмы. Численное интегрирование

Явный метод Эйлера

Вид интегрирования, который мы только что использовали, называется явным методом Эйлера.

Он назван в честь швейцарского математика Леонарда Эйлера, впервые открывшего эту технику.

Интегрирование Эйлера — это простейшая техника численного интегрирования. Она точна на 100% только когда темп изменений в течение шага времени постоянен.

Поскольку в примере выше ускорение постоянно, интегрирование скорости выполняется без ошибок. Однако мы ещё интегрируем и скорость для получения позиции, а скорость увеличивается из-за ускорения. Это значит, что в проинтегрированной позиции возникает ошибка.

Но насколько велика эта ошибка? Давайте выясним!

Существует аналитическое решение движения объекта при постоянном ускорении. Мы можем использовать его, чтобы сравнить численно интегрированную позицию с точным результатом:

Через 10 секунд объект должен был переместиться на 500 метров, но явным метод Эйлера даёт нам результат 450. То есть погрешность в целых 50 метров всего за 10 секунд!

Кажется, что это невероятно плохо, но в играх обычно для шага физики берётся не такой большой временной интервал. На самом деле, физика обычно вычисляется с частотой, примерно равной частоте кадров дисплея.

Если задать шаг dt = 1 ⁄100, то мы получим гораздо лучший результат:

Как вы видите, это достаточно хороший результат, определённо вполне достаточный для игры.

Видео:Численное интегрирование методом ЭйлераСкачать

Численное интегрирование методом Эйлера

Почему явный метод Эйлера не (всегда) так уж хорош

С достаточно малым шагом времени явный метод Эйлера при постоянном ускорении даёт вполне достойные результаты, но что будет, если ускорение не постоянно?

Хорошим примером переменного ускорения является система пружинного амортизатора.

В этой системе масса присоединена к пружине, и её движение гасится чем-то вроде трения. Существует сила, пропорциональная расстоянию до объекта, которая притягивает его к исходной точке, и сила, пропорциональная скорости объекта, но направленная в противоположном направлении, которая замедляет его.

Здесь ускорение в течение шага времени совершенно точно изменяется, но эта постоянно меняющаяся функция является сочетанием позиции и скорости, которые сами постоянно изменяются за шаг времени.

Вот пример гармонического осциллятора с затуханием. Это хорошо изученная задача, и для него существует аналитическое решение, которое можно использовать для проверки результата численного интегрирования.

Давайте начнём со слабозатухающей системы, в которой масса колеблется рядом с исходной точкой, постепенно замедляясь.

Вот входные параметры системы масса-пружина:

  • Масса: 1 килограмм
  • Исходная позиция: 1000 метров от исходной точки
  • Коэффициент упругости по закону Гука: k = 15
  • Коэффициент затухания по закону Гука: b = 0.1

И вот график точного решения:

Численные методы интегрирования уравнений движения

Если для интегрирования этой системы мы применим явный метод Эйлера, то получим следующий результа, который я отмасштабировал по вертикали:

Численные методы интегрирования уравнений движения

Вместо затухания и сближения с исходной точкой, система со временем набирает энергию!

При интегрировании явным методом Эйлера и с dt= 1 ⁄100 такая система нестабильна.

К сожалению, поскольку мы уже интегрируем с малым шагом времени, то не имеем практичных способов повышения точности. Даже если мы уменьшим шаг времени, то всегда будет коэффициент упругости k, при котором мы получим такое поведение.

Видео:Численное интегрирование: Методы Левых Правых прямоугольников, Трапеций, Симпсона c++Скачать

Численное интегрирование: Методы Левых Правых прямоугольников, Трапеций, Симпсона c++

Симплектический метод Эйлера

Мы можем рассмотреть ещё один интегратор — симплектический метод Эйлера.

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

Переход от явного к симплектическому методу Эйлера заключается только в замене:

Использование симплектического интегратора Эйлера при dt = 1 ⁄100 для системы пружинного амортизатора даёт стабильный результат, очень близкий к точному решению:

Численные методы интегрирования уравнений движения

Даже несмотря на то, что симплектический метод Эйлера имеет ту же степень точности, что и явный метод (степень 1), при интегрировании уравнений движения мы получаем намного лучший результат, потому что оно является симплектическим.

Видео:Метод ЭйлераСкачать

Метод Эйлера

Существует множество других методов интегрирования

И теперь нечто совершенно другое.

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

Интегрирование Верле обеспечивает бо́льшую точность, чем неявный метод Эйлера, и требует меньше памяти при симуляции большого числа частиц. Это интегратор второй степени, который тоже является симплектическим.

Существует целое семейство интеграторов, называемое методами Рунге-Кутты. На самом деле, явный метод Эйлера считается частью этого семейства, но в него входят интеграторы и более высокого порядка, самым классическим из которых является метод Рунге-Кутты порядка 4 (Runge Kutta order 4) или просто RK4.

Это семейство интеграторов названо в честь открывших их немецких физиков: Карла Рунге и Мартина Кутты.

RK4 — это интегратор четвёртого порядка, то есть накапливаемая ошибка имеет порядок четвёртой производной. Это делает метод очень точным, гораздо более точным, чем явный и неявный методы Эйлера, имеющие только первый порядок.

Но хотя он более точен, нельзя сказать, что RK4 автоматически становится «лучшим» интегратором, или даже что он лучше симплектического метода Эйлера. Всё гораздо сложнее. Тем не менее, это довольно интересный интегратор и его стоит изучить.

Видео:Метод прямоугольников для нахождения определенного интегралаСкачать

Метод прямоугольников для нахождения определенного интеграла

Реализация RK4

Существует уже много объяснений математики, используемой в RK4. Например: здесь, здесь и здесь. Я настоятельно рекомендую изучить его выведение и понять, как и почему он работает на математическом уровне. Но я понимаю, что целевая аудитория этой статьи — программисты, а не математики, поэтому мы здесь будем рассматривать только реализацию. Так что давайте приступим.

Прежде чем приступить, давайте зададим состояние объекта как struct в C++, чтобы можно было удобно хранить позицию и скорость в одном месте:

Также нам нужна структура для хранения производных значений состояний:

Теперь нам нужна функция для вычисления состояния физики из t в t+dt с помощью одного набора производных, а после этого для вычисления производных в новом состоянии:

Функция ускорения управляет всей симуляцией. Давайте используем её в системе пружинного амортизатора и вернём ускорение для единичной массы:

То, что нужно здесь записать, разумеется, зависит от симуляции, но необходимо структурировать симуляцию таким образом, чтобы можно было вычислять ускорение внутри этого метода для заданных состояния и времени, в противном случае он не подойдёт для интегратора RK4.

Наконец, мы получаем саму процедуру интегрирования:

Интегратор RK4 делает выборку производной в четырёх точках, чтобы определить кривизну. Заметьте, как производная a используется при вычислении b, b используется при вычислении c, и c для d. Эта передача текущей производной в вычисление следующей и даёт интегратору RK4 его точность.

Важно то, что каждая из этих производных a, b, c и d будет разной, когда темп изменения в этих величинах является функцией времени или функцией самого состояния. Например, в нашей системе пружинного амортизатора ускорение является функцией текущей позиции и скорости, которые меняются в шаге времени.

После вычисления четырёх производных наилучшая общая производная вычисляется как взвешенная сумма, полученная из разложения в ряд Тейлора. Эта комбинированная производная используется для перемещения позиции и скорости вперёд во времени, точно так же, как мы делали это в явном интеграторе Эйлера.

Видео:Метод левых, правых и средних прямоугольниковСкачать

Метод левых, правых и  средних прямоугольников

Сравнение симплектического метода Эйлера и RK4

Давайте подвергнем проверке интегратор RK4.

Очевидно, что поскольку он является интегратором более высокого порядка (четвёртый против первого) он наглядно будет более точен, чем симплектический метод Эйлера, правда?

Численные методы интегрирования уравнений движения

Неправда. Оба интегратора так близки к точному результату, что при таком масштабе почти невозможно найти между ними разницу. Оба интегратора стабильны и очень хорошо повторяют точное решение при dt= 1 ⁄100.

Численные методы интегрирования уравнений движения

При увеличении видно, что RK4 действительно более точен, чем симплектический метод Эйлера, но стоит ли эта точность сложности и лишнего времени выполнения RK4? Трудно судить.

Давайте постараемся и посмотрим, сможем ли мы найти значительное различие между двумя интеграторами. К сожалению, мы не сможем долго наблюдать за этой системой, потому что она быстро затухает до нуля, поэтому давайте перейдём к простому гармоническому осциллятору, который колеблется бесконечно и без затуханий.

Вот точный результат, к которому мы будем стремиться:

Численные методы интегрирования уравнений движения

Чтобы усложнить интеграторам задачу, давайте увеличим шаг времени до 0,1 секунды.

Теперь запустим интеграторы на 90 секунд и увеличим масштаб:

Численные методы интегрирования уравнений движения

Через 90 секунд симплектический метод Эйлера (оранжевая кривая) сдвинулся по фазе относительно точного решения, потому что его частота немного отличалась, в то время как зелёная кривая RK4 соответствует частоте, но теряет энергию!

Мы чётко можем это заметить, увеличив шаг времени до 0,25 секунды.

RK4 сохраняет верную частоту, но теряет энергию:

Численные методы интегрирования уравнений движения

А симплектический метод Эйлера в среднем намного лучше сохраняет энергию:

Численные методы интегрирования уравнений движения

Но от сдвигается от фазы. Какой интересный результат! Как вы видите, если RK4 имеет более высокий порядок точности, то он не обязательно «лучше». В этом вопросе есть множество нюансов.

Видео:Метод Ньютона (метод касательных) Пример РешенияСкачать

Метод Ньютона (метод касательных) Пример Решения

Заключение

Мы реализовали три различных интегратора и сравнили результаты.

  1. Явный метод Эйлера
  2. Симплектический метод Эйлера
  3. Метод Рунге-Кутты порядка 4 (RK4)

Так какой же интегратор стоит использовать в игре?

Я рекомендую симплектический метод Эйлера. Он «дёшев» и прост в реализации, гораздо стабильнее явного метода Эйлера и в среднем стремится к сохранению энергии даже при близких к предельным условиях.

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

И наконец, если вы всё ещё пишете в игре такое:

То потратьте секунду и замените эти строки на:

Видео:Д1 Дифференциальные уравнения движения материальной точкиСкачать

Д1 Дифференциальные уравнения движения материальной точки

Численные методы интегрирования уравнений движения

последовательностью точек x0,x1. в соответствующие моменты времени t0,t1. Значения точек должны удоволетворять приближенному равенству

Численные методы интегрирования уравнений движения

Если специально не оговорено иное, то предполагается, что моменты времени выбираются через равные интервалы с величиной шага h>0, то есть

Численные методы интегрирования уравнений движения

Аппроксимируем производную в момент времени tk соотношением

Численные методы интегрирования уравнений движения

При такой аппроксимации уравнение (1) примет вид:

Формула (2) известна как прямой метод Эйлера.

На рис.1(a) показана графическая интерпретация прямого метода Эйлера. На (k+1)-ом шаге векторное поле предполагается (локально) постоянным со значением f(xk,tk).

Численные методы интегрирования уравнений движения

Рис.1 Иллюстрация алгоритмов (а) прямого метода Эйлера, (b) обратного метода Эйлера

Меньшее значение величины шага h в итоге дает точки аппроксимации чаще и, как демонстрирует рис.2, приводит к большей точности интегрирования, что приобретает математический смысл, поскольку (2) стремится к (1) при h->0.
Численные методы интегрирования уравнений движения

Рис.2 Влияние величины шага. Уравнение dx/dt=-6x+5t -t интегрируется от x=1 прямым методом Эйлера при h=0.3 (а) и при h=0.1 (b). Точное решение показано штриховой линией.

Обратный метод Эйлера подобен прямому, но есть одно отличие в аппроксимации для производной

Такая аппроксимация дает формулу обратного метода Эйлера:

Численные методы интегрирования уравнений движения

На рис.1(b) показана геометрическая интерпретация обратного метода Эйлера. На (k+1)-ом шаге векторное поле предполагается (локально) постоянным со значением f(xk+1,tk+1).

Обратный метод Эйлера — это пример неявного алгоритма интегрирования , где xk+1 является функцией от самой себя. И напротив, прямой метод Эйлера представляет собой явный алгоритм. В неявных алгоритмах для определения xk+1 требуются дополнительные вычисления, но они по сравнению с аналогичными прямыми алгоритмами более устойчивы и дают более высокую точность вычислений (см. рис.3). Возможно это обусловлено наличием члена xk+1 в правой части формулы, что может рассматриваться как вид обратной связи.

Численные методы интегрирования уравнений движения

Рис.3 Та же система, что и на рис.2 проинтегрирована от x0=1.0 с h=0.3 (a) прямым методом Эйлера, (b) обратным методом Эйлера. Точное решение показано штриховой линией.

Трапецеидальный алгоритм имеет вид:

Численные методы интегрирования уравнений движения

Имеется целое семейство уравнений Рунге-Кутта второго порядка. Мы рассмотрим модифицированный алгоритм Эйлера-Коши, заданный соотношением:

Численные методы интегрирования уравнений движения

Из этой формулы следует, что модифицированный алгоритм Эйлера-Коши включает два этапа. На первом этапе с помощью прямого метода Эйлера происходит перемещение на пол шага вперед к моменту времени (tk+h/2):

Численные методы интегрирования уравнений движения

На втором этапе это промежуточное значение используется для аппроксимации векторного поля с помощью итераций Эйлера прямого типа:

Численные методы интегрирования уравнений движения

Как и в случае алгоритма второго порядка метод Рунге-Кутта четвертого порядка относится к явным алгоритмам. Он использует промежуточные моменты времени для для вычисления состояния в момент времени tk+1. Следующие формулы определяют алгоритм Рунге-Кутта четвертого порядка:

Численные методы интегрирования уравнений движения

Для определенных выше алгоритмов на каждом шаге требуется только одна начальная точка xk. Такие алгоритмы называются одношаговыми. Одношаговые алгоритмы высокого порядка имеют высокую точность, но они не эффективны, если велики затраты на вычисление f. Например, алгоритм Рунге-Кутта четвертого порядка требует на шаге четыре значения f. Кроме того, на текущем шаге не выполняются оценки функций с целью их использования на последующих шагах.
В отличие от одношаговых алгоритмов, многошаговые алгоритмы повторно используют предыдущую информацию о траектории. В m-шаговом алгоритме для определения xk+1 используют m предыдущих точек xk, xk-1. xk-m+1 и значения f в этих точках. Общая формула m-шагового алгоритма имеет вид

Численные методы интегрирования уравнений движения

Локальная ошибка определяется как ошибка на шаге алгоритма:

Численные методы интегрирования уравнений движения

Для m-шаговых алгоритмов предполагается, что предыдущие m точек xk-i при i=0. m-1 являются точно заданными, т.е.

Численные методы интегрирования уравнений движения

Ошибка усечения — это локальная ошибка, которая получилась бы в результате выполнения алгоритма на компьютере с бесконечной точностью.
Другими словами, подразумевается, что эта локальная ошибка возникает помимо ошибки округления. Также важно помнить, что для m-шаговых алгоритмов предыдущие m точек xk. xk-m+1 предполагаются точно заданными.
Ошибка усечения берет свое название от алгоритмов, основанных на рядах Тейлора (например, Рунге-Кутта). Эти алгоритмы были бы точными, если бы использовались полные (бесконечные) ряды. Ошибка возникает при усечении ряда до конечного числа членов.
Ошибка усечения зависит только от алгоритма. Она не зависит от используемого компьютера и, следовательно, может быть проанализирована. Для алгоритмов Рунге-Кутта K-го порядка, при подходящих условиях, локальная ошибка усечения представляет собой

Численные методы интегрирования уравнений движения

где «альфа» зависит от K, f и xk, но не зависит от h. Для многошагового алгоритма K-го порядка локальная ошибка усечения имеет вид

Численные методы интегрирования уравнений движения

Глобальнае ошибка округления — это простое накопление локальных ошибок округления. Если локальная ошибка составляет «эпсилон», то ошибка округления на единичном интервале будет

Численные методы интегрирования уравнений движения

Подобно ошибке округления, локальная ошибка усечения также накапливается с каждым шагом. Для одношаговых алгоритмов K-го порядка локальная ошибка усечения составляет

Численные методы интегрирования уравнений движения

Если пренебречь зависимостью ak от xk, то на единичном интервале времени ошибка усечения будет:

Видео:РГР Д1 Обратная задача динамикиСкачать

РГР Д1 Обратная задача динамики

Интегрирование дифференциальных уравнений прямолинейного движения материальной точки

Численные методы интегрирования уравнений движения

Видео:Численное решение задачи Коши методом ЭйлераСкачать

Численное решение задачи Коши методом Эйлера

Краткое изложение результатов

Здесь мы кратко изложим основные результаты, полученные при интегрировании дифференциальных уравнений прямолинейного движения материальной точки. Далее следует их подробное изложение.

Сила, зависящая от времени

Если на материальную точку действует сила, зависящая от времени , то дифференциальное уравнение прямолинейного движения вдоль оси Ox имеет вид:
.
Вводим ускорение и интегрируем это уравнение.
.
Здесь и далее A и B – произвольные точки на оси Ox . Заменим . Получаем закон изменения скорости от времени:
.
Интегрируя уравнение , получаем закон движения точки :
;
.

Сила, зависящая от скорости

Пусть на точку действует сила, зависящая от скорости . Составляем дифференциальное уравнение движения и интегрируем его:
.
Последнее уравнение дает в неявном виде зависимость . Решаем его. После чего интегрируем уравнение , как описано выше.

Есть второй способ интегрирования уравнения движения в случае зависимости силы от скорости. Для этого переходим от переменных x и t к переменным и x . Считаем, что скорость является функцией от координаты x :
;
.
Последнее уравнение дает в неявном виде зависимость . Далее интегрируем уравнение :
.
Это уравнение дает в неявном виде закон движения точки .

Сила, зависящая от перемещения

Пусть на точку действует сила, зависящая от перемещения . Составляем уравнение движения, переходим от переменных x и t к переменным и x , и интегрируем полученное дифференциальное уравнение:
;
;
.
Это уравнение представляет собой закон сохранения механической энергии для прямолинейного движения. Из него находим зависимость скорости от перемещения . После чего интегрируем уравнение , как это описано выше.

Видео:03 Одношаговые явные методы численного интегрированияСкачать

03 Одношаговые явные методы численного интегрирования

Дифференциальное уравнение движения точки

Рассмотрим прямолинейное движение материальной точки, находящейся под действием постоянных и переменных сил. Направим ось Ox системы координат вдоль линии движения точки. Пусть на нее действуют n сил, проекции которых на ось Ox мы обозначим как . Положение точки, при прямолинейном движении, однозначно определяется ее координатой x . Нам нужно определить закон движения точки , то есть закон изменения ее координаты со временем.

Уравнение движения точки определяется вторым законом Ньютона, который в случае прямолинейного движения имеет вид:
(1) .

Вместо того, чтобы в каждом уравнении выписывать все n сил, введем их равнодействующую, проекция которой, на ось x равна сумме проекций всех сил на эту ось:
.
Тогда задача сведется к движению материальной точки под действием одной силы . При этом уравнение движения примет наиболее простой вид:
(2) .
В дальнейшем, проекцию равнодействующей мы будем называть просто силой, действующей на точку.

Сила может быть как постоянной, так и зависеть от времени t , координаты x и от скорости . К сожалению, если зависит от всех перечисленных факторов, то не всегда возможно решить уравнение (2) аналитически. Поэтому мы рассмотрим те случаи, когда возможно получить аналитическое решение этого уравнения. Заметим, что если сила является постоянной, то уравнение (2) можно решать любыми, приводимыми ниже, способами.

Почему мы обозначаем в виде проекции силы на ось x , хотя рассматриваем только движение вдоль одной оси? – Потому что под обозначением силы R в виде одной буквы, часто подразумевается ее абсолютная величина: . Она имеет неотрицательные значения: . А когда мы пишем силу как проекцию , то подразумеваем, что эта величина может быть как положительной (если сила направлена вдоль оси x ), так и отрицательной (когда она направлена противоположно оси x ). В теоретической механике, в подобных случаях, иногда также говорят, что есть алгебраическое значение силы. Это относится не только к силе, ни и ко всем другим, рассматриваемым далее, векторным величинам.

Видео:Сеточные методы решения дифференциальных уравнений в частных производных.Скачать

Сеточные методы решения дифференциальных уравнений в частных производных.

Интегрирование уравнения движения с силой, зависящей от времени

Вначале рассмотрим случай, когда задан закон изменения силы со временем: . Перепишем уравнение (2), явно указав эту зависимость:
(t1) .

В этом уравнении время t является независимой переменной; координата x – зависимой переменной; – это вторая производная координаты по времени: . Масса m – это постоянная, то есть заданное число. С математической точки зрения, уравнение (t1) есть дифференциальное уравнение второго порядка, не содержащую зависимую переменную x в явном виде.

Решение такого уравнения выполняется с помощью подстановки
.
Тогда
.
Подставляя в (t1), мы получаем дифференциальное уравнение первого порядка:
(t2) .
Выполняя подстановку, мы ввели новую переменную , равную производной координаты x по времени t . Эта производная является проекцией скорости точки на ось Ox . Таким образом, процесс решения разбивается на две части. Сначала мы, решаем уравнение (t2), и находим закон изменения скорости со временем: . Затем, используя уравнение , находим закон изменения координаты .

Упростим уравнение (t2), разделив его на массу m :
(t3) ,
где – ускорение точки. Поскольку зависимость силы от времени известна, то и зависимость ускорения от времени также известна.

Уравнение (t3) является дифференциальным уравнением первого порядка с разделяющимися переменными. Разделяем переменные и интегрируем.
;
(t4) ;
(t5) .
Здесь – постоянная интегрирования. Чтобы ее определить, нужно знать значение скорости в какой-либо момент времени . Если мы сможем выразить интеграл через известные функции, то подставив в (t5) значения времени и значение скорости в этот момент, мы сможем определить постоянную .

Для простых задач, формула (t5) вполне удобна. Но если интеграл не выражается через известные функции, то выполнить численное интегрирование по этой формуле нельзя. Поэтому найдем закон изменения скорости со временем в более удобном виде.

Численные методы интегрирования уравнений движения
Прямолинейное движение точки M под действием силы Rx.

Пусть нам известно, что в момент времени , точка M находилась в положении A, имела координату и скорость . Рассмотрим произвольный момент времени . Пусть в этот момент времени точка M находится в положении B, с координатой и скоростью . Величины и нам пока не известны. Наша задача их найти.

Перепишем (t4) явно указав, что есть функция от t :
(t6) .
Интегрируем (t6) от момента времени до :
.
Слева – интеграл от полного дифференциала. Поэтому он интегрируется элементарно:
.
Здесь мы учли, что . В результате получаем:
;
.

Этот результат можно получить и несколько иначе, если в интеграле сразу перейти к переменной . Тогда пределы интегрирования станут и . В результате получим тоже самое:
.

Итак, мы нашли значение скорости в произвольный момент времени :
(t7) .
Заменим обозначение момента времени на t . В результате получим закон изменения скорости со временем t :
(t8) .

Интеграл справа записан не вполне корректно, хотя так часто пишут. Рассмотрим пример определенного интеграла . Он зависит от пределов интегрирования a и b , но не зависит от переменной интегрирования t . Можно сказать, что переменная t принимает заданные значения из отрезка , которые применяются только для вычисления интеграла. Поэтому для переменной интегрирования t можно использовать любое обозначение. Например, можно использовать переменную . Тогда .

В (t8) мы использовали одно и то же обозначение, как для верхнего предела интеграла, так и для переменной интегрирования. Это может привести к путанице. Поэтому используем для переменной интегрирования любое другое, не используемое обозначение, например . Тогда формула (t8) примет следующий вид:
(t9) .

Теперь найдем закон изменения координаты x от времени. Интегрируем уравнение
.
Разделяем переменные:
(t10) .
Здесь мы также можем выполнить интегрирование от A до B, но мы продемонстрируем другой способ, как получить результат в удобном виде, применяя неопределенный интеграл. Поскольку неопределенный интеграл определен с точностью до постоянной, то запишем его с нижним пределом интегрирования . Интегрируем (t10):
(t11) .
Найдем значение постоянной интегрирования . Для этого подставим сюда :
.
Далее учитываем, что значение координаты точки в момент времени нам известно: . Также учитываем, что интеграл в правой части имеет равные пределы интегрирования и поэтому равен нулю. В результате получаем:
.
Отсюда находим значение постоянной интегрирования: . В результате получаем закон движения точки:
(t12) .

Итак, мы нашли, что если на точку действует сила , то для определения ее закона движения, нужно сначала определить закон изменения скорости со временем:
(t7) .
А затем определить закон движения:
(t12) .
При этом мы полагаем, что нам известны скорость и координата в некоторый момент времени . Если бы мы проводили интегрирование через неопределенные интегралы в общем виде, то и были бы постоянными интегрирования и .

Постоянная сила

Разберем случай, когда действующая на точку сила имеет постоянное значение: . В этом случае ускорение также постоянно: . Интегрируем, используя таблицу неопределенных интегралов. Из (t7) находим закон изменения скорости со временем:
;
(t14) .
Мы видим, что скорость линейно изменяется со временем.

Подставляем в (t12) и находим закон движения точки:

;
(t15) .

Если в начальный момент времени , скорость точки была , а координата , то . Из (t14) и (t15) получаем:
;
.

Равномерное движение

Если проекция силы на ось Ox равна нулю: , то ускорение также равно нулю: . В этом случае из (t14) находим, что скорость точки постоянна:
.
Из (t15) находим, что координата линейно меняется со временем:
.

Если в начальный момент времени , скорость точки была , а координата , то ;
;
.

Видео:Откуда появляются дифференциальные уравнения и как их решатьСкачать

Откуда появляются дифференциальные уравнения и как их решать

Интегрирование уравнения движения с силой, зависящей от скорости

Разберем случай прямолинейного движения материальной точки, когда действующая сила зависит от скорости . Такие задачи встречаются при движении в жидкой или газообразной среде, когда на точку помимо постоянных сил, действует сила трения, зависящая от скорости. В этом случае, уравнение движения имеет вид:
(v1) .
Разделим обе части уравнения на массу m :
(v2) ,
где – ускорение точки. Теперь нам известна зависимость ускорения точки от ее скорости. Уравнение (v2) не содержит в явном виде как зависимую переменную x , так и независимую переменную t . Поэтому его можно решать двумя способами.

Решение уравнения, определяя vx(t)

Применим к уравнению (v2) метод решения дифференциального уравнения, не содержащего зависимую переменную в явном виде. Для этого, как и в предыдущем случае, делаем подстановку
.
Тогда
.
Подставляя в (v2), мы получаем дифференциальное уравнение первого порядка:
(v3) .

Пусть, как и в предыдущем случае, в момент времени , точка находилась в положении A, имела координату и скорость . И пусть в произвольный момент времени , точка находится в положении B с координатой и скоростью . Нам нужно найти величины и .

Разделяем переменные.
;
.
Перепишем это уравнение, указав, что скорость является функцией от времени:
.
Интегрируем по времени от до :
.
В левой части сделаем замену переменной. От переменной t перейдем к переменной . При этом изменим пределы интегрирования учитывая, что при ; и при :
(v4) .

Заменим обозначения переменных , и переменной интегрирования . Подставим в (v4):
(v5) .
Это уравнение, в неявном виде, дает закон изменения скорости от времени t . Вычислив интеграл, и выполнив преобразование, мы можем выразить через t : .

Далее, по формуле (t12) ⇑ определяем закон движения материальной точки:
(t12) .

Решение уравнения, определяя vx(x)

Выпишем уравнение (v2) еще раз.
(v2) .
Для применения этого метода, в качестве независимой переменной возьмем координату x , а в качестве зависимой – скорость . То есть считаем, что скорость является функцией от координаты: .

Выразим через переменные x и вторую производную координаты по времени:
.
Подставим в (v2) и разделяем переменные:
;
.
В левой части в явном виде запишем как функцию от x , и интегрируем по x от положения A до B:
;
.
В интеграле слева переходим от переменной x к :
(v6) .

Переобозначим переменные:
(v7) .
Это уравнение дает в неявном виде зависимость скорости от координаты:
.
Подставив сюда , получим для x дифференциальное уравнение первого порядка. Решаем его методом разделения переменных:
;
.
Интегрируем от положения A до B:
;
.
Заменим переменные:
(v8) .

Уравнение (v8) дает в неявном виде закон движения материальной точки .

Видео:2. Дифференциальные уравнения с разделяющимися переменными. Часть 1.Скачать

2. Дифференциальные уравнения с разделяющимися переменными. Часть 1.

Интегрирование уравнения движения с силой, зависящей от перемещения

Наконец рассмотрим случай прямолинейного движения материальной точки, когда действующая сила зависит от перемещения x . Такие задачи встречаются при движении в потенциальных полях – в гравитационных или электрических. Сюда также относится движение груза, прикрепленного к упругой пружине.

Выписываем уравнение движения для этого случая:
(x1) .
Это дифференциальное уравнение второго порядка. Оно не содержит независимую переменную t в явном виде. Также как и в предыдущем случае, применяем метод решения дифференциального уравнения, не содержащего независимую переменную в явном виде.

Перейдем к новым переменным. В качестве независимой переменной возьмем координату x , а в качестве зависимой – скорость . Считаем, что скорость является функцией от координаты: .

Выразим вторую производную координаты по времени через переменные x и :
;
Подставим в (x1) и разделяем переменные:
(x2) ;
.
Интегрируем по x от A до B:
(x3) .
Вычисляем интеграл, используя таблицу неопределенных интегралов:
;
.
Подставляем в (x3):
(x4) . Нетрудно видеть, что слева стоит изменение кинетической энергии материальной точки. Справа – работа, которую совершает сила при перемещении материальной точки из A в B. Само уравнение (x4) представляет собой теорему об изменении кинетической энергии точки для прямолинейного движения.

Вернемся снова к уравнению (x2).
(x2) .
Его можно проинтегрировать и другим способом.

Для этого представим правую часть в виде производной по координате:
,
где – координата произвольной заранее выбранной точки C .
Левую часть также представим в виде производной по координате:
.
Тогда (x2) можно записать в виде:
.

Поскольку производная по x от выражения в скобках равна нулю, то само выражение является постоянной, не зависящей от x величиной:
.
Такая форма записи, когда некоторая функция от переменных приравнивается постоянной, называется интегралом дифференциального уравнения. Перепишем его в следующем виде:
(x5) .
Здесь – кинетическая энергия точки; – потенциальная энергия, отсчитываемая от, произвольным образом выбранной, точки C ; E – постоянная интегрирования, которая в данном случае имеет определенный физический смысл – это полная механическая энергия материальной точки. Поэтому мы ее обозначили привычной для этого случая буквой E . Само уравнение (x5) представляет собой закон сохранения механической энергии. С математической точки зрения, энергия E является интегралом дифференциального уравнения, или, как говорят в механике, интегралом движения точки. То есть величиной, сохраняющей при движении постоянное значение.

Выше мы пришли к выводу, что постоянная интегрирования E не зависит от координаты x , но ничего не сказали о ее зависимости от времени. Однако, для одномерного движения, со временем может изменяться только одна координата x . Поскольку постоянная E от нее не зависит, то она не зависит также и от времени t . Поэтому полная механическая энергия сохраняет постоянное значение и в различные моменты времени.

Нетрудно видеть, что формулировки (x4) ⇑ и (x5) ⇑ эквивалентны. Для доказательства, приравняем механическую энергию точки для двух положений A и B:
;

.
Здесь мы разбили интеграл от до на два интеграла – от до ; и от до . Интегралы от до сократились.

Найдем зависимость скорости точки от координаты. При этом мы считаем, что скорость точки в положении A нам известна. Рассмотрим два положения: A и B. Из (x4) ⇑ имеем:
,
где – работа, которая производит сила при перемещении точки из A в B. Наконец, заменим на x , и на . В результате получим искомую зависимость:
(x6) ,
где – работа, которая производит сила при перемещении материальной точки из A в точку с координатой x . Скорость определена с точностью до знака (плюс или минус). Знак нужно выбирать из начальных условий и исследования движения. Если в точке , то при достаточно малых значениях . Далее точка может остановиться и начать движение в обратную сторону. Тогда нужно выбрать знак минус, чтобы скорость стала отрицательной.

Теперь, зная зависимость , находим закон движения материальной точки. Для этого интегрируем уравнение:
;
;
;
.
Это уравнение дает в неявном виде зависимость координаты x от времени t .

Видео:Численные методы решения ДУ: метод ЭйлераСкачать

Численные методы решения ДУ: метод Эйлера

Приложение к движению в пространстве

Приведенные выше результаты могут быть применимы и для некоторых случаев движения материальной точки в двухмерном или трехмерном пространстве.

Пусть нам известно, что в момент времени , материальная точка находилась в точке A, и имела скорость . Выберем трехмерную систему координат Oxyz , и распишем эти начальные условия по компонентам:
При ;
При ;
При .

Сила в пространстве, зависящая от времени

Пусть на материальную точку действует сила, зависящая от времени: . Составим уравнения ее движения:
.

Выпишем уравнение для координаты x с начальными условиями:
; при .
Здесь все необходимые величины известны, и они не зависят от значений других координат. Мы можем найти закон изменения координаты x со временем, применяя интегрирование уравнения движения с силой, зависящей от времени ⇑ для прямолинейного движения.

Выпишем уравнение для координаты y с начальными условиями:
; при .
Здесь также известны все необходимые величины, и они не зависят от значений других координат. Мы также можем найти закон изменения координаты y со временем, применяя интегрирование, как для прямолинейного движения.

Точно также мы можем найти закон изменения координаты z со временем. В этом случае говорят, что переменные разделились. Уравнения движения, составленные для каждой из координат, вместе с начальными условиями, не зависят от значений других координат. Поэтому каждое такое уравнение можно проинтегрировать отдельно. В результате мы получим закон движения материальной точки в трехмерном случае: .

Силы, приводящие к разделению переменных

Пусть теперь на точку действуют три взаимно перпендикулярные силы. И пусть одна из них зависит только от времени; вторая – от проекции скорости на направление силы; третья – от проекции радиус-вектора на направление силы.

Выберем систему координат Oxyz , оси которой направим вдоль направлений действующих сил. Тогда в этой системе координат отличными от нуля будут только три проекции сил: . Составляем уравнения движения:
;
;
.
Мы видим, что и в этом случае переменные разделились. Каждое из этих уравнений зависит только от одной переменной. И мы можем решить его, применяя изложенные выше методы. Все это применимо и к случаю, когда любая из этих сил является постоянной.

И, разумеется, тут могут быть различные вариации, приводящие к разделению переменных. Например, если зависящая от времени сила лежит в плоскости xy , а перпендикулярная ей сила зависит только от координаты z . В этом случае переменные также разделяются.

Автор: Олег Одинцов . Опубликовано: 12-10-2020

💡 Видео

Лекция "Численное интегрирование дифференциальных уравнений" часть 1Скачать

Лекция "Численное интегрирование дифференциальных уравнений" часть 1
Поделиться или сохранить к себе:
Численные методы интегрирования уравнений движения