Численные методы для обыкновенных дифференциальных уравнений — это методы, используемые для нахождения численных приближений к решениям обыкновенных дифференциальных уравнений (ОДУ). Их использование также известно как « численное интегрирование », хотя этот термин может также относиться к вычислению интегралов .
Многие дифференциальные уравнения не могут быть решены точно. Однако для практических целей, например, в инженерии, часто бывает достаточно численного приближения решения. Изучаемые здесь алгоритмы можно использовать для вычисления такого приближения. Альтернативный метод — использовать методы исчисления для получения разложения решения в ряд .
Обыкновенные дифференциальные уравнения встречаются во многих научных дисциплинах, включая физику , химию , биологию и экономику . [1] Кроме того, некоторые методы в численных частных дифференциальных уравнениях преобразуют частное дифференциальное уравнение в обыкновенное дифференциальное уравнение, которое затем необходимо решить.
Дифференциальное уравнение первого порядка — это задача начального значения (IVP) вида [2]
где — функция , а начальное условие — заданный вектор. Первый порядок означает, что в уравнении появляется только первая производная y , а высшие производные отсутствуют.
Не теряя общности для систем более высокого порядка, мы ограничимся дифференциальными уравнениями первого порядка , поскольку ОДУ более высокого порядка можно преобразовать в большую систему уравнений первого порядка, введя дополнительные переменные. Например, уравнение второго порядка y ′′ = − y можно переписать как два уравнения первого порядка: y ′ = z и z ′ = − y .
В этом разделе мы описываем численные методы для IVP и отмечаем, что краевые задачи (BVP) требуют другого набора инструментов. В BVP определяются значения или компоненты решения y в более чем одной точке. Из-за этого для решения BVP необходимо использовать разные методы. Например, метод стрельбы (и его варианты) или глобальные методы, такие как конечные разности [3] , методы Галеркина [4] или методы коллокации подходят для этого класса задач.
Теорема Пикара –Линделёфа утверждает, что существует единственное решение при условии, что f является липшицево-непрерывной функцией .
Численные методы решения задач первого порядка часто попадают в одну из двух больших категорий: [5] линейные многошаговые методы или методы Рунге–Кутты . Дальнейшее разделение может быть реализовано путем разделения методов на явные и неявные. Например, неявные линейные многошаговые методы включают методы Адамса–Моултона и методы обратного дифференцирования (BDF), тогда как неявные методы Рунге–Кутты [6] включают диагонально неявные методы Рунге–Кутты (DIRK), [7] [8] однократно диагонально неявные методы Рунге–Кутты (SDIRK), [9] и Гаусса–Радау [10] (основанные на квадратурных уравнениях Гаусса [11] ) численные методы. Явные примеры из семейства линейных многошаговых методов включают методы Адамса–Башфорта , и любой метод Рунге–Кутты с нижней диагональной таблицей Бутчера является явным . Нестрогое эмпирическое правило гласит, что жесткие дифференциальные уравнения требуют использования неявных схем, тогда как нежесткие задачи можно решить более эффективно с помощью явных схем.
Так называемые общие линейные методы (ОЛМ) являются обобщением двух вышеупомянутых больших классов методов. [12]
Из любой точки кривой можно найти приближение к близлежащей точке кривой, переместившись на небольшое расстояние вдоль линии, касательной к кривой.
Начиная с дифференциального уравнения ( 1 ), заменим производную y ′ конечно-разностной аппроксимацией
что при перестановке дает следующую формулу
и использование ( 1 ) дает:
Эта формула обычно применяется следующим образом. Мы выбираем размер шага h и строим последовательность Мы обозначаем числовой оценкой точного решения . Мотивируя ( 3 ), мы вычисляем эти оценки по следующей рекурсивной схеме
Это метод Эйлера (или прямой метод Эйлера , в отличие от обратного метода Эйлера , который будет описан ниже). Метод назван в честь Леонарда Эйлера, который описал его в 1768 году.
Метод Эйлера является примером явного метода. Это означает, что новое значение y n +1 определяется в терминах уже известных вещей, таких как y n .
Если вместо ( 2 ) использовать приближение
получаем обратный метод Эйлера :
Обратный метод Эйлера является неявным методом, то есть нам нужно решить уравнение, чтобы найти y n +1 . Для этого часто используют итерацию с фиксированной точкой или (некоторую модификацию) метод Ньютона–Рафсона .
Решение этого уравнения требует больше времени, чем явные методы; эту стоимость следует учитывать при выборе метода для использования. Преимущество неявных методов, таких как ( 6 ), заключается в том, что они обычно более стабильны для решения жесткого уравнения , что означает, что можно использовать больший размер шага h .
Экспоненциальные интеграторы описывают большой класс интеграторов, которые в последнее время получили широкое развитие. [13] Они появились как минимум в 1960-х годах.
Вместо ( 1 ) мы предполагаем, что дифференциальное уравнение имеет вид
или он был локально линеаризован относительно фонового состояния, чтобы создать линейный член и нелинейный член .
Экспоненциальные интеграторы строятся путем умножения ( 7 ) на и точного интегрирования результата за определенный интервал времени :
Это интегральное уравнение является точным, но оно не определяет интеграл.
Экспоненциальный интегратор первого порядка можно реализовать, сохраняя постоянство на всем интервале:
Метод Эйлера часто недостаточно точен. Если говорить точнее, то он имеет только порядок один (понятие порядка поясняется ниже). Это заставило математиков искать методы более высокого порядка.
Одна из возможностей — использовать не только ранее вычисленное значение y n для определения y n +1 , но и сделать решение зависящим от большего количества прошлых значений. Это дает так называемый многошаговый метод . Возможно, самым простым является метод leapfrog , который является методом второго порядка и (грубо говоря) опирается на два значения времени.
Почти все практические многошаговые методы попадают в семейство линейных многошаговых методов , которые имеют вид
Другая возможность — использовать больше точек в интервале . Это приводит к семейству методов Рунге–Кутты , названных в честь Карла Рунге и Мартина Кутты . Один из их методов четвертого порядка особенно популярен.
Хорошая реализация одного из этих методов решения ОДУ подразумевает больше, чем просто формулу шага по времени.
Часто неэффективно использовать один и тот же размер шага все время, поэтому были разработаны методы с переменным размером шага . Обычно размер шага выбирается таким образом, чтобы (локальная) ошибка на шаг была ниже некоторого уровня допуска. Это означает, что методы должны также вычислять индикатор ошибки , оценку локальной ошибки.
Расширение этой идеи заключается в динамическом выборе между различными методами разных порядков (это называется методом переменного порядка ). Методы, основанные на экстраполяции Ричардсона [14] , такие как алгоритм Булирша–Штера [15] [16], часто используются для построения различных методов разных порядков.
Другие желательные характеристики включают в себя:
Многие методы не попадают в рамки, обсуждаемые здесь. Некоторые классы альтернативных методов:
Некоторые IVP требуют интеграции с таким высоким временным разрешением и/или в течение таких длительных временных интервалов, что классические последовательные методы временного шага становятся вычислительно невыполнимыми для запуска в реальном времени (например, IVP в численном прогнозировании погоды, моделировании плазмы и молекулярной динамике). Методы параллельного выполнения во времени (PinT) были разработаны в ответ на эти проблемы с целью сокращения времени выполнения моделирования за счет использования параллельных вычислений .
Ранние методы PinT (самые ранние были предложены в 1960-х годах) [20] изначально не были замечены исследователями из-за того, что требуемые им параллельные вычислительные архитектуры еще не были широко доступны. С появлением большей вычислительной мощности интерес возобновился в начале 2000-х годов с разработкой Parareal , гибкого, простого в использовании алгоритма PinT, который подходит для решения широкого спектра IVP. Появление exascale вычислений означало, что алгоритмы PinT привлекают все большее внимание исследователей и разрабатываются таким образом, чтобы они могли использовать самые мощные суперкомпьютеры в мире . Наиболее популярные методы по состоянию на 2023 год включают Parareal, PFASST, ParaDiag и MGRIT. [21]
Численный анализ — это не только разработка численных методов, но и их анализ. Три центральных понятия в этом анализе:
Численный метод называется сходящимся, если численное решение приближается к точному решению при шаге h, стремящемся к 0. Точнее, мы требуем, чтобы для каждого ОДУ (1) с функцией Липшица f и каждого t * > 0,
Все упомянутые выше методы являются конвергентными.
Предположим, что численный метод
Локальная (усеченная) ошибка метода — это ошибка, допущенная на одном шаге метода. То есть, это разница между результатом, полученным методом, при условии, что на предыдущих шагах не было допущено ошибок, и точным решением:
Метод считается последовательным, если
Метод имеет порядок , если
Следовательно, метод является последовательным, если его порядок больше 0. (Прямой) метод Эйлера (4) и обратный метод Эйлера (6), представленные выше, оба имеют порядок 1, поэтому они являются последовательными. Большинство методов, используемых на практике, достигают более высокого порядка. Последовательность является необходимым условием для сходимости [ требуется ссылка ] , но не достаточным; для того, чтобы метод был сходящимся, он должен быть как последовательным, так и устойчивым к нулю.
Связанное понятие — глобальная (усекательная) ошибка , ошибка, сохраняющаяся на всех этапах, необходимых для достижения фиксированного времени . Явно, глобальная ошибка в момент времени равна , где . Глобальная ошибка одношагового метода th-го порядка равна ; в частности, такой метод является сходящимся. Это утверждение не обязательно верно для многошаговых методов.
Для некоторых дифференциальных уравнений применение стандартных методов, таких как метод Эйлера, явные методы Рунге–Кутты или многошаговые методы (например, методы Адамса–Башфорта), демонстрирует нестабильность в решениях, хотя другие методы могут давать устойчивые решения. Это «сложное поведение» в уравнении (которое не обязательно само по себе является сложным) описывается как жесткость и часто вызвано наличием различных временных масштабов в базовой задаче. [23] Например, столкновение в механической системе, такой как ударный осциллятор, обычно происходит в гораздо меньших временных масштабах, чем время движения объектов; это несоответствие приводит к очень «резким поворотам» на кривых параметров состояния.
Жесткие проблемы повсеместно встречаются в химической кинетике , теории управления , механике твердого тела , прогнозировании погоды , биологии , физике плазмы и электронике . Один из способов преодоления жесткости — расширить понятие дифференциального уравнения до понятия дифференциального включения , которое допускает и моделирует негладкость. [24] [25]
Ниже приведена хронология некоторых важных событий в этой области. [26] [27]
Краевые задачи (BVP) обычно решаются численно путем решения приблизительно эквивалентной матричной задачи, полученной путем дискретизации исходной BVP. [28] Наиболее часто используемый метод численного решения BVP в одном измерении называется методом конечных разностей . [3] Этот метод использует линейные комбинации точечных значений для построения коэффициентов конечных разностей , которые описывают производные функции. Например, центральное разностное приближение второго порядка к первой производной определяется как:
а центральная разность второго порядка для второй производной определяется выражением:
В обеих этих формулах — это расстояние между соседними значениями x в дискретизированной области. Затем строится линейная система, которая затем может быть решена стандартными матричными методами . Например, предположим, что уравнение, которое нужно решить, имеет вид:
Следующим шагом будет дискретизация задачи и использование линейных производных приближений, таких как
и решить полученную систему линейных уравнений. Это приведет к уравнениям типа:
На первый взгляд, эта система уравнений кажется сложной, связанной с тем, что уравнение не содержит членов, не умножаемых на переменные, но на самом деле это неверно. При i = 1 и n − 1 есть член, включающий граничные значения и и поскольку эти два значения известны, можно просто подставить их в это уравнение и в результате получить неоднородную систему линейных уравнений , которая имеет нетривиальные решения.