IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

[ode45] not enough input argument


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 15
    Points : 18
    Points
    18
    Par défaut [ode45] not enough input argument
    Bonjour tout le monde,

    Ce problème semble poser problème à pas mal de gens, mais je n'ai pas trouvé de solution à mon problème ailleurs sur le net.

    Je dois résoudre un système d'équation différentiel tout simple pour un projet en utilisant le solver ode45.

    J'ai essayer avec plusieurs exemples sur internet, mais j'ai à chaque fois le même problème...

    Voilà ce que je fais avec par exemple le modèle trouver sur ce site : http://www.mathworks.ch/ch/help/matlab/ref/ode45.html:
    - je met le code suivant dans un script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function dy = rigid(t,y)
    dy = zeros(3,1);
    dy(1) = y(2) * y(3);
    dy(2) = -y(1)*y(3);
    dy(3) = -0.51*y(1)*y(2);
     
    options = odeset('RelTol', 1e-4,'AbsTol', [1e-4 1e-4 1e-5]);
    [T,Y] = ode45(@rigid,[0 12],[0 1 1],options);
     
    plot(T,Y(:,1),'-',T,Y(:,2),'-.',T,Y(:,3),'.')
    -et quand je veux "run" mon script, le message d'erreur suivant s'affiche :
    Not enough input argument
    . Apparemment MATLAB attend que je lui donne des valeurs t et y pour la fonction rigid...

    Est-ce que quelqu'un pourrait me venir en aide?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    La fonction ode45 de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [T,Y] = ode45(@rigid,[0 12],[0 1 1],options);
     
    plot(T,Y(:,1),'-',T,Y(:,2),'-.',T,Y(:,3),'.')
    appelle ta fonction rigid, si tu mets ce code à l'intérieur, tu as un problème

    Il te faut séparer ces deux bouts de code, chacun dans un fichier/fonction distincts :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function dy = rigid(t,y)
    dy = zeros(3,1);
    dy(1) = y(2) * y(3);
    dy(2) = -y(1)*y(3);
    dy(3) = -0.51*y(1)*y(2);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    options = odeset('RelTol', 1e-4,'AbsTol', [1e-4 1e-4 1e-5]);
    [T,Y] = ode45(@rigid,[0 12],[0 1 1],options);
     
    plot(T,Y(:,1),'-',T,Y(:,2),'-.',T,Y(:,3),'.')

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] not enough input arguments
    Par el3oss dans le forum Signal
    Réponses: 1
    Dernier message: 16/04/2015, 13h37
  2. [QtGui] [QMessageBox] Not enough arguments
    Par aurelie.guegan.15 dans le forum PyQt
    Réponses: 11
    Dernier message: 04/09/2014, 12h13
  3. [Débutant] "Not enough input" - Fonction ne marche pas
    Par Hussam dans le forum MATLAB
    Réponses: 3
    Dernier message: 10/10/2012, 20h44
  4. Généricité des Input Arguments dans une fonction
    Par RaphTIM dans le forum MATLAB
    Réponses: 5
    Dernier message: 06/06/2007, 16h28
  5. [ORA-00371] Not enough shared pool memory !!!
    Par max44410 dans le forum Installation
    Réponses: 6
    Dernier message: 30/11/2005, 19h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo