Etude d'équations différentielles sous scilab

Fermé
Marion1232 Messages postés 17 Date d'inscription dimanche 26 décembre 2010 Statut Membre Dernière intervention 18 décembre 2011 - 17 déc. 2011 à 18:05
Marion1232 Messages postés 17 Date d'inscription dimanche 26 décembre 2010 Statut Membre Dernière intervention 18 décembre 2011 - 17 déc. 2011 à 22:11
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

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
Modifié par KX le 17/12/2011 à 19:02
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 17 Date d'inscription dimanche 26 décembre 2010 Statut Membre Dernière intervention 18 décembre 2011
17 déc. 2011 à 19:30
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
17 déc. 2011 à 19:45
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 17 Date d'inscription dimanche 26 décembre 2010 Statut Membre Dernière intervention 18 décembre 2011
17 déc. 2011 à 19:57
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
Modifié par KX le 17/12/2011 à 20:19
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 17 Date d'inscription dimanche 26 décembre 2010 Statut Membre Dernière intervention 18 décembre 2011
17 déc. 2011 à 20:59
ah oui en effet je vois
comment se fait -il que les courbes se multiplie comme ça?
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
17 déc. 2011 à 21:08
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