Автор: Шамиль Мамедов Редактура: Марк Страхов

Предисловие

Дифференциальные уравнения — естественный язык физики и природы. Вспомните, как в школе нам объясняли второй закон Ньютона о движении: $F = ma$. Ускорение $a$ представляет собой вторую производную позиции $x$. Следовательно, $F = m \ddot x$, что является обыкновенным дифференциальным уравнением (ОДУ) второго порядка. Благодаря своей эффективности дифференциальные уравнения нашли широкое применение в различных областях, например, в биологии, экономике и социологии.

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

Вспоминаем обыкновенные дифференциальные уравнения

В общем случае дифференциальное уравнение может быть записано в таком виде:

$$ \frac{d}{dt}z(t) := \dot z(t) = f\left(t,z(t), \theta\right) $$

где $z(t)$ представляет состояние, $f(\cdot)$ обозначает так называемое векторное поле, $t$ соответствует времени, а $\theta$ — параметрам. Говоря простым языком, ОДУ моделируют скорость изменения переменных.

Рисунок 1. Схематический рисунок маятника

Рисунок 1. Схематический рисунок маятника

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

$$ \dot z(t) = \begin{bmatrix} z_2(t)\\ -\frac{g}{L} \sin(z_1(t)) \end{bmatrix} $$

где $z_1(t):=\theta$ соответствует углу отклонения маятника от вертикали, $z_2(t):=\dot \theta$ представляет угловую скорость, $g$ обозначает гравитационную постоянную, а $L$ — длину маятника. Интуитивно, ОДУ маятника показывают изменения угла и угловой скорости маятника.

При работе с ОДУ крайне важно указывать начальное состояние. Без знания начального условия $z(t_0)$ невозможно решить дифференциальное уравнение, то есть проинтегрировать его. Говоря об интегрировании, следует отметить, что большинство значимых дифференциальных уравнений не имеет аналитических решений. Однако есть численные методы для приближенного нахождения решений в дискретных точках. Эти методы включают интегрирование уравнения на заданном интервале:

$$ z(t_1) = z(t_0) + \int_{t_0}^{t_1} f(t, z(t), \theta)\ dt = \text{ODESolve}(z(t_0), f, \theta, t_0, t_1) $$

И сейчас мы рассмотрим два простых численных метода для решения ОДУ, а затем коротко обсудим более продвинутые методы.

Метод Эйлера

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

$$ \frac{dz(t)}{dt} \approx \frac{z(t+\Delta t) - z(t)}{\Delta t} $$

Рисунок 2. Визуализация метода Эйлера для интегрирования ОДУ

Рисунок 2. Визуализация метода Эйлера для интегрирования ОДУ

где $\Delta t$ — фиксированная длина шага. Перегруппировав это выражение, получаем выражение для интегратора Эйлера: