Решение жестких дифференциальных уравнений и ДАУ — метод переменного порядка точности
[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.