Azzera filtri
Azzera filtri

Solving non linear delay differential equations with dde23

11 visualizzazioni (ultimi 30 giorni)
i'm working on a delay differential equation that looks like this: f(y,z,y',z')(t)=a(y,z)(t)+b(y,z)(t-tau) g(y,z,y',z')(t)=c(y,z)(t)+d(y,z)(t-tau) The problem is, in MATLAB, dde23 only solves DDE when the differential terms are isolated (y'=F(t,y,ydel,z,zdel) , z'=G(t,y,ydel,z,zdel)).
Do you know if there's a way to work around it (or perhaps another available tool)? I've tried ddnsd assuming a null delay for delayed differential term but it only accepts non zero delays). Also trying to isolate y' and z' has revealed useless. Thank you

Risposta accettata

Torsten
Torsten il 23 Apr 2015
Just solve the system
f(y,z,y',z')(t)=a(y,z)(t)+b(y,z)(t-tau) g(y,z,y',z')(t)=c(y,z)(t)+d(y,z)(t-tau)
for y',z' (two nonlinear equations in the unknowns y' and z').
A possible tool is MATLAB's fsolve.
Best wishes
Torsten.
  2 Commenti
Jacobo Levy Abitbol
Jacobo Levy Abitbol il 23 Apr 2015
Thank you for your quick answer, but wouldn't fsolve try to approximate y' and z'? (and therefore when there's an equilibrium in the system, it won't be able to represent the dynamical state of the system)
Torsten
Torsten il 23 Apr 2015
If
f(y,z,y',z')= y'^2+sin(z')
g(y,z,y',z')=log(y')+atan(z')
e.g., fsolve will numerically solve the system
y'^2+sin(z')=a(y,z)(t)+b(y,z)(t-tau)
log(y')+atan(z')=c(y,z)(t)+d(y,z)(t-tau)
for y',z' if you declare y' and z' as the unknowns (all other variables are given).
And this s exactly what is needed for dde23 to work.
Best wishes
Torsten.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by