Etude d'équations différentielles sous scilab

Bonjour,
J'ai un projet a faire qui consiste a étudier des équations différentielles avec scilab? Je suis bloqué pour cette étude, j'arrive à tracer l'allure de la courbe qui correspond à l'équation. Maintenant je ne sais comment faire, car le calcul analytique des équations ne sont pas possible.
Voici mon code :
clear
a=0;
b=2;
h=0.1;
N=(b-a)/h;

t(1)=1;
x(1)=1;
for n=2:N
t(n)=t(n-1)+h;
x(n)=x(n-1)+h*(a*x(n-1)-b*t(n-1)+x(n-1)^3*sin(x(n-1)));
end
//allure de l'équation différentielle
plot(t,x)

Merci d'avance pour me faire parvenir vos idées

2 réponses

  1. Modérateur
    Quelles sont les informations que tu voudrais obtenir de ça ?
    Une fois que tu as tracé la courbe c'est facile d'observer sa forme.

    Ce qui est intéressant à observer avec ce genre de courbes c'est l'influence des paramètres, c'est à dire tracer plusieurs courbes en faisant varier a et/ou b, pour trouver des comportements limites.

    Exemple :
    for a=0:0.05:0.5 
    for b=0:1:5
    h=0.01
    N=3/h
    La confiance n'exclut pas le contrôle
    0
    1. Merci pour ces informations.
      En fait on n'a pas de sujet précis, on nous a seulement demandé d'étudier le comportement de ces équations différentielles.
      Après avoir tracer l'allure de la courbe je ne savais comment approfondir mon étude.
      Ayant remarqué qu'on ne pouvait pas avoir de solution analytique... On ne pouvait pas non plus tracer l'erreur relative. Donc je ne savais pas comment etudier mes équations. Vous êtes d'accord qu'on ne peut trouver de solution analytique à cet équation?
      L'idée des changements de paramètres est trés bien. Merci encore .
      0
      1. Modérateur
        Je ne suis pas suffisamment caler en analyse pour affirmer que cette équation différentielle est absolument impossible à étudier, il est peut-être possible d'en tirer quelque chose mathématiquement...
        Au niveau des erreurs ça se voit assez bien, dès que tu commences à osciller c'est que tu as un problème avec ton pas h. Quand tu met h=0.1 c'est beaucoup trop grand, moi j'ai mis 0.01 ça permet de calculer rapidement avec des résultats corrects, mais l'idéal serait quand même 0.001.
        0
      2. Ok. Merci.
        En faisant varier les paramètres je me retrouve avec une courbe qui ressemble vaguement à une fonction sinus.
        0
      3. Modérateur
        Si tu obtiens une fonction périodique c'est que h est trop grand, il faut le diminuer.
        Moi j'obtient des fonctions qui converge (vers +3 ou -6 selon les valeurs de a et b)

        for b=-2:7 
          for a=0:0.05:0.5  
             
            h=0.001; 
            N=3/h; 
             
            t(1)=1;  
            x(1)=1;  
             
            for n=2:N  
              t(n)=t(n-1)+h;  
              x(n)=x(n-1)+h*(a*x(n-1)-b*t(n-1)+x(n-1)^3*sin(x(n-1)));  
            end 
             
            plot(t,x) 
          end 
        end
        0
      4. ah oui en effet je vois
        comment se fait -il que les courbes se multiplie comme ça?
        0
      5. Modérateur
        C'est parce que les courbes avec les différents paramètres se superposent.
        Ici il y a 9 valeurs de b, et 11 valeurs de a, et donc 99 courbes en même temps.
        0