Etude d'équations différentielles sous scilab

Marion1232 Messages postés 20 Statut Membre -  
Marion1232 Messages postés 20 Statut Membre -
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

A voir également:

2 réponses

KX Messages postés 19031 Statut Modérateur 3 020
 
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
Marion1232 Messages postés 20 Statut Membre
 
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
KX Messages postés 19031 Statut Modérateur 3 020
 
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
Marion1232 Messages postés 20 Statut Membre
 
Ok. Merci.
En faisant varier les paramètres je me retrouve avec une courbe qui ressemble vaguement à une fonction sinus.
0
KX Messages postés 19031 Statut Modérateur 3 020
 
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
Marion1232 Messages postés 20 Statut Membre
 
ah oui en effet je vois
comment se fait -il que les courbes se multiplie comme ça?
0
KX Messages postés 19031 Statut Modérateur 3 020
 
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