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 :
Citation Envoyé par rostomus Voir le message
-Question: Comment utiliser les fonctions "ode" pour résoudre des équations différentielles?
-Réponse:
(...) Pour résoudre un systeme d'équations differentielles, vous devez créer une fonction m.file (...). Par exemple si on veut résoudre le systeme:


On crée la fonction suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
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),'.')
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 !
  1. J'ouvre un nouveau fichier M-file que j'enregistre sous "rigid.m".
  2. 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),'.')
  3. Je retourne dans la fenêtre de commande et j'y entre :
    >> rigid
    (NB : je peux également cliquer sur l'icône "Run" de l'éditeur, les conséquences sont les mêmes.)
  4. 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