Bonjour,
Je souhaite résoudre une ODE sous MATLAB 7.1.0.246 (R14) Service Pack 3. Après quelques essais infructueux (message d'erreur = "??? Input argument "y" is undefined."), j'ai parcouru l'aide, les FAQ et autres post, en vain.
J'ai donc simplement testé l'exemple de l'aide que cite Rostomus :
J'obtiens le même message d'erreur que précédemment, donc ma méthode ne doit pas être la bonne. Je vais donc vous présenter ma démarche.
Merci de me corriger !
- J'ouvre un nouveau fichier M-file que j'enregistre sous "rigid.m".
- J'y copie le code suivant (et j'enregistre) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function dy = rigid(t,y) dy = zeros(3,1); % a column vector dy(1) = y(2) * y(3); dy(2) = -y(1) * y(3); dy(3) = -0.51 * y(1) * y(2); [T,Y] = ode45(@rigid,[0 12],[0 1 1]); plot(T,Y(:,1),'-',T,Y(:,2),'-.',T,Y(:,3),'.')- Je retourne dans la fenêtre de commande et j'y entre :
(NB : je peux également cliquer sur l'icône "Run" de l'éditeur, les conséquences sont les mêmes.)>> rigid- J'obtiens invariablement le message d'erreur suivant :
??? Input argument "y" is undefined.
Error in ==> rigid at 3
dy(1) = y(2) * y(3);
Je ne comprends pas bien ce qui se passe. Est-ce un problème de définition du type de variable pour y (vecteur col?), d'utilisation de la fonction dans un Mfile?
Si je n'ai pas été clair ou s'il manque des infos, n'hésitez pas à demander des précisions.
Merci de m'aider.
Arnaud
Partager