-
05/01/2008 - 21h49 ti_ouf
Matlab et les ode
bonjour à tous
j'aimerais tester la methode de résolutiond es ode avec la commande ode23 ou ode45, mais sans succes!
je 'narrive pas d'avoir des erreurs !!!arfff
même lorsque je copie un exemple donné dans des tutos j'ai des erreurs çà commence à bien faire grrrrr!
si quelqu'un peut m'aide parce que la je planche à fond 
voilà, j'ai ma fonction dans un fichier distinct :
function ff= kutta(t,y)
ff= -0.1*(y-10);
end
et ensuite dans un autre fichier j'ai ceci :
tinitial=0;
tfinal=60;
yinitial=100;
[t y]=ode45(kutta,[tinitial tfinal],yinitial);
plot(t,y)
mais j'ai droit à ces message d'erreur :
??? Input argument "y" is undefined.
Error in ==> kutta at 2
ff= -0.1*(y-10);
Error in ==> trace at 5
[t y]=ode45(kutta,[tinitial tfinal],yinitial);
je sais bien que y n'est pas définis, c'est justement pour çà que j'aimerais le définir -
06/01/2008 - 01h49 jarmee
Re : Matlab et les ode
Bonjour ti_ouf
je crois que tu te trompe dans une command de
"
[t y]=ode45(kutta,[tinitial tfinal],yinitial);
"
à kutta ; tu essaie de taper soit @kutta ; soit 'kutta'
sinon tu peux regarder dans le "help" par taper help ode45
Bon continu alors -
06/01/2008 - 12h13 ti_ouf
Re : Matlab et les ode
visiblement un problème de version, entre la 4 et la 6.
en version 6, on tappe effectivement le prefixe @ pour l'appel de la fonction.
un truc qui me chagrine,c'est que le tracé ne me donne pas une solution satisfaisante, j'ai fait plusieurs methodes (*3), la premiere en traçant tout simplement ma solution annalytique, que j'ai trouvé (sur papier), l'autre en utilisant la methode de résolution d'euler (sous matlab), et pour finir la commande ode45 (donc celle de kunge et kutta), les 2 premiers tracés coincide, le dernier pas du tout ...
une idée
-
06/01/2008 - 12h20 ti_ouf
Re : Matlab et les ode
voilà mon tracé :
la courbe exponentiel, magenta, correspond aux deux premier tracé, qui se superposent,
le dernier en bleu est le tracé de la derniere methode avec ode45, une droite affine... -
06/01/2008 - 17h46 ti_ouf
Re : Matlab et les ode
un autre exemple que j'essaie de faire.
j'ai réussis à trouver quelque chose, en prenant le carré de la vitesse concernant l'equa diff suivante :
Mais j'ai vraiment du mal dans la methode de résolution sous matlab !!!
j'utilise la methode d'euler ou je crée une boucle afinc d'affiner le plus possible le pas d'iteration, mais pour la methode ode23 ou ode45, j'avoue que çà donne rien, enfin, si je trace les deux courbes, je tombe pour euler sur un tracé correcte, mais pour ode23, je trouve une droite tengente à la courbe d'euler.
euler etant sur un intervalle de [0,10] une courbe exponentielle, alors qu'ode est une droite ...
mon soucis concernant l'intervalle, les deux methode sont dans le même intervalle, mais celle d'euler, étant iterative, à beacoup plus de point dans son intervalle, alors que la methode ode23 n'a pas de pas donc je ne sais pas combien elle en prend.
tout çà parce que si j'augmente l'intervalle pour la methode ode45, je retrouve une courbe exponentielle, mais en contre partie, ma courbe d'euler est dans les choux, elle est bien sur dépassé par cet intervalle ... -
07/01/2008 - 01h09 jarmee
Re : Matlab et les ode
salut encore ti_ouf
oui, ce que tu comprendre ;c'est exact!!! quand tu augmente la nombre d'inteval , ton résultat devient plus précis , comme l'image au dessous 
à gauche c'est avec inteval 10 et celle de droite n_inteval 50
on peut s'apercevoit que plus de nombre d'inteval augmente , plus la courbe est bien précis
; je te demande aussi , avec ta prémière photo , est ce que c'est normal que ,selon l'équation, la pente augmente de façon exponentielle positive tandis que ton équation est négative!!!!
j'ai un site-web intéressant où tu peux chercher info supplimentaire http://gershwin.ens.fr/vdaniel/Doc-L...cviewdeqn.html
ce lien explique bien l'ODE, tu trouvera la solution pour ton ODE45
Bon courage
Dernière modification par jarmee ; 07/01/2008 à 01h13.
| | |