Решение жестких дифференциальных уравнений и ДАУ — метод переменного порядка точности
[t,y] =
ode15s(odefun,tspan,y0)
[t,y] =
ode15s(odefun,tspan,y0,options)
[t,y,te,ye,ie]
= ode15s(odefun,tspan,y0,options)
sol = ode15s(___)
[
, где t
,y
] =
ode15s(odefun
,tspan
,y0
)tspan = [t0 tf]
, интегрирует систему дифференциальных уравнений от t0
до tf
с начальными условиями y0
. Каждая строка в массиве решения y
соответствует значению, возвращенному в вектор-столбце t
.
Все решатели MATLAB® ODE могут решить системы уравнений формы , или проблемы, которые включают большую матрицу, . Решатели все использование подобные синтаксисы. Решатель ode23s
только может решить проблемы с большой матрицей, если большая матрица является постоянной. ode15s
и ode23t
могут решить проблемы с большой матрицей, которая сингулярна, известна как дифференциально-алгебраические уравнения (ДАУ). Задайте большую матрицу с помощью опции Mass
odeset
.
[
также использует настройки интегрирования, заданные t
,y
] =
ode15s(odefun
,tspan
,y0
,options
)options
, который является созданным использованием аргумента функции odeset
. Например, используйте AbsTol
и опции RelTol
, чтобы задать допуски абсолютной и относительной погрешности или опцию Mass
, чтобы обеспечить большую матрицу.
[
дополнительно находит, где функции (t, y), вызвал функции события, являются нулем. В выводе t
,y
,te
,ye
,ie
]
= ode15s(odefun
,tspan
,y0
,options
)te
является временем события, ye
является решением во время события, и ie
является индексом инициированного события.
Для каждой функции события задайте, должно ли интегрирование остановиться в нуле и имеет ли направление нулевого пересечения значение. Сделайте это путем установки свойства 'Events'
на функцию, такую как myEventFcn
или @myEventFcn
, и создания соответствующей функции: [value
, isterminal
, direction
] = myEventFcn
(t
, y
). Для получения дополнительной информации смотрите Местоположение События ОДУ.
ode15s
является переменным шагом, переменный порядок (VSVO) решатель на основе числовых формул дифференцирования (NDFs) порядков 1 - 5. Опционально, это может использовать формулы дифференцирования назад (BDF, также известные как метод Гира), которые обычно менее эффективны. Как ode113
, ode15s
является многоступенчатым решателем. Используйте ode15s
, если ode45
перестал работать или очень неэффективен, и вы подозреваете, что проблема жестка, или при решении дифференциально-алгебраического уравнения (DAE) [1], [2].
[1] Шемпин, L. F. и М. В. Рейчелт, “Пакет ODE MATLAB”, SIAM Journal на Научных вычислениях, Издании 18, 1997, стр 1–22.
[2] Шемпин, L. F. М. В. Рейчелт и Дж.А. Кирженка, “Решая Индексные 1 ДАУ в MATLAB и Simulink”, Анализ SIAM, Издание 41, 1999, стр 538–552.