Решатели дифференциально-алгебраических уравнений
Рекомендуемые методы
Для небольшого количества дифференциально-алгебраических уравнений (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).