1Понятие дифференциального уравнения

1.1Примеры моделей, приводящих к дифференциальным уравнениям

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

1.1.1Рост населения. Мальтузианская модель

Пусть скорость роста популяции какого-нибудь вида (например, рыб в пруду или бактерий в чашке Петри) в любой момент времени пропорциональна количеству особей в популяции в этот момент времени. Это предположение кажется разумным (какая-то часть популяции за единицу времени воспроизводится), если есть достаточное количество ресурсов. Обозначим размер популяции в момент времени через . Тогда мгновенная скорость роста равна . Обычно производная по переменной обозначается точкой , а не штрихом. Таким образом, наш закон роста размера популяции можно записать так:
где — коэффициент пропорциональности (константа). Зависимость от обычно опускают и пишут просто
Это — одно из простейших (и важнейших) дифференциальных уравнений. Неизвестной величиной в ней является не число (как в обычных алгебраических уравнениях) и не вектор (как в линейной алгебре), а функция .

1.1.2Рост экономики. Модель Солоу

Согласно модели Солоу, скорость прироста капиталовооруженности экономики (количества капитала в расчёте на одного трудоспособного человека) в предположении отсутствия внешней торговли, технического прогресса и роста населения, описывается формулой
где — капиталовооруженность экономики в момент времени , — норма сбережения, — норма выбытия капитала.

1.1.3Механическая система. Падающий шарик

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

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

где — масса тела, — ускорение свободного падения (примерно равно 9.8 м/с2), знак «-» выбран, поскольку сила тяжести действует в направлении «вниз» (против направления роста ). Трением мы будем пренебрегать и считать, что никаких других сил на шарик не действует.

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

Ускорение — это вторая производная от координаты по времени, она обозначается двумя точками. Таким образом, мы имеем дифференциальное уравнение, описывающее движение шарика:

1.2Простейшие дифференциальные уравнения

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

1.2.1Дифференциальное уравнение общего вида

Дифференциальным уравнением называется соотношение вида
где — неизвестная функция, — известная функция двух переменных. Мы пока что будем рассматривать уравнения, в которых областью значений неизвестной функции являются вещественные числа , но чуть позже обсудим и более сложные случаи, когда принимает значение в многомерных пространствах. Также отметим, что в уравнении (1.4) фигурирует только первая производная неизвестной функции — это уравнение первого порядка. Позже мы обсудим, что делать с уравнениями более высоких порядков (например, таких как (1.3)). Пока же остановимся на рассмотрении уравнений вида (1.4).

Решением дифференциального уравнения называется дифференцируемая функция , такая, что при подстановке её в уравнение получается верное равенство:

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

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

Рассмотрим несколько примеров.

1.2.2Нулевая правая часть

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

1.2.3Постоянная правая часть

Чуть более сложное уравнение:
где — константа. Это уравнение движения с постоянной скоростью, его решениями являются всевозможные линейные функции
Заметим, что в этом случае константа задаёт значение функции в начальный момент времени .

1.2.4Правая часть, зависящая только от времени

Рассмотрим несколько более сложный пример: пусть функция в правой части (1.4) на самом деле не зависит от .
Задачу отыскания решения такого дифференциального уравнения можно сформулировать следующим образом: для каждого значения независимой переменной известна производная некоторой функции; найти эту функцию. Нетрудно видеть, что это в точности задача интегрирования (отыскания первообразной). Решение такого уравнения задаётся таким образом неопределенным интегралом, который можно записать в виде
Неопределенный интеграл по определению является семейством функций, а при записи его в виде определенного интеграла с переменным верхним пределом нужно указывать константу интегрирования явным образом.

1.2.5Начальные условия. Задача Коши

Чтобы выделить среди семейства решений дифференциального уравнения одно, обычно вместе с самим дифференциальным уравнением рассматривают дополнительное соотношение, называемое начальным условием — значение решения в какой-то момент времени (не обязательно ) полагают равным константе.

