Численные методы для решения обыкновенных дифференциальных уравнений
Численные методы для обыкновенных дифференциальных уравнений — это методы, используемые для поиска численных приближений к решениям обыкновенных дифференциальных уравнений (ОДУ). Их использование также известно как « числовое интегрирование », хотя этот термин также может относиться к вычислению интегралов .
Многие дифференциальные уравнения не могут быть решены точно. Однако для практических целей, например, в технике, часто бывает достаточно численной аппроксимации решения. Алгоритмы , изученные здесь, могут быть использованы для вычисления такого приближения. Альтернативный метод — использовать методы исчисления для получения в ряд разложения решения .
Обыкновенные дифференциальные уравнения встречаются во многих научных дисциплинах, включая физику , химию , биологию и экономику . [1] Кроме того, некоторые методы численного уравнения в частных производных преобразуют уравнение в частных производных в обыкновенное дифференциальное уравнение, которое затем необходимо решить.
Проблема
[ редактировать ]Дифференциальное уравнение первого порядка представляет собой задачу начального значения (IVP) вида: [2]
( 1 ) |
где это функция , а начальное условие является заданным вектором. Первый порядок означает, что в уравнении присутствует только первая производная от 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 ′ конечно-разностной аппроксимацией
( 2 ) |
которая при перестановке дает следующую формулу
и использование ( 1 ) дает:
( 3 ) |
Эта формула обычно применяется следующим образом. Выбираем размер шага h и строим последовательность Обозначим через численная оценка точного решения . Руководствуясь ( 3 ), мы вычисляем эти оценки по следующей рекурсивной схеме
( 4 ) |
Это метод Эйлера (или прямой метод Эйлера , в отличие от обратного метода Эйлера , который будет описан ниже). Метод назван в честь Леонарда Эйлера , описавшего его в 1768 году.
Метод Эйлера является примером явного метода. Это означает, что новое значение y n +1 определяется с точки зрения уже известных вещей, например y n .
Обратный метод Эйлера
[ редактировать ]Если вместо ( 2 ) использовать приближение
( 5 ) |
мы получаем обратный метод Эйлера :
( 6 ) |
Обратный метод Эйлера — это неявный метод, означающий, что нам нужно решить уравнение, чтобы найти y n +1 . часто используют итерацию с фиксированной точкой или (некоторую модификацию) метода Ньютона – Рафсона Для этого .
Решение этого уравнения требует больше времени, чем явные методы; эту стоимость необходимо учитывать при выборе метода, который будет использоваться. Преимущество неявных методов, таких как ( 6 ), заключается в том, что они обычно более стабильны для решения жесткого уравнения больший размер шага h , а это означает, что можно использовать .
Метод экспоненциального интегратора первого порядка
[ редактировать ]Экспоненциальные интеграторы описывают большой класс интеграторов, которые в последнее время получили большое развитие. [13] Они датируются как минимум 1960-ми годами.
Вместо ( 1 ) мы предполагаем, что дифференциальное уравнение имеет вид
( 7 ) |
или он был локально линеаризован относительно фонового состояния для получения линейного члена и нелинейный член .
Экспоненциальные интеграторы строятся путем умножения ( 7 ) на и точно интегрируя результат повременной интервал :
Это интегральное уравнение является точным, но оно не определяет интеграл.
Экспоненциальный интегратор первого порядка можно реализовать, если постоянная на всем интервале:
( 8 ) |
Обобщения
[ редактировать ]Метод Эйлера зачастую недостаточно точен. Точнее, он имеет только один порядок (понятие порядка объяснено ниже). Это заставило математиков искать методы более высокого порядка.
Одна из возможностей состоит в том, чтобы использовать не только ранее вычисленное значение y n для определения y n +1 , но и сделать решение зависящим от большего количества прошлых значений. Это дает так называемый многошаговый метод . Возможно, самым простым является метод чехарды , который является вторым порядком и (грубо говоря) опирается на два значения времени.
Почти все практические многошаговые методы относятся к семейству линейных многошаговых методов , которые имеют вид
Другая возможность — использовать больше точек в интервале. . Это приводит к семейству методов Рунге-Кутты , названному в честь Карла Рунге и Мартина Кутты . Особой популярностью пользуется один из их методов четвертого порядка.
Расширенные функции
[ редактировать ]Хорошая реализация одного из этих методов решения ОДУ влечет за собой нечто большее, чем просто формулу шага по времени.
Зачастую неэффективно постоянно использовать один и тот же размер шага, поэтому методы с переменным размером шага были разработаны . Обычно размер шага выбирается таким, чтобы (локальная) ошибка на шаг была ниже некоторого уровня допуска. Это означает, что методы также должны вычислять индикатор ошибки — оценку локальной ошибки.
Расширением этой идеи является динамический выбор между различными методами разного порядка (это называется методом переменного порядка ). Методы, основанные на экстраполяции Ричардсона , [14] такие как алгоритм Булирша – Стоера , [15] [16] часто используются для построения различных методов разного порядка.
Другие желательные функции включают в себя:
- плотный вывод : дешевые численные аппроксимации для всего интервала интегрирования, а не только в точках t 0 , t 1 , t 2 ,...
- Местоположение события : определение моментов, когда, скажем, конкретная функция исчезает. Обычно для этого требуется использование алгоритма поиска корня .
- поддержка параллельных вычислений .
- при использовании для интегрирования по времени обратимость времени
Альтернативные методы
[ редактировать ]Многие методы не подпадают под обсуждаемые здесь рамки. Некоторые классы альтернативных методов:
- мультипроизводные методы , в которых используется не только функция f , но и ее производные. В этот класс входят методы Эрмита-Обрешкова и методы Фельберга , а также такие методы, как метод Паркера-Сохацкого. [17] или метод Бычкова–Щербакова, который рекурсивно вычисляет коэффициенты ряда Тейлора решения y .
- методы для ОДУ второго порядка . Мы сказали, что все ОДУ более высокого порядка можно преобразовать к ОДУ первого порядка вида (1). Хотя это, безусловно, правда, возможно, это не лучший способ действовать. В частности, методы Нистрема работают непосредственно с уравнениями второго порядка.
- методы геометрического интегрирования [18] [19] специально разработаны для специальных классов ОДУ (например, симплектических интеграторов для решения гамильтоновых уравнений ). Они заботятся о том, чтобы численное решение учитывало базовую структуру или геометрию этих классов.
- Методы квантовых систем состояний представляют собой семейство методов интеграции ОДУ, основанных на идее квантования состояний. Они эффективны при моделировании разреженных систем с частыми разрывами.
Параллельные во времени методы
[ редактировать ]Некоторые IVP требуют интеграции с таким высоким временным разрешением и/или в течение таких длительных интервалов времени, что классические методы последовательного временного шага становятся вычислительно невозможными для запуска в реальном времени (например, IVP в численном прогнозировании погоды, моделировании плазмы и молекулярной динамике). В ответ на эти проблемы были разработаны методы параллельного выполнения во времени (PinT), чтобы сократить время выполнения моделирования за счет использования параллельных вычислений .
Ранние методы PinT (самые ранние из них были предложены в 1960-х годах) [20] изначально были упущены из виду исследователями из-за того, что требуемые им архитектуры параллельных вычислений еще не были широко доступны. Благодаря увеличению доступной вычислительной мощности интерес возобновился в начале 2000-х годов с разработкой Parareal , гибкого и простого в использовании алгоритма PinT, который подходит для решения широкого спектра задач IVP. Появление экзафлопсных вычислений привело к тому, что алгоритмы PinT привлекают все большее внимание исследователей и разрабатываются таким образом, чтобы они могли использовать самые мощные в мире суперкомпьютеры . К наиболее популярным методам по состоянию на 2023 год относятся Parareal, PFASST, ParaDiag и MGRIT. [21]
Анализ
[ редактировать ]Численный анализ – это не только разработка численных методов, но и их анализ. Тремя центральными концепциями в этом анализе являются:
- сходимость : приближает ли метод решение,
- порядок : насколько хорошо оно приближает решение, и
- стабильность : устраняются ли ошибки. [22]
Конвергенция
[ редактировать ]Численный метод называется сходящимся, если численное решение приближается к точному решению при стремлении размера шага h к 0. Точнее, мы требуем, чтобы для любого ОДУ (1) с липшицевой функцией f и любого t * > 0,
Все упомянутые выше методы являются конвергентными.
Последовательность и порядок
[ редактировать ]Предположим, что численный метод
Локальной (усеченной) ошибкой метода является ошибка, допущенная на одном шаге метода. То есть это разница между результатом, полученным методом при условии, что на предыдущих шагах не было допущено ошибок, и точным решением:
Метод называется состоятельным, если
Метод имеет порядок если
Следовательно, метод является непротиворечивым, если он имеет порядок больше 0. (Прямой) метод Эйлера (4) и обратный метод Эйлера (6), представленные выше, имеют порядок 1, поэтому они непротиворечивы. Большинство методов, используемых на практике, имеют более высокий порядок. Согласованность – необходимое условие конвергенции [ нужна ссылка ] , но недостаточно; Чтобы метод был сходящимся, он должен быть непротиворечивым и нулевым .
Связанное с этим понятие — глобальная ошибка (ошибка усечения) , ошибка, возникающая на всех этапах, необходимых для достижения фиксированного времени. . Явно глобальная ошибка во времени является где . Глобальная ошибка Одношаговый метод порядка ; в частности, такой метод является сходящимся. Это утверждение не обязательно верно для многошаговых методов.
Стабильность и жесткость
[ редактировать ]Для некоторых дифференциальных уравнений применение стандартных методов, таких как метод Эйлера, явные методы Рунге-Кутты или многошаговые методы (например, методы Адамса-Бэшфорта), демонстрирует нестабильность решений, хотя другие методы могут давать устойчивые решения. Это «трудное поведение» в уравнении (которое само по себе не обязательно может быть сложным) описывается как жесткость и часто вызвано наличием различных временных масштабов в основной проблеме. [23] Например, столкновение в механической системе, такой как ударный генератор, обычно происходит в гораздо меньшем временном масштабе, чем время движения объектов; это несоответствие приводит к очень «крутым поворотам» кривых параметров состояния.
Жесткие задачи повсеместно встречаются в химической кинетике , теории управления , механике твердого тела , прогнозировании погоды , биологии , физике плазмы и электронике . Один из способов преодолеть жесткость — расширить понятие дифференциального уравнения до понятия дифференциального включения , которое учитывает и моделирует негладкость. [24] [25]
История
[ редактировать ]Ниже представлен график некоторых важных событий в этой области. [26] [27]
- 1768 г. – Леонард Эйлер публикует свой метод.
- 1824 г. — Огюстен Луи Коши доказывает сходимость метода Эйлера. В этом доказательстве Коши использует неявный метод Эйлера.
- 1855 — Первое упоминание о многошаговых методах Джона Кауча Адамса в письме Фрэнсиса Башфорта .
- 1895 — Карл Рунге публикует первый метод Рунге-Кутты .
- 1901 — Мартин Кутта четвертого порядка описывает популярный метод Рунге–Кутты .
- 1910 — Льюис Фрай Ричардсон объявляет о своем методе экстраполяции — экстраполяции Ричардсона .
- 1952 – Чарльз Ф. Кертисс и Джозеф Окленд Хиршфельдер вводят термин «жесткие уравнения» .
- 1963 - Гермунд Далквист представляет A-стабильность методов интегрирования.
Численные решения одномерных краевых задач второго порядка
[ редактировать ]Краевые задачи (БВП) обычно решаются численно путем решения приблизительно эквивалентной матричной задачи, полученной путем дискретизации исходной БВП. [28] Наиболее часто используемый метод численного решения BVP в одном измерении называется методом конечных разностей . [3] Этот метод использует преимущества линейных комбинаций точечных значений для построения коэффициентов конечной разности , которые описывают производные функции. Например, аппроксимация центральной разностью второго порядка для первой производной определяется следующим образом:
второго порядка а центральная разность для второй производной определяется выражением:
В обеих этих формулах — расстояние между соседними значениями x в дискретизированной области. Затем строится линейная система, которую затем можно решить стандартными матричными методами . Например, предположим, что уравнение, которое необходимо решить, имеет следующий вид:
Следующим шагом будет дискретизация проблемы и использование приближений линейной производной, таких как
и решить полученную систему линейных уравнений. Это приведет к таким уравнениям, как:
На первый взгляд кажется, что эта система уравнений имеет трудности, связанные с тем, что в уравнении нет членов, которые не умножаются на переменные, но на самом деле это неверно. При i = 1 и n − 1 существует член, включающий граничные значения и а так как эти две величины известны, то можно просто подставить их в это уравнение и в результате получить неоднородную систему линейных уравнений , имеющую нетривиальные решения.
См. также
[ редактировать ]- Условие Куранта – Фридрихса – Леви.
- Энергетический дрейф
- Общие линейные методы
- Список тем численного анализа#Численные методы для обыкновенных дифференциальных уравнений
- Обратимый алгоритм распространения системы отсчета
- Язык Modelica и OpenModelica программное обеспечение
Примечания
[ редактировать ]- ^ Чиконе, К. (2006). Обыкновенные дифференциальные уравнения с приложениями (т. 34). Springer Science & Business Media.
- ^ Брэди (2006 , стр. 533–655)
- ^ Перейти обратно: а б ЛеВек, Р.Дж. (2007). Методы конечных разностей для обыкновенных уравнений и уравнений в частных производных: стационарные и нестационарные задачи (т. 98). СИАМ.
- ^ Слиман Аджерид и Махбуб Баккуш (2010) Методы Галеркина. Схоларпедия, 5(10):10056.
- ^ Гриффитс, Д.Ф., и Хайэм, ди-джей (2010). Численные методы решения обыкновенных дифференциальных уравнений: начальные задачи. Springer Science & Business Media.
- ^ Hairer, Nørsett & Wanner (1993 , стр. 204–215)
- ^ Александр, Р. (1977). Диагонально неявные методы Рунге–Кутты для жестких ОДУ. Журнал SIAM по численному анализу, 14 (6), 1006–1021.
- ^ Кэш, младший (1979). Диагонально неявные формулы Рунге-Кутты с оценками ошибок. Журнал прикладной математики IMA, 24 (3), 293-301.
- ^ Феррачина, Л., и Спайкер, Миннесота (2008). Сильная устойчивость однодиагонально-неявных методов Рунге–Кутты. Прикладная численная математика, 58 (11), 1675–1686.
- ^ Эверхарт, Э. (1985). Эффективный интегратор, использующий расстояния Гаусса-Радау. На коллоквиуме Международного астрономического союза (том 83, стр. 185–202). Издательство Кембриджского университета.
- ^ Вайсштейн, Эрик В. «Гауссова квадратура». Из MathWorld — веб-ресурса Wolfram. https://mathworld.wolfram.com/GaussianQuadrature.html
- ^ Мясник, JC (1987). Численный анализ обыкновенных дифференциальных уравнений: Рунге-Кутта и общие линейные методы. Уайли-Интерсайенс.
- ^ Hochbruck (2010 , стр. 209–286) Это современный и обширный обзорный документ для экспоненциальных интеграторов.
- ^ Брезински, К., и Залья, MR (2013). Методы экстраполяции: теория и практика. Эльзевир.
- ^ Монро, JL (2002). Экстраполяция и алгоритм Булирша-Стора. Физический обзор Е, 65(6), 066116.
- ^ Кирпекар, С. (2003). Реализация метода экстраполяции Булирша-Стера. Департамент машиностроения Калифорнийского университета в Беркли/Калифорния.
- ^ Нурминский Е.А. и Бурый А.А. (2011). Метод Паркера-Сохацкого решения систем обыкновенных дифференциальных уравнений с использованием графических процессоров. Численный анализ и приложения, 4 (3), 223.
- ^ Хайрер Э., Любич К. и Ваннер Г. (2006). Геометрическое численное интегрирование: алгоритмы, сохраняющие структуру для обыкновенных дифференциальных уравнений (Том 31). Springer Science & Business Media.
- ^ Хайрер Э., Любич К. и Ваннер Г. (2003). Геометрическое численное интегрирование, иллюстрируемое методом Штермера – Верле. Акта Нумерика, 12, 399–450.
- ^ Нивергельт, Юрг (1964). «Параллельные методы интегрирования обыкновенных дифференциальных уравнений» . Коммуникации АКМ . 7 (12): 731–733. дои : 10.1145/355588.365137 . S2CID 6361754 .
- ^ «Параллельно-во времени.орг» . Parallel-in-Time.org . Проверено 15 ноября 2023 г.
- ^ Хайэм, Нью-Джерси (2002). Точность и устойчивость численных алгоритмов (Том 80). СИАМ.
- ^ Миранкер, А. (2001). Численные методы решения жестких уравнений и задачи сингулярных возмущений: и задачи сингулярных возмущений (Том 5). Springer Science & Business Media.
- ^ Маркус Кунце; Тассило Куппер (2001). «Негладкие динамические системы: обзор». У Бернольда Фидлера (ред.). Эргодическая теория, анализ и эффективное моделирование динамических систем . Springer Science & Business Media. п. 431. ИСБН 978-3-540-41290-8 .
- ^ Тао Данг (2011). «Модельное тестирование гибридных систем». В Юстине Зандер, Ине Шифердекер и Питере Дж. Мостермане (ред.). Модельно-ориентированное тестирование встраиваемых систем . ЦРК Пресс. п. 411. ИСБН 978-1-4398-1845-9 .
- ^ Брезински, К., и Вуйтак, Л. (2012). Численный анализ: исторические события в 20 веке. Эльзевир.
- ^ Мясник, JC (1996). История методов Рунге-Кутты. Прикладная численная математика, 20(3), 247-260.
- ^ Ашер, UM, Маттей, RM, и Рассел, RD (1995). Численное решение краевых задач для обыкновенных дифференциальных уравнений. Общество промышленной и прикладной математики.
Ссылки
[ редактировать ]- Брэди, Брайан (2006). Дружественное введение в численный анализ . Река Аппер-Сэддл, Нью-Джерси: Пирсон Прентис Холл. ISBN 978-0-13-013054-9 .
- Дж. К. Батчер , Численные методы решения обыкновенных дифференциальных уравнений , ISBN 0-471-96758-0
- Эрнст Хайрер, Сиверт Пауль Норсетт и Герхард Ваннер, Решение обыкновенных дифференциальных уравнений I: нежесткие задачи, второе издание, Springer Verlag, Берлин, 1993. ISBN 3-540-56670-8 .
- Эрнст Хайрер и Герхард Ваннер, Решение обыкновенных дифференциальных уравнений II: жесткие и дифференциально-алгебраические задачи, второе издание, Springer Verlag, Берлин, 1996. ISBN 3-540-60452-9 .
(Эта двухтомная монография систематически охватывает все аспекты этой области.) - Хохбрук, Марлис ; Остерманн, Александр (май 2010 г.). «Экспоненциальные интеграторы». Акта Нумерика . 19 : 209–286. Бибкод : 2010AcNum..19..209H . CiteSeerX 10.1.1.187.6794 . дои : 10.1017/S0962492910000048 . S2CID 4841957 .
- Арье Изерлес, Первый курс численного анализа дифференциальных уравнений, Cambridge University Press, 1996. ISBN 0-521-55376-8 (в твердом переплете), ISBN 0-521-55655-4 (мягкая обложка).
(Учебник, предназначенный для студентов и аспирантов, изучающих математику, в котором также обсуждаются численные уравнения в частных производных .) - Джон Денхольм Ламберт, Численные методы для обыкновенных дифференциальных систем, John Wiley & Sons, Чичестер, 1991. ISBN 0-471-92990-5 .
(Учебник, несколько более требовательный, чем книга Изерлеса.)
Внешние ссылки
[ редактировать ]- Джозеф В. Рудмин, Применение метода Паркера-Сочацкого к небесной механике. Архивировано 16 мая 2016 г. в Португальском веб-архиве , 1998 г.
- Доминик Турне, Приблизительное интегрирование обыкновенных дифференциальных уравнений (1671–1914) , докторская диссертация Парижского университета 7 - Дени Дидро, июнь 1996 г. Réimp. Вильнев д'Аск: Press universitaire du Septentrion, 1997, 468 стр. (Обширный онлайн-материал по истории численного анализа ОДУ; англоязычные материалы по истории численного анализа ОДУ см., например, в цитируемых им бумажных книгах Чаберта и Голдстайна.)
- Пчелинцев, АН (2020). «Точный численный метод и алгоритм построения решений хаотических систем». Журнал прикладной нелинейной динамики . 9 (2): 207–221. arXiv : 2011.10664 . дои : 10.5890/JAND.2020.06.004 . S2CID 225853788 .
- kv на GitHub ( библиотека C++ со строгими решателями ОДУ)
- INTLAB (библиотека, созданная MATLAB / GNU Octave , которая включает в себя строгие решатели ОДУ)