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] ordre des équations


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Mat32
    Inscrit en
    Août 2009
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 243
    Par défaut [ode45] ordre des équations
    Hello,

    Quelqu'un pourrait-il me renseigner sur la fonction ode45 ?
    La réponse que me donne ode45 pour le système d'équations différentielles suivant est différente selon l'ordre des équations dy(...) = ... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function dy = dABPQ(t,y,p)
    dy = zeros(5,1);
     
    if t>p.tdos;
       F=0;
    else
       F=p.F;
    end
     
    dy(1) = F; 
    dy(2) = -p.k1*y(2)*y(3) -p.k2*y(2)*y(3) -y(2)/y(1)*dy(1)                  ;
    dy(3) = -p.k1*y(2)*y(3) -p.k2*y(2)*y(3) -y(3)/y(1)*dy(1) +p.Bini/y(1)*F   ;
    dy(4) =  p.k1*y(2)*y(3)                 -y(4)/y(1)*dy(1)                  ;
    dy(5) =                  p.k2*y(2)*y(3) -y(5)/y(1)*dy(1)                  ;
     
     
    end
    la réponse si dy(1) = F est déplacé à la fin, et donc devient dy(5), est différente

    Pour le contexte il s'agit de deux réactions parallèles et dy(1), y(1) sont respectivement la variation de volume et le volume.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    salut, non

    tu peux très bien écrire dy(1) = F et dy(5) = qqch ou bien dy(5) = qqch puis dy(1) = F. L'ordre n'a AUCUNE importance. Ce qui est TRES important, ce sont les indices (1 et 5 dans l'exemple)

  3. #3
    Membre confirmé Avatar de Mat32
    Inscrit en
    Août 2009
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 243
    Par défaut
    Alors essaie, je te promet que l'ordre change la réponse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function dy = dABPQ(t,y,p)
    dy = zeros(5,1);
     
    if t > p.tdos;
       F = 0;
    else
       F = p.F;
    end
     
     
    dy(2) = -p.k1*y(2)*y(3)^p.nb1 -p.k2*y(2)*y(3)^p.nb2 -y(2)/y(1)*dy(1)                  ;
    dy(3) = -p.k1*y(2)*y(3)^p.nb1 -p.k2*y(2)*y(3)^p.nb2 -y(3)/y(1)*dy(1) +p.Bini/y(1)*F   ;
    dy(4) =  p.k1*y(2)*y(3)^p.nb1                       -y(4)/y(1)*dy(1)                  ;
    dy(5) =                        p.k2*y(2)*y(3)^p.nb2 -y(5)/y(1)*dy(1)                  ;
    dy(1) = F     ;                        
     
    end
    Ce code ne donne pas la même réponse.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    Je mientiens ce que je dis

    maintenant, dans ton code c'est normal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    dy(5) =                        p.k2*y(2)*y(3)^p.nb2 -y(5)/y(1)*dy(1)                  ;
    dy(1) = F
    ici, dans le dy(5), ton dy(1) vaut 0

    ce qui explique pourquoi tu n'as pas la même réponse

Discussions similaires

  1. [ode45] Résoudre une équation seconde ordre
    Par nidjzaf dans le forum MATLAB
    Réponses: 7
    Dernier message: 05/04/2009, 20h34
  2. Modifier l'ordre des Fields d'un dataset
    Par teska dans le forum Bases de données
    Réponses: 3
    Dernier message: 22/03/2004, 16h38
  3. Modifier l'ordre des cartes son
    Par YéTeeh dans le forum Matériel
    Réponses: 3
    Dernier message: 19/08/2003, 01h13
  4. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53
  5. Question : ordre des bits ?
    Par Choupi dans le forum C
    Réponses: 3
    Dernier message: 11/02/2003, 06h22

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