Решение не жестких дифференциальных уравнений - метод среднего порядка точности
[
, где t
,y
] =
ode45(odefun
,tspan
,y0
)tspan = [t0 tf]
, интегрирует систему дифференциальных уравнений от t0
на tf
с начальными условиями y0
. Каждая строка массива решений y
соответствует значению, возвращаемому в вектор-столбец t
.
Все MATLAB® Решатели ОДУ могут решить системы уравнений вида , или задачи, которые включают большую матрицу, . Все решатели используют аналогичные синтаксисы. ode23s
решатель может решить задачи только с большой матрицей, если большая матрица постоянна. ode15s
и ode23t
может решить задачи с большой матрицей, сингулярной, известной как дифференциально-алгебраические уравнения (ДАУ). Задайте большую матрицу используя Mass
опция odeset
.
ode45
является универсальным решателем ОДУ и является первым решателем, который вы должны попробовать для большинства задач. Однако, если задача жесткая или требует высокой точности, то существуют другие решатели ОДУ, которые могут быть лучше подходят для задачи. Для получения дополнительной информации см. раздел «Выбор решателя ОДУ».
[
также использует настройки интегрирования, заданные как t
,y
] =
ode45(odefun
,tspan
,y0
,options
)options
, который является аргументом, созданным с помощью odeset
функция. Для примера используйте AbsTol
и RelTol
опции для задания абсолютных и относительная погрешность допусков или Mass
опция для задания большой матрицы.
[
дополнительно находит, где функции (t, y), называемые функциями события, равны нулю. В выходах t
,y
,te
,ye
,ie
]
= ode45(odefun
,tspan
,y0
,options
)te
- время события, ye
является решением во время события и ie
- индекс инициируемого события.
Для каждой функции события задайте, должно ли интегрирование завершаться на нуле и имеет ли значение направление пересечения нуля. Сделайте это, установив 'Events'
свойство функции, например myEventFcn
или @myEventFcn
, и создание соответствующей функции: [value
, isterminal
, direction
] = myEventFcn
(t
, y
). Для получения дополнительной информации смотрите Расположение события ОДУ.
ode45
основан на явной формуле Рунге-Кутта (4,5), модификации Дорманда-Принца. Это одношаговый решатель - в вычислениях y(tn)
, ему нужно только решение в непосредственно предшествующий момент времени, y(tn-1)
[1], [2].
[1] Dormand, J. R. and P. J. Prince, «A family of embedded Runge-Kutta formulae», J. Comp. Appl. Math., Vol. 6, 1980, pp. 19-26.
[2] шемпин, L. F. and M. W. Reichelt, «The MATLAB ODE Suite», SIAM Journal on Scientific Computing, Vol. 18, 1997, pp. 1-22.