Resolution systeme equation differentielle

cs_ANAISE Messages postés 1 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2006 - 29 mai 2006 à 21:59
JnBiz Messages postés 18 Date d'inscription mardi 18 avril 2006 Statut Membre Dernière intervention 30 mai 2006 - 30 mai 2006 à 20:05
Bonjour,

J'ai un petit probleme, je cherche a résoudre un systeme à 3 equations différentielles couplées entre elles, Le système d'equation est le suivant

(diff(x1(t), t, t))+c*(diff(x1(t), t))+f*(x1(t)-x2(t)) = 0 (1)
diff(x2(t),t,t)+c*diff(x2(t),t)+f*(2*x2(t)-x3(t)-x1(t))=0 (2)
diff(x3(t),t,t)+c*diff(x3(t),t)+f*(x3(t)-x2(t))-e*sin(w*t)=0 (3)

je recherche à avoir les valeurs de x1, x2 et x3 en fonction de t

c,d,e,w et f sont des constantes
comme condition initiale au probleme, on peut prendre ce que l'on veut:
par exemple x1(0)=x2(0)=x3(0)=0 et les derivées premieres de x1 x2 et x3 sont nulles

de plus je doit tracer les courbes x1 en fonction de t idem pour x2 et x3

Le programme en maple que j'ai fait et le suivant :

restart;
C := 1;
F := 10;
w := 10;
E := 14;
equ1 :(diff(x1(t), t, t))+C*(diff(x1(t), t))+F*(x1(t)-x2(t)) 0; equ2 :(diff(x2(t), t, t))+2*C*(diff(x2(t), t))+F*(2*x2(t)-x3(t)-x1(t)) 0; equ3 :diff(x3(t), t, t)+C*(diff(x3(t), t))+F*(x3(t)-x2(t))-E*sin(w*t) 0;
init1 :x1(0) 0, (D(x1))(0) = 0; init2 :x2(0) 0, (D(x2))(0) = 0; init3 :x3(0) 12, (D(x3))(0) = 0;
sol :dsolve({init3, equ1, equ3, init1, init2, equ2}, numeric, method rkf45);

sol(12);

position1:= u->subs(sol(u),x1(t));
plot (position1, 100.0..140.0);

position2:= v->subs(sol(v),x2(t));
plot (position2, 100.0..140.0);

position3:= z->subs(sol(z),x3(t));
plot (position3, 100.0..140.0);

Voila mon probleme, j'obtient une solution qui est fausse car en réalité pour des t grands la courbe devrait tendre vers 0 (j'en suis sure)

Pourriez vous svp m'aider

d'avance merci

2 réponses

yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017
30 mai 2006 à 11:17
t grand c'est à dir 1 est grand devant 1e-6
1e6 est petit devant 1e100

Voir dans les différente méthode de résolution


 


regarde avec  SCILAB sur le site de http://www.scilab.org/
yvessimon
0
JnBiz Messages postés 18 Date d'inscription mardi 18 avril 2006 Statut Membre Dernière intervention 30 mai 2006
30 mai 2006 à 20:05
Oups... Ici c'est un forum consacré à Delphi.
Mais bon, comme sur Delphifr on est solidaires, on peut quand même te donner un coup de main.

Le système que tu a écris a peu de chance d'avoir des solutions qui tendent vers 0.
En effet, la solution générale de ce genre de système est de la forme x1(t)=xh(t)+a1*exp(i*w*t)+b1*exp(-i*w*t) ou xh(t) est la solution homogène du sytème (qui peut éventuellement tendre vers 0 quand t tend vers l'infini) .De même pour x2 et x3. Mais la présence du sinus interdit d'avoir des solutions qui convergent.

Pour t'en convaincre, tu peux résoudre le système "à la main".
Tu pose le vecteur X=(x1',x1,x2',x2,x3',x3) et tu écris le système homogène matriciellement: X'=M*X
Tu obtiens xh en diagonalisant M.
Pour obtenir les a1,b1,a2,b2,a3,b3 il suffit alors de résoudre un système de 6 équations à 6 inconnues.

voila, j'éspère avoir été clair.
0
Rejoignez-nous