Как продифференцировать уравнение по физике

Как продифференцировать уравнение по физике

Дифференциальные уравнения в физике. Общие понятия

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

(1)

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

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

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

Если функции, входящие в дифференциальное уравнение зависят от одной независимой переменной, то уравнение называется обыкновенным дифференциальным уравнением.

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

Наивысший порядок производных неизвестной функции, входящих в дифференциальное уравнение называется порядком дифференциального уравнения.

Мы будем рассматривать лишь обыкновенные дифференциальные уравнения. При этом, поскольку при описании динамики физических процессов, все величины, характеризующие эти процессы, зависят от времени, то при изложении материала, независимое переменное обозначим через t .

Классическая механика: о диффурах «на пальцах»

Введение

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

Физический смысл

В своей статье про Фильтр Калмана я описал что такое уравнения вида «вход-выход», передаточная функция и операторная форма записи дифференциальных уравнений (см. раздел «Основные понятия» в [2]). Примером части математической модели динамического объекта в операторной форме записи может служить следующее уравнение:
(1)
Это распространенная упрощенная модель динамических систем. Опережая напишу, что модель тела в движке «Farseer» использует урезанный аналог представленной выше модели (динамического звена второго порядка). Ниже представлено описание принятых в ней обозначений.

  • а0, а1, а2 — коэффициенты инерции, демпфирования и жесткости, соответственно.
  • b0, b1 — коэффициенты входного воздействия.
  • s — оператор Лапласса (d/dt).
  • α(s), β(s) — выходная и входная переменные, как функции оператора Лапласса.

Представленное уравнение описывает динамическую систему типа «один вход — один выход» (SISO). Ее можно использовать для описания динамики объекта по одной из его степеней свободы. Как Вам, возможно, известно, у свободного тела есть шесть степеней свободы — три поступательные (линейное движение вдоль трех осей системы координат (СК) ) и три вращательные (повороты вокруг осей СК). Таким образом, полная модель физического тела будет описываться шестью такими уравнениями (или четырьмя для 2D случая). Вы сразу можете сказать, что уже это свидетельствует о слишком высокой сложности такого подхода. Но на самом деле в Farseer, к примеру, класс тела (Body) содержит и линейные координаты тела (по сути это пара α(s) по OX и OY), и линейные скорости (пара s*α(s) по OX и OY) и параметры ориентации и угловой скорости. Эти параметры обсчитываются раздельно для каждой из осей, т.е. количество уравнений такое же — два уравнения по оси OX (линейное и угловое движение) и два для оси OY. Разница лишь в форме уравнений.
Алгоритм в движке Farseer — приближенный и упрощенный, но позволяет работать с варьируемыми квантами времени. В функцию обсчета параметров движения (Island.Solve(ref TimeStep step, ref Vector2 gravity)) передается время, прошедшее после последнего обсчета параметров. Это позволяет при недостаточной производительности компьютера держать скорость течения игрового времени примерно постоянным в ущерб плавности и реалистичности движения игровых объектов.
При построении дискретной модели на основе диференциальных уравнений мы четко завязываемся на фиксированный квант времени. Уравнения интегрируются для изначально заданной частоты дискретезации, и если с момента последнего обсчета по какой-то причине прошло времени больше, чем заданный квант (в англоязычной литературе его называют «time sample»), то мы либо должны произвести обсчет несколько раз, либо получим замедление движения объекта. Последнее я как раз и наблюдал в игре «Command Cortex» на слабой машине. Движения акторов были плавными но медленными (акторы, управляемые человеком, получают преимущество). Таким образом, нельзя говорить об исключительном преимуществе одного из этих подходов.
Теперь о том, за что отвечают коэффициенты представленного выше уравнения. Это уравнение описывает движение физического тела относительно положения равновесия при α(s) = 0. Это еще одна из причин кажущегося неудобства применения такой модели в игровой механике. При отсутствии приложенных внешних сил данная модель рано или поздно возвратит (при условии устойчивости модели) тело в положение равновесия. Представьте игровой мир, наполненный шариками, которые все время стремятся в начало координат (например, в левый верхний угол экрана). К такому поведению приводит наличие коэффициента жесткости (см. а2 выше). Представьте, что тело соединено с началом координат пружиной. Пока на тело действуют силы, пружина растянута, но стоит убрать внешнее воздействие и тело устремится к нулю. Тела в движке Farseer таким поведением не обладают. Если мы зададим коэффициент a2 равным нулю, то и в данном случае тела не будут стремиться к началу координат (см. выше я писал, что модели в Farseer по сути урезанные варианты этой модели). Ну и зачем этот коэффициент тогда нужен, спросите Вы. Если раскрыть скобки в левой части уравнения (1) и вместо слагаемого
a2*α(s)
напишем
a2*(α(s) — α0)
то через α0 мы получим возможность задать положение, к которому игровой объект будет стремиться. Величина коэффициента а2 отвечает за то, насколько быстро тело переместится в заданное положение равновесия (чем больше значение, тем выше жесткость пружины). Как такое реализовывается в Farseer я пока не выяснил, но думаю придется создать дополнительный источник воздействия.
Теперь коэффициент a1. Это коэффициент демпфирования. Чем больше значение этого коэффициента, тем быстрее гасится скорость (линейная или угловая). Аналогия из жизни — вязкие жидкости, такие как масло, мед, эпоксидная смола. Эти жидкости очень вязкие (имеют большое значение коэффициента демпфирования). Чем выше скорость движения тела в них, тем выше сопротивление этому движения. Если медленно двигать в них ложку, например, то преодолеть сопротивление большого труда не составит, а вот если ударить с размаху, то удар будет жестким.
Величина коэффициента а0 характеризует инерцию объекта. При описании линейного движения в качестве коэффициента а0 используется масса. Чем выше его значение, тем медленнее тело набирает скорость при приложении к нему внешних сил.
Теперь о коэффициентах в правой части уравнения (1). Тут нужно заметить, что данная модель расширенная на случай, когда входное воздействие определяется не только самим значением внешней силы, но и ее изменением. Для описания динамики игровых объектов это, возможно, будет излишним. Однако в промышленных системах управление встречаются и такие модели. Каков же их физический смысл? Коэффициент b1 это по сути коэффициент передачи внешней силы вовнутрь объекта. Обычно он равен еденице, т.е. сила передается как есть.
Коэффициент b0 интересен. Он играет роль форсирующего коэффициента. Представьте очень инерционный объект, к которому прикладывают силу, плавно нарастающую со временем. Если скорость нарастания и конечная величина силы будут малы, то объект очень медленно набирать скорость. Но если силу сделать большой, то после достижения внешней силой заданного значения объект не остановится в каком-то положении, а будет колебаться под действием инерции. Форсирование — это воздействие, пропорциональное скорости нарастания внешней силы. Если мы выберем его большим, то даже при малой скорости нарастания внешней силы наш объект будет достаточно быстро набирать скорость, а когда внешняя сила достигнет заданного значения, форсирование отключится. Вот такой вот хитрый этот «b0».

