Delay Differential Equation for arbitrary functions experiencing delay

조회 수: 3 (최근 30일)
Proman
Proman 2021년 9월 27일
답변: Narvik 2024년 10월 30일 9:09
Hello everyone and Hope yoo had a nice weekend and have a great one
I have this system of equations
dy1/dt = 2t + y1(t - tau2) + y2 + g(t - tau1)
dy2/dt = 3t + f(t - tau1)
I want to solve this system using dde23. I already know this function but my problem is, I have already f(t) and g(t) as vectors obtained by another mfile and I do not know how to apply the delay to them here. I have uploaded the f, g and t data.
history can be [1;0] or anything else and tau1 = 1 and tau2 = 0.2;
thanks in advance for your precious time devoting to this.

답변 (1개)

Narvik
Narvik 2024년 10월 30일 9:09
Hi Proman,
As per my understanding, you are trying to solve a system of delay differential equations (DDEs) "dde23" in MATLAB, with f(t) and g(t) as vectors.
To solve the system of DDEs, refer to the following steps:
  • Interpolate f(t) and g(t) using the "interp1" MATLAB function to create continuous functions from your discrete data
f_interp = @(t) interp1(t, f, t, 'linear', 'extrap');
g_interp = @(t) interp1(t, g, t, 'linear', 'extrap');
  • Define function that describes the system using these interpolated functions
function dydt = dde_system(t, y, Z)
tau1 = 1;
tau2 = 0.2;
y1_tau2 = Z(:,1); % y1(t - tau2)
dydt = zeros(2,1);
dydt(1) = 2*t + y1_tau2 + y(2) + g_interp(t - tau1);
dydt(2) = 3*t + f_interp(t - tau1);
end
  • Specify the delays (tau1 = 1, tau2 = 0.2) and initial conditions
% Delays
lags = [1, 0.2];
% Initial conditions
history = @(t) [1; 0]; % History function
  • Use dde23 to compute the solution over a specific time span
sol = dde23(@dde_system, lags, history, [0, 10]);
Refer to the following documentation for more information on "interp1" function:
Refer to the following documentation for more information on "dde23" function:
Hope this helps!

카테고리

Help CenterFile Exchange에서 Numerical Integration and Differential Equations에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by