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 :

Equations différentielles


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Points : 24
    Points
    24
    Par défaut Equations différentielles
    Bonsoir à tous,

    J'aimerais réussir obtenir l'intégrale d'une fonction en utilisant des equations différentielles


    Voici ma fonction : y=d*(e*(f*1000-(g./x))-h)./(h+(g./x)
    d,e,f,g,h étant des paramètre qui sont défini en début de programme
    x étant la variable (y en fonction de x)

    Et je sais que en x0 , y0 = 0

    Malheureusement , je n'y arrive pas vraiment :s

    Pourriez vous me donnez un petit coup de main ?

    Merci!

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    Salut, tu as déjà eu une réponse pour ce sujet... Pas besoin de créer 2 post identiques...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Simple remarque , les messages ne sont pas les mêmes.

    J'ai laisser tombé la méthode d'euler pour virer vers une méthode quelconque.

    J'y suis contraint vu que je n'ai pas eu de réponse à mon premier post.

    La "réponse" que j'ai reçu sur l'autre topic n'en est pas une vu qu'elle ne répond à rien.

    Merci de ta lecture !

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    C'est sur que changer 3 mots dans un sujet, ca va pas te faire avancer des masses. Et j'écris à nouveau la même réponse qui en est bien une. Tant que tu ne montres pas ce que tu as déjà codé et où se situent les problèmes, nous ne pourront pas t'aider réellement.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Excuse moi si j'ai eu l'air agressif ou quoi que ce soit d'autre , tu as l'air de bonne volonté désolé

    Je vais t'envoyer mon code en message privé .

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    Pas de souci...

    Pour ton code, met le directement à la suite de cette discussion. D'autres personnes pourront t'aider et ce sujet pourra aider d'autres personnes par recherche.

    edit : regarde aussi cette discussion, ca pourrait t'aider...
    Euler

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Merci beaucoup de ton aide

    Je me suis basé sur ce code
    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
    31
    32
    33
    34
    35
    V(1)=0;
    dy=0.2;
     
    C1=0.71;
    C5=26;
    a=1/C1;
     
    y=0:dy:200;
     
    for i=1:length(y)-1
     
        if y(i)<=20
     
            C2=0.033;
            C3=1;
            C4=16;
     
        elseif y(i)>20
     
            C2=0.214;
            C3=0.5;
            C4=720;
     
        end
     
        b=C2*y(i)^(2*C3);
        c=exp((-y(i)/C4));
        d=(1-exp(-y(i)/C5));
        e=1/(b*c*d);
     
        dV(i)=(1/(a+e))*dy;
        V(i+1)=V(i)+dV(i);
    end
     
    plot(y,V)
    Que tu as publié sur ce lien

    Mon équation étant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g*(V*(RhoAmb*1000-(v2./T))-v1)./(v1+(v2./T))
    Je change le tout en le transformant en :
    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
    Cx=0.43;                     %Coefficient de trainée pour un objet sphérique (adimensionnel)
    R=0.85;                      %Rayon (m)
    RhoAmb=1.2;                  %Masse volumique de l'air ambiant (kg/m³)
    V=4.665*(R.^3);              %Volume que renferme l'enveloppe de la motngolfière (m³)
    S=13.54*(R.^2);              %Surface occupée par l'enveloppe (m²)
    Sperp=pi*(R.^2);             %Surface du dessus de la montgolfière projeté perpendiculairement (m²)
    P=101325;      %A revoir     %Pression (Pa)
    me=314.8;                    %Masse de l'enveloppe (g)
    ma=50;         %A revoir     %Masse appareil photo (g)
    mc=36.9;       %A revoir     %Masse combustible (g)
    mx=0;          %A revoir     %Toute charge supplémentaire (g)
    mt=me+ma+mx+mc;              %Masse totale (g) 
    Mair=28.9653;                %Masse molaire de l'air (g/mol)
    g=9.81;                      %Constante gravitationelle de la terre (m/s²)
    c=8.314; 
    v1=me+ma+mx;
    v2=P*Mair/c;
     
    V(1)=0;
    dy=0.2  
    y=273:dy:373;
     
    for i=1:length(y)-1     
     
        y1(i)=g*(V*(RhoAmb*1000-(v2./y(i)))-v1)./(v1+(v2./y(i)));
        V(i+1)=V(i)+y1(i)*dy;
    end
    plot(y,V)
    Je l'execute mais malheureusement cela me donne cette erreur ?:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ???  In an assignment  A(I) = B, the number of elements in B and
     I must be the same.
     
    Error in ==> Untitled at 25
        y1(i)=g*(V*(RhoAmb*1000-(v2./y(i)))-v1)./(v1+(v2./y(i)));
    Pourquoi?

    (Merci encore ! )

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    Salut,

    Voilà, c'est ce que je voulais que tu regardes

    Tu as juste une erreur dans le code puisque tu utilises le vecteur V au lieu d'utiliser la valeur de V à l'ittération i.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    y1(i)=g*(V*(RhoAmb*1000-(v2./y(i)))-v1)./(v1+(v2./y(i)));
    devient donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    y1(i)=g*(V(i)*(RhoAmb*1000-(v2./y(i)))-v1)./(v1+(v2./y(i)));
    Du coup, la première ittération utilise ton initialisation V(1)=0 alors qu'avant, tu ne l'utilisais pas.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Euh... il y a un soucis la car ma V est un parametre défini en début , c'est une valeur qui vaut plus ou moins 2.85m³ :s


    En fait je me suis baser sur ce code plutot :
    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
    V(1)=0;
    dy=0.2
    y=0:dy:200;
     
    for i=1:length(y)-1
     
        if y(i)<=20
     
            c1=0.71;
            c2=0.033;
            c3=1;
            c4=16;
            c5=26;
        elseif y(i)>20
            c1=0.71;
            c2=0.214;
            c3=0.5;
            c4=720;
            c5=26;
     
     
        end
     
        y1(i)=1/((1/c1)+1/(c2*y(i)^(2*c3)*exp(-y(i)/c4)*(1-exp(-y(i)/c5))));
     
     
        V(i+1)=V(i)+y1(i)*dy;
    end
    plot(y,V)
    _____________
    Edit
    J'ai trouvé !

    Le v faisait interférence
    Tout marche comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    elseif choix==9
     
        u(1)=0;
    dy=0.2
    y=273:dy:373;
     
    for i=1:length(y)-1
     
        y1(i)=g*(V*(RhoAmb*1000-(v2./y(i)))-v1)./(v1+(v2./y(i)));
        u(i+1)=u(i)+y1(i)*dy;
    end
    plot(y,u)

    Merci beaucoup !<3

    _______________

    Edit 2

    J'ai encore deux petit soucis

    Premièrement , je ne parviens plus a ajouter xlabel , ylabel et title pour le graphique , j'ai beau l'incorporer dans le code , cela n'indique pas les informations demandées :s

    Deuxièmement , mon graphique ne correspond pas du tout a ce qu'il devrait
    En fait , la fonction obtenue est complètement improbable
    J'obtiens une fonction qui part d'en haut , qui descends et puis qui remonte (style x²)
    C'est impossible , car en fait mon premier graphique est l'accélération que possède une montgolfière on fonction de la température de l'air chaud quelle contient
    Si l'on integre on obtient la vitesse en fonction de la t°
    Or cela me donne un graphique de ce type :



    La droite est bleu et j'ai corrigé a la main ce que je pense que j'aurais du obtenir :s

    (La temperature est en kelvin)
    Ou est l'erreur ?

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Désolé , c'est une erreur de ma part , le post est fini ! [Résolu]
    Merci beaucoup a vous tous ! (BIG UP A MEREL )

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

Discussions similaires

  1. Equation différentielle
    Par samwe dans le forum Fortran
    Réponses: 5
    Dernier message: 03/02/2009, 18h12
  2. Equation différentielle non lineaire
    Par polal2is dans le forum MATLAB
    Réponses: 7
    Dernier message: 04/12/2008, 17h41
  3. comment trouvé les racines d'une equation différentielle
    Par samplaid dans le forum Mathématiques
    Réponses: 4
    Dernier message: 05/11/2007, 16h53
  4. Equation différentielle du second ordre
    Par moustiqu3 dans le forum MATLAB
    Réponses: 1
    Dernier message: 21/05/2007, 09h38

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