Динамика в картинках

Чтобы наглядно показать влияние коэффициентов дифф. уравнения на поведение динамического объекта решил построить графики переходного процесса при ступенчатом (step response) и импульсном (impulse response) входных воздействиях. Всего представлено 6 групп графиков (по одной группе для каждого коэффициента). Графики построены в пакете Octave (v. 3.4) с установленным пакетом «Signal Processing».
Итак, в качестве исходной возьмем модель вида:
=========================================
>>> w = tf([1 1],[1 1 1])

Transfer function «w» from input «u1» to output…

y1: (s + 1)/(s^2 + s + 1)

Continuous-time model.
=========================================


Код «w = tf([1 1],[1 1 1])» в символьном виде имеет вид:
>>> w = tf([b0 b1],[a0 a1 a2])
На скриншотах внизу-справа — примерное время стабилизации (коридором стабильности считаем ± 5% от заданной величины).

Попробуем поиграться с коэффициентом жесткости a2.
>>> w1 = 0.1*tf([1 1],[1 1 0.1])
y1: (s + 1)/(s^2 + s + 0.1)

>>> w2 = 10*tf([1 1],[1 1 10])
y1: (s + 1)/(s^2 + s + 10)
Примечание: пришлось подшаманить с коэффициентами усиления, чтобы результирующий коэффициент усиления был равен единице.


Что видно на графиках? Слева-направо представлены графики для w, w1 и w2, соответственно. Графики w1 более плавные и медленнее достигают установившегося значения. Графики w2 имеют более колебательный характер, но быстрее достигают установившегося значения. Вывод: жестче пружина — больше колебаний, но короче переходный процесс.

