Решите дифференциальные уравнения с запаздывающим аргументом (DDEs) с общими задержками
sol = ddesd(ddefun,delays,history,tspan)
sol = ddesd(ddefun,delays,history,tspan,options)
| Указатель на функцию, который оценивает правую сторону дифференциальных уравнений 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
на интервале [t 0, tf], где задержки d (j) может зависеть и от t и от y (t) и t 0 <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 и Дифференциальные уравнения с запаздывающим аргументом для получения дополнительной информации.
Обычно используемые опции являются скалярным допуском относительной погрешности '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 также включает поля:
| Вектор - строка из местоположений всех событий, т.е. времена, когда функция события исчезла |
| Матрица, столбцы которой являются значениями решения, соответствующими временам в |
| Вектор, содержащий индексы, которые задают, который событие имело место в соответствующее время в |
Уравнение
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.