Решение жестких дифференциальных уравнений и ДАУ - метод переменного порядка точности
[, где t,y] =
ode15s(odefun,tspan,y0)tspan = [t0 tf], интегрирует систему дифференциальных уравнений от t0 на tf с начальными условиями y0. Каждая строка массива решений y соответствует значению, возвращаемому в вектор-столбец t.
Все MATLAB® Решатели ОДУ могут решить системы уравнений вида , или задачи, которые включают большую матрицу, . Все решатели используют аналогичные синтаксисы. 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), основанным на численных формулах дифференцирования (NDF) порядков 1-5. Опционально он может использовать формулы дифференцирования назад (BDF, также известные как метод Гира), которые обычно менее эффективны. Как ode113, ode15s является многоступенчатым решателем. Использовать ode15s если ode45 отказывает или очень неэффективен, и вы подозреваете, что задача жесткая, или при решении дифференциально-алгебраического уравнения (ДАУ) [1], [2].
[1] шемпин, L. F. and M. W. Reichelt, «The MATLAB ODE Suite», SIAM Journal on Scientific Computing, Vol. 18, 1997, pp. 1-22.
[2] шемпин, L. F., M. W. Reichelt, and J.A. Кирженка, «Solving Index-1 DAEs in MATLAB and Simulink», SIAM Review, Vol. 41, 1999, pp. 538-552.