Применение дифференциальных уравнений в технике примеры

Что такое дифференциальное уравнение и зачем оно нужно?

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

Дифференциальные уравнения – простейшие виды

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

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

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

Простейшее дифференциальное уравнение имеет вид $y’(x)=f(x)$, где $f(x)$ – некоторая функция, а $y’(x)$ – производная или скорость изменения искомой функции. Оно решается обычным интегрированием: $$y(x)=\int f(x)dx.$$

Второй простейший тип называется дифференциальным уравнением с разделяющимися переменными. Такое уравнение выглядит следующим образом $y’(x)=f(x)\cdot g(y)$. Видно, что зависимая переменная $y$ также входит в состав конструируемой функции. Уравнение решается очень просто – нужно «разделить переменные», то есть привести его к виду $y’(x)/g(y)=f(x)$ или $dy/g(y)=f(x)dx$. Остается проинтегрировать обе части $$\int \frac=\int f(x)dx$$ – это и есть решение дифференциального уравнения разделяющегося типа.

Последний простой тип – это линейное дифференциальное уравнение первого порядка. Оно имеет вид $y’+p(x)y=q(x)$. Здесь $p(x)$ и $q(x)$ – некоторые функции, а $y=y(x)$ – искомая функция. Для решения такого уравнения применяют уже специальные методы (метод Лагранжа вариации произвольной постоянной, метод подстановки Бернулли).

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

Большое значение для физики и, что неожиданно, финансов имеют так называемые дифференциальные уравнения в частных производных. Это значит, что искомая функция зависит от нескольких переменных одновременно. Например, уравнение Блека-Шоулса из области финансового инжиниринга описывает стоимость опциона (вид ценной бумаги) в зависимости от его доходности, размера выплат, а также сроков начала и конца выплат. Решение дифференциального уравнения в частных производных довольно сложное, обычно нужно использовать специальные программы, такие как Matlab или Maple.

Пример применения дифференциального уравнения в экономике

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

Для некоторой фирмы функция маржинальной выручки от продажи своей продукции имеет вид $MR=10-0,2q$. Здесь $MR$ – маржинальная выручка фирмы, а $q$ – объем продукции. Нужно найти общую выручку.

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

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

С математической точки задача свелась к решению дифференциального уравнения $R’=10-0,2q$ при условии $R(0)=0$.

Проинтегрируем уравнение, взяв первообразную функцию от обеих частей, получим общее решение: $$R(q) = \int (10-0,2q)dq = 10 q-0,1q^2+C. $$

Чтобы найти константу $C$, вспомним условие $R(0)=0$. Подставим: $$R(0) =0-0+C = 0. $$ Значит C=0 и наша функция общей выручки принимает вид $R(q)=10q-0,1q^2$. Задача решена.

Другие примеры по разным типам ДУ собраны на странице: Дифференциальные уравнения с решениями онлайн.

Применение дифференциальных уравнений в технике примеры

Дифференциальные уравнения. Тезисы. Примеры применений.

Тип публикации: Тезисы

Язык: Русский

Enter the password to open this PDF file:

Григоренко М.Н., Уральский государственный экономический университет, г. Екатеринбург Дифференциальные уравнения и их применение Изучая разделы математики можно рассматривать решение задач с использованием математического аппарата, например таких как, методы расчета рисковых оптимального временного ситуаций, использования ряда [2]. Более выбор оптимального ресурсов, анализ подробно портфеля, и задачи прогнозирование рассмотрим применение дифференциальных уравнений. Дифференциальные уравнения — раздел математики, изучающий теорию и способы решения уравнений, содержащих искомую функцию и ее производные различных дифференциальные) или порядков одного нескольких аргумента аргументов (обыкновенные (дифференциальные уравнения в частных производных) [1]. В самом уравнении участвует не только неизвестная функция, но и различные ее производные. Дифференциальным уравнением описывается связь между неизвестной функцией и ее производными. Такие связи отыскиваются в различных областях знаний: в механике, физике, химии, биологии, экономике и др. Дифференциальные уравнения применяются для математического описания природных явлений. Так, например, в биологии дифференциальные уравнения применяются для описания популяции; в физике многие законы можно описать с помощью дифференциальных уравнений. Широкое применение находят дифференциальные уравнения и в моделях экономической динамики. В данных моделях отражается не только зависимость переменных от времени, но и их взаимосвязь во времени. Рассмотрим одну из задач макроэкономической динамики [1]. Например, пусть y(f) — объем продукции некоторой отрасли, реализованной к моменту времени t. Будем полагать, что вся производимая отраслью продукция реализуется по некоторой фиксированной цене р, т.е. выполнено условие ненасыщаемости рынка. Тогда доход к моменту времени t составит Y (t )  py(t ) Обозначим через I(t) величину инвестиций, направляемых на расширение производства. В модели естественного роста полагают, что скорость выпуска продукции (акселерация) пропорциональная величине инвестиций, т.е. y’ (t )  lI (t ) , где 1/l – норма акселерации. (Здесь мы пренебрегаем временем между окончанием производства продукции и ее реализацией, то есть считаем, что инвестиционный лаг равен нулю). Полагая, что величина инвестиций I(t) составляет фиксированную часть дохода, получим I (t )  mY (t )  mpy(t ) , где коэффициент пропорциональности m (так называемая норма инвестиций) — постоянная величина ( 0  m  1 ). Подставляя последнее выражение для I(t) в y’ (t )  lI (t ) приходим к уравнению y’  ky , где k  mpl . Полученное дифференциальное уравнение — с разделяющимися переменными. Решая его, приходим к функции y(t )  y0 e k ( t t0 ) , где y0  y(t 0 ) . Заметим, что уравнение y’  ky описывает также рост народонаселения, динамику роста цен при постоянной инфляции, процесс радиоактивного распада и др. Модель роста в условиях роста конкурентного рынка имеет вид y’ mlp( y) y . Научный руководитель Кныш А.А., старший преподаватель Список литературы: 1. Высшая математика для экономического бакалавриата: учебник и практикум / Н. Ш. Кремер, Б. А. Путко, И. М. Три-шин, М. Н. Фридман; под ред. Н. Ш. Кремера. – М.: Издательство Юрайт; ИД Юрайт, 2012. — 909 с. 2. Кныш А.А. Примеры реализации межпредметных связей на занятиях математики в экономическом вузе // Новая наука: от идеи к результату. — Стерлитамак: АМИ, 2017. — №2 (2) – С. 55 – 57.

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

Введение

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

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

В своей статье про Фильтр Калмана я описал что такое уравнения вида «вход-выход», передаточная функция и операторная форма записи дифференциальных уравнений (см. раздел «Основные понятия» в [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

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


источники:

http://vernsky.ru/pubs/differentsialnye-uravneniya-i-ih-primenenie-592e3104f2ad471e773c71e3

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