Bonjour,
J'ai un systeme différentielle a résoudre avec la fonction ode45.
Dans mon programme principale, j'écris:
[t,y] = ode45('m_p',[0 tmax],[Ro1; 0]);
Et dans mon fichier m_p.m je résouds le système :
function dy = m_p(t,y)
dy = [ y(2) ; fonctioncompliquée(y(1),y(2)) ]
Dans le fichier principale, je peux alors tracé la solution:
plot(t,y(:,1)) ou plot(t,y(:,2))
Jusque la tout va très bien, et la solution me semble correcte.
Le probleme, c'est que j'aimerais ensuite calculé une autre fonction qui depend de y(1), y(2) et de la solution dy(2).
J'écris la formule dans le fichier m_p.m :
p = fonctioncompliquéebis(y(1), y(2),dy(2))
Et quand je fais plot(p) ou plot(t,p), dans le fichier principale ou le fichier m_p.m, il ne m'affiche que la derniere valeur calculée.
J'ai pourtant vérifié sur la fenetre principale, toute les valeurs sont bien calculées.
Je me suis dit c'est logique a chaque pas de temps l'ancienne valeur est effacée par la nouvelle.
J'ai donc essayé d'initialiser p comme un vecteur, mais cela ne change rien.
Je ne sais pas comment faire ma boucle, puisque celle-ci est implicite dans la fonction ode45.
Merci pour votre aide et d'avoir pris le temps de me lire.
-----