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

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    janvier 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2020
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Problème Résolution système équation différentiel en utilisant ODE45
    Bonsoir à tous,
    je souhaiterais résoudre sur Matlab ce système d'équation :

    Nom : image.jpg
Affichages : 24
Taille : 21,1 Ko

    J'ai essayé le code ci dessous :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    function ypoint = ab(t,y) 
    global mumax1 mumax2 ks1 ks2 ki2 k1 k2 k3 k4 
    ypoint(1) = (mumax1*y(3)*y(1)/(y(3)+ ks1)); 
    ypoint(3) = -k1*(mumax1*y(3)*y(1)/(y(3)+ks1));
    ypoint(2) = (mumax2*y(4)*y(2)/(y(4)+ks2+(y(4)^2/ki2)))
    ypoint(4) = k2*(mummax1*y(3)*y(1)/(y(3)+ks1))-k3*(mumax2*y(4)*y(2)/(y(4)+ks2+(y(4)^2/ki2)));
    ypoint(5)  = k4*(mumax2*y(4)*Y(2)/(y(4)+ks2+(y(4)^2/ki2)));
    ypoint = ypoint(:);
    end
     
    global mumax1 mumax2 ks1 ks2 ki2 k1 k2 k3 k4 q
     mumax1=0.4; mumax2= 0.4; ks1= 35; ks2=4; ki2= 170; k1= 50; k2= 50; k3= 15 k4= 75;% paramètres
    tfinal= 100; % temps final
    y01= 0.4; y02= 0.01; y03= 10; y04= 2; y05= 0;% conditions initiales
    [t,y]= ode45('ab',[0 tfinal],[y01 y02 y03 y04 y05])% résolution
    y1 = y(:,1);%extractions de Y1 Y2 Y3 Y4 et y5 
    y2 = y(:,2);
    y3 = y(:,3);
    y4 = y(:,4);
    y5 = y(:,5);
    q = k4*(mummax2*y4*y2/(y4+ks2+(y4^2/ki2)));
    plot(t,y1,'r') % y1 fonction de temps
    plot(t,y2,'g') % y2 fonction de temps
    plot(t,y3,'o') % y3 fonction de temps
    plot(t,y4,'a') % y4 fonction de temps
    plot(t,y1,t,y2,t,y3,t,y4)% y4 fonvtion de temps
    plot(t,y5)% y4 fonvtion de temps
    plot(t,q,'z');
    plot(t,y5,'r',t,q,'p');
    Mais je recois cette erreur :

    >>Untitled2
    Error : File : Untitled2.m Line : 10 column : 1
    This statement is not inside any function.
    (It follows the END that terminates the definition of the function "ab".)


    Pouvez vous m'aider svp

  2. #2
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2019
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : juin 2019
    Messages : 53
    Points : 178
    Points
    178
    Par défaut
    Bonjour,

    La définition de la fonction ab doit se trouver à la fin du script, et non au début.
    Si tu n'es pas familier de la fonction ode45, je te conseille de commencer par tenter de résoudre une EDO plus simple, voire de te baser sur un example publié par Mathworks. e.g. https://fr.mathworks.com/help/matlab/ref/ode45.html
    Note par ailleurs qu'il serait préférable d'éviter les variables globales. Mathworks propose diverses manière de procéder : https://fr.mathworks.com/help/matlab...5.html#bu3uhuk

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/07/2017, 16h38
  2. [Débutant] ode45 et résolution des équations différentielles
    Par Arbia1 dans le forum MATLAB
    Réponses: 0
    Dernier message: 31/05/2017, 12h54
  3. Résolution d'équation différentielle avec ode45
    Par zed793 dans le forum MATLAB
    Réponses: 2
    Dernier message: 12/05/2009, 14h58
  4. Réponses: 2
    Dernier message: 05/05/2007, 19h22

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