Bonjour à tous
J'aimerais créer une fonction matlab pour intégrer une ODE qui prend en compte un time-delay un des processus.
voici par exemple un type de fonction avec delay que j'aimerais résoudre :
dA/dt = mu.A - f(At-d).At-d
Je sais résoudre une equation sans time delay :
dA/dt = mu.A - m.A
Pour ce faire je fais :
Puis j'intègre Myfct dans Matlab avec une méthode d'intégration classique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function dx=Myfct(t,x, par) dx=zeros(1,1); A=x(1,:); mu = par(1); %taux de croissance m = par(2); %taux de mortalité dx(1) = mu*A - m*A; end
J'obtiens un jolie plot et je suis content
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 tps = 0:1:10; A0 = 1; mu = 0.7; m = 0.01; par = [mu m]; [t x] = ode45(@(t,x)Myfct(t,x,par),tps,A0); A = x(:,1); plot(t,A,'k.')
Mais je n'ai aucune idée de comment faire pour introduire mon time-delay et l'intégré ... Avez-vous des suggestions ?
Merci beaucoup pour votre aide
DJ
Partager