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
    Nouveau Candidat au Club
    Systémé d'équations différentielles ordinaires
    Bonjour,
    Je suis débutant sur scilab, alors veuillez m'excuser si ma question va vous paraître stupide.
    Je sais qu'il est possible de résoudre des équations différentielles ordinaires sous scilab mais est-il possible pour autant de résoudre des systèmes d'équations différentielles ordinaires ? Et si oui, quelles commandes faut-il utiliser ?
    Merci de vos retours

  2. #2
    Membre averti
    Bonsoir,

    La commande ode() permet de résoudre des systèmes d'équations différentielles ordinaires.
    La syntaxe est :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    y=ode(y0,t0,t,f)


    où :

    - y0 est un vecteur (ou une matrice) qui contient les conditions initiales au temps t0
    - t est le vecteur qui contient les différentes valeurs du temps discrétisé
    - f est la fonction y' = f(t,y)
    - y est le vecteur (ou la matrice) contenant la solution

    Il faut au préalable définir le système d'équations différentielles avec function/endfunction.

    Ci-dessous comme exemple, la résolution du système d'équations de Lorenz, un système de 3 équations différentielles du premier ordre couplées :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    y0 = [1;1;1];
    t0 = 0;
    t = 0:0.1:20;
     
    function yprim=f(t,x)
       yprim(1) = 10*(x(2)-x(1));
       yprim(2) = 28*x(1)-x(1)*x(3)-x(2);
       yprim(3) = x(1)*x(2)-8*x(3)/3;
    endfunction
     
    y = ode(y0,t0,t,f);
    disp(y);