Решите дифференциальные уравнения с запаздывающим аргументом (DDEs) с общими задержками
sol = ddesd (ddefun, задержки, история, tspan)
sol = ddesd (ddefun, задержки, история, tspan, опции)
| Указатель на функцию, который оценивает правую сторону дифференциальных уравнений y ′ (t) = f (t, y (t), y (d (1)..., y (d (k))). Функция должна иметь форму dydt = ddefun(t,y,Z) где |
| Указатель на функцию, который возвращает вектор - столбец задержек d (j). Задержки могут зависеть и от t и от y (t). Если все функции задержки имеют форму d (j) = t – τj, можно установить аргумент |
| Задайте
|
| Интервал интегрирования от |
| Дополнительный аргумент интегрирования. Структура вы создаете использование функции |
sol = ddesd(ddefun,delays,history,tspan)
интегрирует систему DDEs
на интервале [t0, tf], где задержки d (j) могут зависеть и от t и от y (t), и t0 <tf. Вводы ddefun
и delays
являются указателями на функцию. См. Создание указателя на функцию для получения дополнительной информации.
Параметризация Функций объясняет, как предоставить дополнительные параметры функциям ddefun
, delays
и history
, при необходимости.
ddesd
возвращает решение как структуру sol
. Используйте вспомогательный функциональный deval
и вывод sol
, чтобы оценить решение в отдельных моментах tint
в интервале tspan = [t0,tf]
.
yint = deval(sol,tint)
Структура sol
, возвращенный ddesd
, имеет следующие поля.
| Mesh выбрана |
| Приближение к y (x) в mesh указывает в |
| Приближение к y ′ (x) в mesh указывает в |
| Имя решателя, |
sol = ddesd(ddefun,delays,history,tspan,options)
решает как выше со свойствами интегрирования по умолчанию, замененными значениями в options
, аргумент, созданный с ddeset
. Смотрите ddeset
и Типы DDEs для получения дополнительной информации.
Обычно используемые опции являются скалярным допуском относительной погрешности 'RelTol'
(1e-3
по умолчанию), и вектор допусков абсолютной погрешности 'AbsTol'
(всеми компонентами является 1e-6
по умолчанию).
Используйте опцию 'Events'
, чтобы задать функцию, которую ddesd
вызывает, чтобы найти, где функции g (t, y (t), y (d (1))..., y (d (k))) исчезают. Эта функция должна иметь форму
[value,isterminal,direction] = events(t,y,Z)
и содержите функцию события для каждого события, которое будет протестировано. Для k
th событие функционируют в events
:
value(k)
является значением k
th функция события.
isterminal(k) = 1
, если вы хотите, чтобы интегрирование отключило в нуле этой функции события и 0
в противном случае.
direction(k) = 0
, если вы хотите, чтобы ddesd
вычислил все нули этой функции события, +1
, если только нули, где событие функционируют увеличения и -1
, если только нули, где событие функционируют уменьшения.
Если вы задаете опцию 'Events'
, и события обнаруживаются, выходная структура, sol
также включает поля:
| Вектор - строка из местоположений всех событий, i. e., времена, когда функция события исчезла |
| Матрица, столбцы которой являются значениями решения, соответствующими временам в |
| Вектор, содержащий индексы, которые задают, который событие имело место в соответствующее время в |
Уравнение
sol = ddesd(@ddex1de,@ddex1delays,@ddex1hist,[0,5]);
решает DDE на интервале [0,5]
с задержками, заданными функциональным ddex1delays
и дифференциальными уравнениями, вычисленными ddex1de
. История оценена для t ≤ 0 функциональным ddex1hist
. Решение оценено в 100 равномерно распределенных точках в [0,5]
:
tint = linspace(0,5); yint = deval(sol,tint);
и построенный график с
plot(tint,yint);
Эта проблема включает постоянные задержки. Функция delay
имеет форму
function d = ddex1delays(t,y) %DDEX1DELAYS Delays for using with DDEX1DE. d = [ t - 1 t - 0.2];
Проблема может также быть решена с синтаксисом, соответствующим постоянным задержкам
delays = [1, 0.2]; sol = ddesd(@ddex1de,delays,@ddex1hist,[0, 5]);
или использование dde23
:
sol = dde23(@ddex1de,delays,@ddex1hist,[0, 5]);
Для большего количества примеров решения дифференциальных уравнений с запаздывающим аргументом смотрите ddex2
и ddex3
.
[1] Шемпин, L.F., “Решая ОДУ и DDEs с Остаточным Управлением”, Прикладная Числовая Математика, Издание 52, 2005, стр 113-127.