Попробуем поиграться с демпфированием (а1).
>>> w1 = tf([1 1],[1 0.25 1])
y1: (s + 1)/(s^2 + 0.25s + 1)

>>> w2 = tf([1 1],[1 2 1])
y1: (s + 1)/(s^2 + 2s + 1)


Сразу вывод: больше вязкость — быстрее затухают колебания.

Попробуем поиграться с инерцией (а0).
>>> w1 = tf([1 1],[0.1 1 1])
y1: (s + 1)/(0.1s^2 + s + 1)

>>> w2 = tf([1 1],[2 1 1])
y1: (s + 1)/(2s^2 + s + 1)


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

Перейдем к правой части и поиграемся с b1.
>>> w1 = 10*tf([1 0.1],[1 1 1])
y1: (10 s + 1)/(s^2 + s + 1)

>>> w2 = 0.25*tf([1 4],[1 1 1])
y1: (0.25 s + 1)/(s^2 + s + 1)


Вроде бы разница еле заметна, если смотреть на графики Step Response. Но на графиках Impulse Response хорошо виден эффект этого коэффициента. Если он равен единице, то график импульсного переходного процесса начинается с единицы (на самом деле он выходит из нуля, но не суть важно — второе значение в графике еденица). График w1 «начинается» со значения 10 (обратная величина от 0.1), а график w2 — начинается со значения 0.25 (обратное к 4). Таким образом, коэффициент b1 можно «обозвать» коэффициентом эффективности управления (входного воздействия).

И напоследок вкусненькое — игры с коэффициентом b0. Это хитрый коэффициент, потому и сравнение будет не таким как было выше. Чтобы показать его эффект придется варьровать несколько коэффициентов.
>>> w1 = tf([6 1],[1 1 1])
y1: (6 s + 1)/(s^2 + s + 1)

>>> w2 = tf([6 1],[1 3 1])
y1: (6 s + 1)/(s^2 + 3 s + 1)


Чем отличаются друг от друга w1 и w2? У w2 в три раза больше коэффициент демпфирования. В результате получаем интересные выводы. Графики w1 и w2 раньше пересекают уровень установившегося значения чем дефолтный график. Однако график w1 сохраняет форму дефолтного с его колебательностью, а график w2 за счет увеличенного демпфирования более сглаженный. Таким образом, играясь с форсированием и демпфированием мы можем заставить даже чугунный утюг порхать по рингу как бабочка без колебаний туда-сюда.

На правах PS

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

Основные типы уравнений математической физики

Основные типы уравнений

К основным уравнениям математической физики относятся следующие дифференциальные уравнения в частных производных второго порядка.

1. Волновое уравнение:

.

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

2. Уравнение теплопроводности, или уравнение Фурье:

.

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

3. Уравнение Лапласа:

.

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

В выписанных уравнениях искомая функция u зависит от двух переменных t, x или x, y. Рассматриваются также уравнения и для функций с большим числом переменных. Например, волновое уравнение с тремя независимыми переменными имеет вид

,

и уравнение Лапласа

.

Уравнение колебаний струны.

Формулировка краевой задачи

В математической физике струной называют гибкую упругую нить. Пусть струна в начальный момент времени расположена на отрезке 0≤xl оси Ox. Предположим, что ее концы закреплены в точках x=0 и x=l. Если струну отклонить от первоначального положения, а потом предоставить самой себе или придать ее точкам некоторую скорость, то точки струны будут совершать движение. Задача заключается в определении формы струны в любой момент времени и в определении закона движения каждой точки струны в зависимости от времени.

Если предположить, что движение точек струны происходит перпендикулярно оси Ox и в одной плоскости, то процесс колебания струны описывается одной функцией u(x,t), которая определяет величину перемещения точки струны с абсциссой x в момент t.

Доказано, что при отсутствии внешней силы функция u(x,t) должна удовлетворять дифференциальному уравнению в частных производных второго порядка

.

Для полного определения движения струны одного уравнения недостаточно. Искомая функция u(x,t) должна удовлетворять граничным условиям, указывающим, что делается на концах струны (при x=0 и x=l), и начальным условиям, описывающим состояние струны в начальный момент (t=0). Совокупность граничных и начальных условий называется краевыми условиями.

Пусть, например, концы струны при x=0 и x=l неподвижны. Тогда при любом t должны выполняться равенства

