Дифференциальные уравнения

Обыкновенное дифференциальное уравнение

Пусть \(V\) — (конечномерное) векторное пространство, а \(T\) — подмножество \(\mathbb{R}\). Обыкновенным дифференциальным уравнением (ОДУ) называется задача поиска неизвестной функции \(x: T\to V\), удовлетворяющей соотношению, в котором фигурируют её производные. Обычно считают, что это соотношение имеет вид

\[ \dot{x}(t) = f(x(t),t) \]

где \(f:V\times T \to V\). Но иногда приходится иметь дело и с неявными уравнениями вида

\[ f(\dot{x}(t), x(t), t) = 0 \]

для \(f:V\times V\times T \to V\).

Задачей Коши называется ОДУ с начальным условием: дополнительным соотношением вида \(x(0) = x_0\). Обычно задача Коши имеет единственное решение (хотя бы в некоторой окрестности начального момента времени).

Уравнения высших порядков

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

Например, уравнение

\[ \ddot{x}(t) = f(\dot{x}(t), x(t), t) \]

может быть преобразовано к виду \[ \begin{aligned} \dot{v}(t) & = f(v(t), x(t), t) \\ \dot{x}(t) & = v(t) \end{aligned} \]

Поэтому далее будем считать, что любое ОДУ является ОДУ первого порядка.

Автономные уравенения

ОДУ называется автономным, если оно имеет вид

\[ \dot{x}(t) = f(x(t)) \]

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

\[ \dot{t} = 1 \]

и начальным условием \(t(0) = 0\). Далее будем считать любое ОДУ автономным.

Явный метод Эйлера

Самым простым способом численного решения дифференциальных уравнений является явный метод Эйлера: выбирается шаг по времени \(\tau\), после чего применяется итерационный процесс

\[ x_{n+1} = x_{n} + f(x_n) \tau \]

Вектор \(x_n\) соответствует значению функции \(x\) в момент времени \(t_n = n\cdot\tau\).

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

Полунеявный метод Эйлера

Рассмотрим типичную механическую систему

\[ \ddot{x}(t) = F(x(t)) \]

с начальными условиями \(x(0) = x_0\), \(\dot{x}(0) = v_0\).

Преобразуем её в ОДУ первого порядка:

\[ \begin{aligned} \dot{v}(t) & = F(x(t)) \\ \dot{x}(t) & = v(t) \end{aligned} \]

Явный метод Эйлера для такого ОДУ имеет вид:

\[ \begin{aligned} v_{n+1} & = v_n + F(x_n)\cdot\tau \\ x_{n+1} & = x_n + v_n\cdot\tau \end{aligned} \]

У полунеявного метода ровно одно отличие (во втором уравнении):

\[ \begin{aligned} v_{n+1} & = v_n + F(x_n)\cdot\tau \\ x_{n+1} & = x_n + v_{n+1}\cdot\tau \end{aligned} \]

То есть теперь следующее состояние вычисляется не по предыдущему, а частично — по самому себе. Засчёт такой обратной связи полученный численный метод становится существенно стабильнее.