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 :

Resolution d'équa diff par RK4


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Resolution d'équa diff par RK4
    Bonjour,

    Je suis étudiante en licence de physique , et débutante avec Matlab.

    Le problème que j'ai à résoudre porte sur la résolution d'équation différentielle du couplage de 2 circuits RLC par condensateur sur Matlab par la méthode de Runge Kutta d'orde 4.

    Voici à quoi ressemble le montage, l'énoncé et les équas diff de ce sujet : http://subaru2.univ-lemans.fr/enseig.../coupcond.html

    Voici ensuite mon programme de résolution :

    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
     A=2e-7;      %(avec A=L*C1)
    B=2e-6;%      ( B=R*C1)
    C=1.04;      %( C=1+C1/C0)
    D=0.04; %( D=C1/C0)
    E=0.14;%      (E=C1/C2 + C1/C0)
    dt=0.1;
    t=0:dt:10;
    n=length(t);
     
    %Conditions initiales
     
    q1=1e-5;      %(q1 correspond à la charge de C1)
    q2=0;           %(q2 la charge de C2)
    q3=50e-3;     %(q3 correspond à dq1/dt,donc à I1)
    q4=0;            %(q4 à dq2/dt, c'est I2)
     
    q(:,1)=[q1 q2 q3 q4]';
    matrice=[0 0 1 0 ;
        0 0 0 1 ;
        (-C/A) D (-B/A) 0 ;
        (D/A) (-E/A) 0 (-B/A)]
     
    %Résolution par RK4
     
    for i=1:n-1<div style="margin-left:40px">     K1=dt*fonc(q(:,i),matrice);
        K2=dt*fonc(q(:,i)+K1/2,matrice);
        K3=dt*fonc(q(:,i)+K2/2,matrice);
        K4=dt*fonc(q(:,i)+K3,matrice);
     
        q(:,i+1)=q(:,i)+(1/6)*(K1+2*K2+2*K3+K4);
     
        t(i+1)=i*dt;</div>end
     
    plot(t,q(1:2,:))   %(Je cherche a tracer I1 et I2 en fonction de t)
    Et pour finir, voici ma fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     function f=fonc(q,matrice);
    f=matrice*q
    Le problème est que ce programme ne marche pas. J'obtiens des valeurs hallucinantes dans la boucle, qui vont jusqu'a du e+302 pour les composantes de ma fonction, qui finit par m'afficher Not A Number à la fin! Sans parler du graphe qui ne ressemble pas....à celui d'un circuit RLC!


    Si quelqu'un pouvait m'aider...Très franchement, ça ne serait pas de refus, car pour le moment je patauge lamentablement!

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut !

    Il est très vraisemblable que tu as pris un pas dt trop grand. Essaie avec un pas plus petit et dis-nous si ça va moins mal.

    Jean-Marc Blanc

Discussions similaires

  1. Résolution d'un système d'ODE (équa. diff)
    Par prog_ dans le forum MATLAB
    Réponses: 1
    Dernier message: 31/10/2010, 14h26
  2. Petits soucis avec Matlab (équa diff, bessel)
    Par adri010 dans le forum MATLAB
    Réponses: 0
    Dernier message: 14/05/2010, 15h30
  3. un controle text avec bkgrnd diff par ligne
    Par hpfx dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 23/02/2008, 18h14
  4. [VBA]Intégrer des équa. diff. par méthode d'Euler
    Par bibinou_fr dans le forum Excel
    Réponses: 2
    Dernier message: 06/05/2007, 15h24
  5. solver équa diff
    Par jayjay.f dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 07/01/2007, 19h34

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