exponenta event banner

dde23

Решение дифференциальных уравнений задержки (DDE) с постоянными задержками

Синтаксис

sol = dde23(ddefun,lags,history,tspan)
sol = dde23(ddefun,lags,history,tspan,options)

Аргументы

ddefun

Дескриптор функции, вычисляющий правую сторону дифференциальных уравнений y (t) = f (t, y (t), y (t Функция должна иметь форму

dydt = ddefun(t,y,Z)

где t соответствует текущему t, y - вектор столбца, аппроксимирующий y (t), иZ(:,j) аппроксимирует y (t - lags(j). Выходной сигнал представляет собой вектор столбца, соответствующий f (t, y (t), y (t the1),..., y (t − startk)).

lags

Вектор постоянных, положительных запаздываний

history

Определить history одним из трех способов:

  • Функция t такова, что y = history(t) возвращает решение y (t) для t ≤ t0 в виде вектора столбца

  • Вектор константного столбца, если y (t) является постоянным

  • Решение sol из предыдущей интеграции, если этот вызов продолжается

tspan

Интервал интеграции от t0=tspan(1) кому tf=tspan(end) с t0 < tf.

options

Необязательный аргумент интеграции. Структура, создаваемая с помощью ddeset функция. Посмотрите ddeset для получения подробной информации.

Описание

sol = dde23(ddefun,lags,history,tspan) интегрирует систему DDE

y (t) = f (t, y (t), y (t

На интервале [t0, tf], где start1,..., startk - постоянные, положительные задержки и t0, tf. Входной аргумент ,ddefun, является дескриптором функции.

Параметризация функций объясняет, как предоставить дополнительные параметры функции ddefun, при необходимости.

dde23 возвращает решение в виде структуры sol. Использовать вспомогательную функцию deval и выходные данные sol для оценки решения в конкретных точках tint в интервале tspan = [t0,tf].

yint = deval(sol,tint)

Структура sol возвращено dde23 имеет следующие поля.

sol.x

Сетка, выбранная dde23

sol.y

Приближение к y (x) в точках сетки вsol.x.

sol.yp

Приближение к y(x) в точках сетки вsol.x

sol.solver

Имя решателя, 'dde23'

sol = dde23(ddefun,lags,history,tspan,options) решает, как указано выше, с помощью свойств интеграции по умолчанию, замененных значениями в options, аргумент, созданный с помощью ddeset. Посмотрите ddeset и решение дифференциальных уравнений задержки для получения дополнительной информации.

Обычно используемыми опциями являются скалярные относительные допуски ошибок 'RelTol' (1e-3 по умолчанию) и вектор абсолютных допусков ошибок 'AbsTol' (все компоненты: 1e-6 по умолчанию).

Используйте 'Jumps' возможность решения проблем с разрывами в истории или решении. Задайте для этой опции вектор, содержащий местоположения разрывов в решении до t0 (история) или в коэффициентах уравнений при известных значениях t после t0.

Используйте 'Events' для указания функции, которая dde23 призывает найти, где исчезают функции g (t, y (t), y (t − the1),..., y (t − startk)). Эта функция должна иметь вид

[value,isterminal,direction] = events(t,y,Z)

и содержат функцию события для каждого события, подлежащего тестированию. Для kФункция события в events:

  • value(k) - значение kФункция «-е событие».

  • isterminal(k) = 1 если вы хотите, чтобы интеграция заканчивалась на нуле этой функции события и 0 в противном случае.

  • direction(k) = 0 если вы хотите dde23 для вычисления всех нулей этой функции события, +1 если нули только там, где увеличивается функция события, и -1 если нули только там, где функция события уменьшается.

При указании 'Events' опция и события обнаружены, структура вывода sol также включает поля:

sol.xe

Вектор строк расположений всех событий, т.е. время исчезновения функции события

sol.ye

Матрица, столбцы которой являются значениями решения, соответствующими временам в sol.xe

sol.ie

Вектор, содержащий индексы, указывающие, какое событие произошло в соответствующее время в sol.xe

Примеры

Этот пример решает 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) и интерполяцией ode23. Он использует итерацию для выполнения шагов дольше, чем задержки.

Ссылки

[1] Шампин, Л. Ф. и С. Томпсон, «Решение DDE в MATLAB», Прикладная числовая математика, том 37, 2001, стр. 441-458.

[2] Кьерзенка, Дж., Л. Ф. Шампин и С. Томпсон, «Решение дифференциальных уравнений задержки с dde23»

Представлен до R2006a