Решатели дифференциально-алгебраических уравнений
Рекомендуемые методы
Для небольшого количества дифференциально-алгебраических уравнений (DAE) со средней и низкой точностью в форме постоянной матрицы массы хорошим выбором являются методы Rosenbrock23
и Rodas4
, которые получат хорошую эффективность, если матрица массы является постоянной. Rosenbrock23
лучше использовать при низкой точности (погрешность ошибок <1e-4
), а Rodas4
— при высокой точности. Другие варианты при высокой точности — это Rodas5P
и RadauIIA5
.
Непостоянные матрицы массы не поддерживаются напрямую: пользователям рекомендуется преобразовать свои задачи путем подстановки в дифференциально-алгебраическое уравнение с постоянными матрицами массы.
Если задачу не удается определить в форме матрицы массы, рекомендуемым методом достижения высокой производительности является IDA
из пакета Sundials.jl, если вы решаете задачи с Float64
. Если требуются типы Julia, в настоящее время наилучшим методом является DFBDF
, но ему еще требуются оптимизации.
Полный список методов
Схемы инициализации
Для всех методов OrdinaryDiffEq.jl можно настроить схему инициализации с общим именованным аргументом initializealg
. Вот возможные варианты.
-
BrownFullBasicInit
: для DAE Index-1 неявные DAE и полуявные DAE в форме матрицы массы. Сохраняет дифференциальные переменные постоянными. Требуетdu0
при использовании наDAEProblem
. -
ShampineCollocationInit
: для DAE Index-1 неявные DAE и полуявные DAE в форме матрицы массы. Изменяет как дифференциальные, так и алгебраические переменные. -
NoInit
: явно отказывается от инициализации дифференциально-алгебраических уравнений.
OrdinaryDiffEq.jl (неявное уравнение ODE)
Эти методы из OrdinaryDiffEq предназначены для спецификаций DAEProblem
.
-
DImplicitEuler
— A-, L- и жестко стабильный адаптивный неявный метод Эйлера первого порядка
— DABDF2
— A-, L-устойчивый адаптивный метод BDF второго порядка.
-
DFBDF
— метод BDF адаптивного порядка с фиксированным ведущим коэффициентом и адаптивным временем, аналогичныйode15i
илиIDA
в форме разделенных разностей.
OrdinaryDiffEq.jl (матрица масс)
Эти методы требуют, чтобы дифференциально-алгебраическое уравнение было ODEProblem
в форме матрицы массы. Сведения о дополнительных параметрах решателей см. на странице решателей обыкновенных дифференциальных уравнений.
Стандартная эрмитова интерполяция, используемая для методов решения обыкновенных дифференциальных уравнений (ODE) в OrdinaryDiffEq.jl , неприменима к алгебраическим переменным. Таким образом, для следующих методов матриц массы используйте интерполяции (отсюда |
Методы Розенброка
-
ROS3P
— A- и жестко устойчивый метод Розенброка третьего порядка. Сохраняет высокую точность при дискретизации нелинейных параболических дифференциальных уравнений в частных производных (PDE). -
Rodas3
— A- и жестко устойчивый метод Розенброка третьего порядка. -
RosShamp4
— A-устойчивый метод Розенброка четвертого порядка. -
Veldd4
— D-устойчивый метод Розенброка четвертого порядка. -
Velds4
— A-устойчивый метод Розенброка четвертого порядка. -
GRK4T
— эффективный метод Розенброка четвертого порядка. -
GRK4A
— A-устойчивый метод Розенброка четвертого порядка. В целом «анти-L-устойчивый», но эффективный. -
Ros4LStab
— L-устойчивый метод Розенброка четвертого порядка. -
Rodas4
— A- и жестко устойчивый метод Розенброка четвертого порядка с жестко совместимым интерполянтом третьего порядка -
Rodas42
— A- и жестко устойчивый метод Розенброка четвертого порядка с жестко совместимым интерполянтом третьего порядка -
Rodas4P
— A- и жестко устойчивый метод Розенброка четвертого порядка с жестко совместимым интерполянтом третьего порядка. Четвертого порядка для линейно-параболических задач и третьего порядка точности для нелинейно-параболических задач (в противопоставление более низкому порядку, если не исправлено). -
Rodas4P2
— L- и жестко устойчивый метод Розенброка четвертого порядка с жестко совместимым интерполянтом третьего порядка. Четвертого порядка для линейно-параболических задач и третьего порядка точности для нелинейно-параболических задач. Это улучшение Roadas4P и в случае неточных якобианов метод W второго порядка. -
Rodas5
— A- и жестко устойчивый метод Розенброка пятого порядка с жестко совместимым интерполянтом четвертого порядка. -
Rodas5P
— A- и жестко устойчивый метод Розенброка пятого порядка с жестко совместимым интерполянтом четвертого порядка. Имеет улучшенную стабильность в реализации адаптивной дискретизации по времени.
Методы Розенброка — Ваннера
-
Rosenbrock23
— L-устойчивый метод Розенброка W второго и третьего порядков, хорошо подходящий для очень жестких уравнений с осцилляциями при низких погрешностях. Жестко совместимая интерполяция второго порядка. -
Rosenbrock32
— A-устойчивый метод Розенброка W третьего и второго порядков, хорошо подходящий для умеренно жестких уравнений без осцилляций при низких погрешностях. Обратите внимание, что этот метод имеет тенденцию к неустойчивости в присутствии осцилляций, поэтому используйте его с осторожностью. Жестко совместимая интерполяция второго порядка. -
RosenbrockW6S4OS
— L-устойчивый метод Розенброка W четвертого порядка (только фиксированный шаг). -
ROS34PW1a
— L-устойчивый метод Розенброка W четвертого порядка. -
ROS34PW1b
— L-устойчивый метод Розенброка W четвертого порядка. -
ROS34PW2
— жестко точный метод Розенброка W четвертого порядка для алгебраических уравнений в частных производных (PDAE). -
ROS34PW3
— строго A-устойчивый (Rinf~0,63) метод Розенброка W четвертого порядка.
|
Методы FIRK
-
RadauIIA5
- A-, B- и L-устойчивый полностью неявный метод Рунге — Кутты с внутренним табличным методом для комплексного преобразования базиса с целью повышения эффективности.
Методы SDIRK
-
ImplicitEuler
— порядок этапов 1. A-, B- и L-устойчивый. Адаптивная дискретизация по времени благодаря оценке разделенных разностей с помощью памяти. Сохранение сильной устойчивости (SSP). -
ImplicitMidpoint
— порядок этапов 1. Симплектический. Полезен, когда требуется симплектическая интеграция. -
Trapezoid
— A-устойчивый симметричный метод ESDIRK второго порядка. «Почти симплектический» без численного затухания. Также известен как метод Кранка — Николсон, когда применяется к дифференциальным уравнениям в частных производных (PDE). Адаптивная дискретизация по времени с помощью разделенных разностей в памяти. Подходит для крайне жестких уравнений, не являющихся осцилляционными.
Многошаговые методы
Квазипостоянное пошаговое выполнение — это стратегия дискретизации по времени, соответствующая классическим интеграторам GEAR, LSODE и ode15s
. Методы переменных множителей соответствуют идеям классического интегратора EPISODE и ранних выпусков VODE. Методы фиксированного ведущего коэффициента (FLC) соответствуют поведению классического интегратора VODE и Sundials CVODE.
-
QNDF1
— адаптивный L-устойчивый метод функции численного дифференцирования (NDF) первого порядка с квазипостоянными временными шагами. Необязательный параметрkappa
по умолчанию имеет оптимальное по точности значение Шампина-0.1850
. -
QBDF1
— адаптивный L-устойчивый метод BDF первого порядка. Эквивалентен неявному методу Эйлера, но использует средство оценки погрешности BDF. -
ABDF2
— адаптивный L-устойчивый многошаговый метод BDF второго порядка c фиксированным ведущим коэффициентом. -
QNDF2
— адаптивный L-устойчивый метод функции численного дифференцирования (NDF) второго порядка с квазипостоянными временными шагами. -
QBDF2
— адаптивный L-устойчивый метод BDF второго порядка, использующий квазипостоянные временные шаги. -
QNDF
— метод NDF с адаптивным порядком и квазипостоянными временными шагами. Использует оптимальные по точности значения Шампинаkappa
в качестве значений по умолчанию (имеет именованный аргумент для кортежа коэффициентовkappa
). -
QBDF
— метод BDF с адаптивным порядком и квазипостоянными временными шагами. -
FBDF
— метод BDF адаптивного порядка с фиксированным ведущим коэффициентом и адаптивным временем, аналогичныйode15i
илиCVODE_BDF
в форме разделенных разностей.
Sundials.jl
Обратите внимание, что эта настройка автоматически не включена в DifferentialEquations.jl. Для использования следующих алгоритмов необходимо установить и использовать Sundials.jl:
using Pkg
Pkg.add("Sundials")
using Sundials
-
IDA
: полностью неявный метод BDF фиксированного ведущего коэффициента. Эффективен для больших систем.
Дополнительные сведения об управлении решателями Sundials.jl см. на странице Sundials с подробностями об API решателей
DASKR.jl
DASKR.jl не включен автоматически в DifferentialEquations.jl. Для использования этого алгоритма необходимо установить и использовать пакет:
using Pkg
Pkg.add("DASKR")
using DASKR
-
daskr
— это оболочка для известного алгоритма DASKR.
Дополнительные сведения об управлении решателями DASKR.jl см. на странице DASKR с подробностями об API решателя
ODEInterfaceDiffEq.jl
Эти методы требуют, чтобы дифференциально-алгебраическое уравнение было ODEProblem
в форме матрицы массы. Сведения о дополнительных параметрах решателей см. на странице решателей обыкновенных дифференциальных уравнений.
-
seulex
— алгоритм экстраполяции, основанный на линейном неявном методе Эйлера. -
radau
— неявный метод Рунге — Кутты (Radau IIA) с переменным порядком от 5 до 13. -
radau5
— неявный метод Рунге — Кутты (Radau IIA) пятого порядка. -
rodas
— метод Розенброка порядка 4(3).