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