Когда задано дифференциальное уравнение и начальное условие, говорят, что поставлена задача Коши (по-английски Initial Value Problem). Например, можно рассмотреть такую задачу:

Eё решением будет уже только одна функция:
Действительно, любой интеграл вида (1.7) является решением уравнения (1.6), а значит, и функция в (1.9) им является. Остаётся проверить начальное условие. При подстановке решение , то есть начальное условие выполняется.

Вопрос 1. Каким будет решение уравнения (1.6) при начальном условии ?
 

Неверно, эта функция вообще является константой.

 

Верно!

 

Неверно, обратите внимание на пределы интегрирования.

1.2.6Простейшее линейное уравнение

Положим в уравнении роста населения . Получим следующее уравнение:
Какие функции будут его решениями? Словами можно сказать, что условие, накладываемое этим уравнением, звучит так: «Производная функции равна самой этой функции». Одна известная функция обладает таким свойством — это экспонента . Нетрудно видеть, что если умножить экспоненту на любое число, получающаяся функция также будет решением этого уравнения. В частности, очевидно, что решением будет функция .

Вопрос 2. Является ли решением уравнения (1.10) функция при ?
  Да, при любых .

Это неверно, попробуйте подставить функцию в уравнение и посчитать производную.

  При некоторых является, а при других нет.

Это неверно, попробуйте подставить функцию в уравнение и посчитать производную.

  Не является ни при каких .

Верно, если подставить функцию в уравнение, уничтожится при дифференцировании в левой части, но не уничтожится в правой. Таким образом, уравнение (1.10) принципиально отличается от уравнений вида (1.6), рассмотренных ранее.

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

1.3Геометрические объекты

В рассмотренных выше примерах неизвестная функция принимала значения во множестве вещественных чисел. В общем случае функция может принимать значения в других множествах — например, в многомерных пространствах. Множество, в котором принимает значение неизвестная функция (или, иными словами, множество всевозможных значений при каком-нибудь фиксированном ) называется фазовым пространством дифференциального уравнения. Множество точек вида (декартово произведение фазового пространства на ось времени) называется расширенным фазовым пространством. График решения называется интегральной кривой. Интегральные кривые живут в расширенном фазовом пространстве. Построим некоторые интегральные кривые для уравнения . Как мы уже знаем, ими будут графики экспонент.
import matplotlib.pyplot as plt
import numpy as np
import qqmbr.odebook as ob
# see https://github.com/ischurov/qqmbr/blob/master/qqmbr/odebook.py

plt.rcParams['figure.figsize'] = (8, 6)
ob.axes4x4()
initials = list(range(-5, -1)) + [0.15] + [x/np.exp(1) for x in [1, 2, 3]]
initials.extend([-x for x in initials])
initials.append(0)
for C in initials:
    ob.mplot(np.linspace(-4,4),lambda t, C=C: C * np.exp(t),
             color='steelblue', linewidth=1.5) 
Рис. 1.1: Графики решений дифференциального уравнения
Если бы мы не знали, какие на самом деле решения нашего дифференциального уравнения (а это наиболее распространенный случай, чаще всего дифференциальные уравнения не решаются явно), мы всё равно могли бы примерно представить себе, как выглядят интегральные кривые. Чтобы это сделать, нам нужно построить поле направлений или поле прямых.

Вот что это такое. Возьмём произвольную точку расширенного фазового пространства. Например, , . Мы можем провести в точке касательную к интегральной кривой, проходящей через эту точку. Действительно, чтобы провести прямую через фиксированную точку, нужно знать только её угловой коэффициент, но угловой коэффициент касательной к графику некоторой функции равняется производной этой функции. А производную решения мы знаем, по определению решения она равна правой части уравнения. Для уравнения (1.10) правая часть в точке равна и, значит, касательная, проходящая через точку , имеет угловой коэффициент, равный . Можно взять ещё несколько точек на прямой и провести соответствующие касательные через них. Получится такая картинка, см. рис. 1.2.

