DDE с зависящими от состояния задержками

В этом примере показано, как использовать ddesd для решения системы DDE (дифференциальные уравнения задержки) с зависящими от состояния задержками. Эта система DDE была использована в качестве тестовой задачи Enright и Hayashi [1].

Система уравнений

y1(t)=y2(t),

y2(t)=-y2(e1-y2(t))y2(t)2e1-y2(t).

Функции истории для t0.1 являются аналитическими решениями

y1(t)=log(t),

y2(t)=1t.

Задержки в уравнениях присутствуют только в y условия. Задержки зависят только от состояния второго компонента y2(t)таким образом, уравнения образуют систему зависимых от состояния уравнений задержки.

Чтобы решить эту систему уравнений в MATLAB, необходимо кодировать уравнения, задержки и историю перед вызовом решателя для дифференциальных уравнений с задержкой ddesd, который предназначен для систем с зависящими от состояния задержками. Можно либо включить необходимые функции в качестве локальных функций в конце файла (как это сделано здесь), либо сохранить их как отдельные, именованные файлы в директории по пути MATLAB.

Задержки кода

Сначала запишите функцию для определения временных задержек в системе. Единственная задержка, присутствующая в этой системе уравнений, в члене-y2(e1-y2(t)).

function d = dely(t,y)
d = exp(1 - y(2));
end

Примечание.Все функции включены в качестве локальных функций в конце примера.

Кодовое уравнение

Теперь создайте функцию, чтобы кодировать уравнения. Эта функция должна иметь подпись dydt = ddefun(t,y,Z), где:

  • t является временем (независимая переменная).

  • y - решение (зависимая переменная).

  • Z(n,j) аппроксимирует задержки yn(d(j)), где задержка d(j) задается как компонент j от dely(t,y).

Эти входы автоматически передаются функции решателем, но имена переменных определяют, как вы кодируете уравнения. В этом случае:

  • Z(2,1)y2(e1-y2(t))

function dydt = ddefun(t,y,Z)
dydt = [y(2);
       -Z(2,1)*y(2)^2*exp(1 - y(2))];
end

История решения кода

Затем создайте функцию для определения истории решений. История решений является решением для времени tt0.

function v = history(t) % history function for t < t0
v = [log(t); 
     1./t];
end

Решение уравнения

Наконец, задайте интервал интегрирования [t0  tf] и решить DDE используя ddesd решатель.

tspan = [0.1 5];
sol = ddesd(@ddefun, @dely, @history, tspan);

Решение для построения графика

Структура решения sol имеет поля sol.x и sol.y которые содержат внутренние временные шаги, предпринятые решателем, и соответствующие решения в эти моменты времени. (Если вам нужно решение в определенных точках, вы можете использовать deval для оценки решения в конкретных точках.)

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

ta = linspace(0.1,5);
ya = history(ta);

plot(ta,ya,sol.x,sol.y,'o')
legend('y_1 exact','y_2 exact','y_1 ddesd','y_2 ddesd')
xlabel('Time t')
ylabel('Solution y')
title('D1 Problem of Enright and Hayashi')

Figure contains an axes. The axes with title D1 Problem of Enright and Hayashi contains 4 objects of type line. These objects represent y_1 exact, y_2 exact, y_1 ddesd, y_2 ddesd.

Локальные функции

Здесь перечислены локальные вспомогательные функции, которые решатель DDE ddesd вызывается для вычисления решения. Также можно сохранить эти функции как собственные файлы в директории по пути MATLAB.

function dydt = ddefun(t,y,Z) % equation being solved
dydt = [y(2); 
       -Z(2,1).*y(2)^2.*exp(1 - y(2))];
end
%-------------------------------------------
function d = dely(t,y) % delay for y
d = exp(1 - y(2));
end
%-------------------------------------------
function v = history(t) % history function for t < t0
v = [log(t); 
     1./t];
end
%-------------------------------------------

Ссылки

[1] Энрайт, В.Х. и Х. Хаяси. Оценка численного программного обеспечения для дифференциальных уравнений с запаздывающим аргументом. В Трудах МФИП TC2/WG2.5 рабочая конференция по качеству численного программного обеспечения: оценка и совершенствование. (Р.Ф. Буазверт, ред.). Лондон, Великобритания: Chapman & Hall, Ltd., pp. 179-193.

См. также

| | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте