2Автономные дифференциальные уравнения на прямой

Итак, давайте научимся решать какие-нибудь дифференциальные уравнения. Для начала — очень простые.

В этой главе мы будем рассматривать дифференциальные уравнения вида

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

Напомним, что решением уравнения (2.1) называется дифференцируемая функция , такая, что выполнено тождество

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

2.1Численное решение дифференциальных уравнений. Метод Эйлера

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

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

На рис. 2.1 синим изображено истинное решение уравнения с начальным условием , а красным, розовым, фиолетовым и зеленым изображены численные решения уравнения методом Эйлера 5, 10, 20 и 100 шагами соответственно. Заметим, что уже сто шагов дает достаточно хорошее приближение решения.

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()
ob.eulersplot(lambda t, x: t, -3, 4, 4, 5, color='red')
ob.eulersplot(lambda t, x: t, -3, 4, 4, 10, color='pink')
ob.eulersplot(lambda t, x: t, -3, 4, 4, 20, color='purple')
ob.eulersplot(lambda t, x: t, -3, 4, 4, 100, color='green')
ob.mplot(np.linspace(-4,4),lambda x: x**2 / 2 - 0.5, 
    color='steelblue')
Рис. 2.1: Приближённые решения

Упражнение 1. Используя метод Эйлера (но не используя компьютер), найти решение дифференциального уравнения , удовлетворяюее начальному условию . Отсюда найти одну из известных формул для числа .

2.2Аналитическое решение автономных дифференциальных уравнений на прямой

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

Определение 1. Автономным называется дифференциальное уравнение, правая часть которого не зависит от времени явно. Такое уравнение имеет вид

Рассмотрим задачу Коши для автономного дифференциального уравнения (2.3) с начальным условием . Пусть . В этом случае решение задаётся явной формулой (она называется формулой Барроу). Мы обсудим несколько способов её вывода и интерпретации.

2.2.1Геометрические соображения

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

Рассмотрим поля направлений двух уравнений: первое является простейшим, а второе автономным, см. рис. 2.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

plt.figure(figsize=(8, 4))
plt.subplot(121)
ob.axes4x4()
ob.normdirfield(np.arange(-4, 4, 0.5),
                np.arange(-4, 4, 0.5),
                lambda t, x: t,
                color='red',
                linewidth=1,
                length=0.6)
plt.subplot(122)
ob.axes4x4()
ob.normdirfield(np.arange(-4, 4, 0.5),
                np.arange(-4, 4, 0.5),
                lambda t, x: x,
                color='red',
                linewidth=1,
                length=0.6)
Рис. 2.2: Поля направлений для уравнения (слева) и (справа)
Это совсем разные уравнения, но их поля направлений обладают неким сходством: они не меняются при сдвигах. Разница в том, что первое поле направлений не меняется при вертикальных сдвигах, а второе — при горизонтальных. Нетрудно понять, что аналогичными свойствами обладают все уравнения этих двух классов.

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

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

2.2.2Механический подход

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

Попробуем ответить на этот вопрос (хотя бы приближённо) с помощью аналога метода Эйлера (см. раздел 2.1). Предположим для определённости, что и (вблизи движение происходит вправо; обратный случай рассматривается полностью аналогично). Предположим также, что на всём отрезке функция принимает только положительные значения (чуть ниже мы обсудим, что это вполне разумное предположение). Разобьем отрезок на равных маленьких отрезочков длины . Пусть — концы наших отрезочков. Сколько времени нужно, чтобы попасть из точки в точку ? Для этого нам придётся пройти расстояние, равное . Мгновенная скорость движения в точке равна . Поскольку мало, а функция непрерывна, можно ожидать, что её значение не слишком сильно изменится, по крайней мере, пока мы находимся на том же отрезочке. Значит, можно считать (совершая некоторую ошибку, малую при малых ), что движение на всём отрезочке происходит с постоянной скоростью, равной . Тогда время движения вычисляется по школьной формуле: нужно расстояние поделить на скорость . Обозначим вычисленное таким образом время прохождения -го отрезочка через . Имеем:

Пусть мы оказались в точке в момент времени . Тогда время прохождения всего отрезка от до равна и получается сложением всех для :
Ну-ка, что у нас тут в правой части? Это же интегральные суммы для функции ! Равенство (2.5) является приближённым, но когда мы перейдём к пределу при (или, что то же самое, при ), оно превратится в точное:
Это соотношение и называется формулой Барроу. Его можно понимать как неявное выражение через . В некоторых ситуациях из него можно выразить функцию явно.

2.2.3Аналитический подход

Приведём более формальный вывод формулы Барроу, опирающийся на математический анализ. Пусть функция является решением уравнения (2.3) и удовлетворяет начальному условию . Рассмотрим функцию , обратную к функции . Рассмотрим произвольную точку , лежащую на графике решения: для неё выполняются соотношения , и (поскольку является решением уравнения). Тогда по теореме о производной сложной функции
Это равенство выполняется в любой точке . Значит, функция является решением дифференциального уравнения
где выступает в роли независимой переменной. Правая часть теперь не зависит от неизвестной функции и такое уравнение мы умеем решать:
Вспоминая, что — обратная функция к решению , имеем:
Мы снова получили формулу Барроу.

2.2.4Магия

Часто для вывода формулы Барроу используют такую символическую запись: Это может показаться некоторой магией — особенно загадочно выглядит уравнение (2.9). Чуть позже мы дадим определение дифференциальной 1-формы, с помощью которого можно придать этим формулам аккуратный смысл, а пока обратим внимание, что уравнение (2.9) очень похоже на уравнение (2.4). В целом, эта формальная запись фактически повторяет наш вывод в параграфе 2.2.2.

Пример 1. Решим уравнение с начальным условием . Пусть — решение и — обратная функция к решению. Имеем: Заметим, что если бы мы забыли модуль под логарифмом при интегрировании, то константа принимала бы только положительные значения. Но из-за модуля она может принимать и отрицательные значения.

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