import matplotlib.pyplot as plt
import numpy as np
import qqmbr.odebook as ob
# see https://github.com/ischurov/qqmbr/blob/master/qqmbr/odebook.py

ob.axes4x4()
xs=range(-4,5)
plt.scatter([1] * len(xs),xs)
for x0 in xs:
    ob.mplot(np.linspace(0,5),
            lambda t, x0=x0: x0 * (t - 1) + x0,
            linestyle='dashed',
            linewidth=0.5,
            color='black')
    ob.mplot(np.linspace(1 - 0.2, 1 + 0.2),
            lambda t, x0=x0: x0 * (t - 1) + x0,
            color='red',
            linewidth=1.5)
Рис. 1.2: Касательные к решениям

Вопрос 3. Почему прямые пересекаются в начале координат?

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

import matplotlib.pyplot as plt
import numpy as np
import qqmbr.odebook as ob
# see https://github.com/ischurov/qqmbr/blob/master/qqmbr/odebook.py

plt.cla()
ob.axes4x4()
ob.normdirfield(np.arange(-4, 4, 0.5),
                np.arange(-4, 4, 0.5),
                lambda x, y: y,
                color='red',
                linewidth=1.5,
                length=0.6)
Рис. 1.3: Поле направлений
На картинке изображены прямые, проходящие через какие-то конкретные точки, но на самом деле такая прямая может быть проведена через любую точку. Вся совокупность этих прямых и будет полем направлений.

Замечание. Часто в этом месте возникает вопрос: прямые, проходящие через каждую точку плоскости, заполнят собой всю плоскость — значит ли это, что поле направлений является всей плоскостью? На самом деле, нет: поле направлений не является объединением прямых; прямые, проведённые через разные точки, никак не взаимодействуют друг с другом. Более аккуратно было бы сказать, что поле направлений — это отображение из расширенного фазового пространства во множество прямых, проходящих через фиксированную точку. Чтобы это сказать совсем аккуратно, следовало бы ввести понятие касательного расслоения, но мы этого не делать не будем.

import matplotlib.pyplot as plt
import numpy as np
import qqmbr.odebook as ob
# see https://github.com/ischurov/qqmbr/blob/master/qqmbr/odebook.py

plt.cla()
ob.axes4x4()
ob.normdirfield(np.arange(-4, 4, 0.5), 
                np.arange(-4, 4, 0.5),
                lambda x, y: y,color='red',
                linewidth=1.5,
                length=0.6)
initials = list(range(-5, -1)) + [0.15] + [x/np.exp(1) for x in [1, 2, 3]]
initials.extend([-x for x in initials])
initials.append(0)
for C in initials:
    ob.mplot(np.linspace(-4, 4),
            lambda t, C=C: C * np.exp(t),
            color='steelblue', linewidth=1.5) 
Рис. 1.4: Поле направлений и интегральные кривые
Теперь задача отыскания решения дифференциального уравнения сводится к такой геометрической задаче: нужно найти кривую, которая в каждой своей точке касается прямой, принадлежащей полю направлений и проходящей через эту точку.

Эта интерпретация скоро окажется для нас очень полезной.

1.4Выводы

Дифференциальные уравнения используются для моделирования процессов, в которых участвует время. Предмет рассмотрения нашего курса — обыкновенные дифференциальные уравнения, они имеют вид , где — неизвестная функция, определённая на всей оси или на какой-то его связной компоненте (отрезке, интервале, полуинтервале, луче). Решением дифференциального уравнения всегда является семейство функций; чтобы выбрать из них одну, нужно задать начальное условие. Множество всех возможных значений функции называется фазовым пространством, а его декартово произведение на ось времени — расширенным фазовым пространством. График решения (кривая в расширенном фазовом пространстве) называется интегральной кривой. Если в каждой точке расширенного фазового пространства провести прямую, уголовой коэффициент которой равен значению правой части уравнения в этой точке, то получится поле прямых или поле направлений. Всякая интегральная кривая в каждой своей точке касается прямую из поля прямых, проходящую через данную точку.

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