Решите дифференциальные уравнения с запаздывающим аргументом (DDEs) с постоянными задержками
sol = dde23(ddefun,lags,history,tspan)
sol = dde23(ddefun,lags,history,tspan,options)
| Указатель на функцию, который оценивает правую сторону дифференциальных уравнений . Функция должна иметь форму dydt = ddefun(t,y,Z) где |
| Вектор постоянных, положительных задержек τ 1..., τk. |
| Задайте
|
| Интервал интегрирования от |
| Дополнительный аргумент интегрирования. Структура вы создаете использование функции |
sol = dde23(ddefun,lags,history,tspan)
интегрирует систему DDEs
на интервале [t 0, tf], где τ 1..., τk является постоянными, положительными задержками и t 0, tf. Входной параметр, ddefun
, является указателем на функцию.
Параметризация Функций объясняет, как предоставить дополнительные параметры функциональному ddefun
при необходимости.
dde23
возвращает решение как структуру sol
. Используйте вспомогательный функциональный deval
и вывод sol
, чтобы оценить решение в отдельных моментах tint
в интервале tspan = [t0,tf]
.
yint = deval(sol,tint)
Структура sol
, возвращенный dde23
, имеет следующие поля.
| Mesh выбрана |
| Приближение к y (x) в mesh указывает в |
| Приближение к y ′ (x) в mesh указывает в |
| Имя решателя, |
sol = dde23(ddefun,lags,history,tspan,options)
решает как выше со свойствами интегрирования по умолчанию, замененными значениями в options
, аргумент, созданный с ddeset
. Смотрите ddeset
и Дифференциальные уравнения с запаздывающим аргументом для получения дополнительной информации.
Обычно используемые опции являются скалярным допуском относительной погрешности 'RelTol'
(1e-3
по умолчанию), и вектор допусков абсолютной погрешности 'AbsTol'
(всеми компонентами является 1e-6
по умолчанию).
Используйте опцию 'Jumps'
, чтобы решить проблемы с разрывами в истории или решении. Установите эту опцию на вектор, который содержит местоположения разрывов в решении до t0
(история) или в коэффициентах уравнений в известных значениях t после t0
.
Используйте опцию 'Events'
, чтобы задать функцию, которую dde23
вызывает, чтобы найти где функции исчезнуть. Эта функция должна иметь форму
[value,isterminal,direction] = events(t,y,Z)
и содержите функцию события для каждого события, которое будет протестировано. Для k
th событие функционируют в events
:
value(k)
является значением k
th функция события.
isterminal(k) = 1
, если вы хотите, чтобы интегрирование остановилось в нуле этой функции события и 0
в противном случае.
direction(k) = 0
, если вы хотите, чтобы dde23
вычислил все нули этой функции события, +1
, если только нули, где событие функционируют увеличения и -1
, если только нули, где событие функционируют уменьшения.
Если вы задаете опцию 'Events'
, и события обнаруживаются, выходная структура, sol
также включает поля:
| Вектор - строка из местоположений всех событий, т.е. времена, когда функция события исчезла |
| Матрица, столбцы которой являются значениями решения, соответствующими временам в |
| Вектор, содержащий индексы, которые задают, который событие имело место в соответствующее время в |
Этот пример решает DDE на интервале [0, 5] с задержками 1 и 0.2. Функциональный ddex1de
вычисляет дифференциальные уравнения с запаздывающим аргументом, и ddex1hist
вычисляет историю для t <= 0
.
Файл, ddex1.m
, содержит полный код для этого примера. Чтобы видеть код в редакторе, введите edit ddex1
в командной строке. Чтобы запустить его, введите ddex1
в командной строке.
sol = dde23(@ddex1de,[1, 0.2],@ddex1hist,[0, 5]);
Этот код оценивает решение в 100 равномерно распределенных точках в интервале [0,5]
, затем строит результат.
tint = linspace(0,5); yint = deval(sol,tint); plot(tint,yint);
ddex1
показывает, как можно закодировать эту проблему с помощью локальных функций. Поскольку больше примеров видит ddex2
.
dde23
отслеживает разрывы и объединяется с явным Рунге-Кутта (2,3) пара и interpolant ode23
. Это использует итерацию, чтобы предпринять шаги дольше, чем задержки.
[1] Шемпин, Л.Ф. и С. Томпсон, “Решая DDEs в MATLAB”, Прикладная Числовая Математика, Издание 37, 2001, стр 441-458.
[2] Кирженка, J., Л.Ф. Шемпин и С. Томпсон, “Решая Дифференциальные уравнения с запаздывающим аргументом с dde23”