Это – граничные условия для рассматриваемой задачи. В начальный момент t=0 струна имеет определенную форму, которую мы ей придали. Пусть эта форма определяется функцией f(x), т. е.

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

.

Эти два условия называются начальными условиями.

Колебания бесконечной струны.

Формула Даламбера решения задачи Коши

для волнового уравнения

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

Рассматривая свободные колебания, мы должны решить однородное уравнение

при начальных условиях

, ,

где функции f(x) и g(x) заданы на всей числовой оси. Такая задача называется задачей с начальными условиями или задачей Коши.

Преобразуем волновое уравнение к каноническому виду, содержащему смешанную производную. Уравнение характеристик

распадается на два уравнения:

интегралами которых служат прямые

Введем новые переменные ξ=xat, η=x + at и запишем волновое уравнение для переменных ξ и η.

, ,

,

,

и подставляя их в исходное уравнение, видим, что уравнение колебания струны в новых координатах будет

.

Интегрируя полученное равенство по η при фиксированном ξ, придем к равенству . Интегрируя это равенство по ξ при фиксированном η, получим

,

где φ и ψ являются функциями только переменных ξ и η соответственно. Следовательно, общим решением исходного уравнения является функция

. (8)

Найдем функции φ и ψ так, чтобы удовлетворялись начальные условия:

.

,

.

Интегрируя последнее равенство, получим:

,

где х0 и С – постоянные. Из системы уравнений

Таким образом, мы определили функции φ и ψ через заданные функции f и g, причем полученные равенства должны иметь место для любого значения аргумента. Подставляя в (8) найденные значения φ и ψ, будем иметь

.

Найденное решение называется формулой Даламбера решения задачи Коши для волнового уравнения

Пример. Решить уравнение при начальных условиях , .

Используя формулу Даламбера, сразу получаем

.

Решение волнового уравнения

методом разделения переменных

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

, (9)

удовлетворяющее краевым условиям

u(x,0)=f(x), . (12),(13)

Частное решение уравнения (9), удовлетворяющее граничным условиям (10) и (11), ищут в виде произведения двух функций:

Подставляя функцию u(x,t) в уравнение (9) и преобразовывая его, получим

.

В левой части этого уравнения стоит функция, которая не зависит от x, а в правой – функция, не зависящая от t. Равенство возможно только в том случае, когда левая и правая части не зависят ни от x, ни от t, т. е. равны постоянному числу. Обозначим

, где λ>0. (14)

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

и . (15)

Общее решение этих уравнений

,

,

где A, B, C, D – произвольные постоянные.

Постоянные A и B подбирают так, чтобы выполнялись условия (10) и (11), из которых следует, что X(0)=X(l)=0, так как T(t)≠0 (в противном случае u(x,t)=0). Учитывая полученные равенства, находим

А=0 и .

Так как B≠0 (иначе, было бы X=0 и u=0, что противоречит условию), то должно выполняться равенство

,

.

Найденные значения λ называют собственными значениями для данной краевой задачи. Соответствующие им функции X(x) называются собственными функциями.

Заметим, что, если в равенстве (14) вместо – λ взять число λ (λ>0), то первое из уравнений (15) будет иметь решение в виде

.

Отличное от нуля решение в такой форме не может удовлетворять граничным условиям (10) и (11).

Зная , можем записать

.

Для каждого n получаем решение уравнения (9)

.

Так как исходное уравнение (9) линейное и однородное, то сумма решений также является решением, и потому функция

(16)

будет решением дифференциального уравнения (9), удовлетворяющим граничным условиям (10) и (11).

Найденное частное решение должно еще удовлетворять начальным условиям (12) и (13). Из условия (12) получим

.

Далее, дифференцируя члены ряда (16) по переменной t, из условия (13) будем иметь

.

Правые части двух последних равенств есть ряды Фурье для функций f(x) и φ(x), разложенных по синусам на интервале (0, l). Поэтому

. (17)

Итак, ряд (16), для которого коэффициенты Cn и Dn определяются по выписанным формулам, если он допускает двукратное почленное дифференцирование, представляет решение уравнения (9), удовлетворяющее граничным и начальным условиям.

Пример. Найти решение краевой задачи для волнового уравнения

, 0


источники:

http://habr.com/ru/post/135794/

http://pandia.ru/text/79/052/35879.php