Scilab: Méthode d'euler

Scilab: Méthode d'euler - Divers - Programmation

Marsh Posté le 15-04-2014 à 16:53:19    

Bonjour,
Je cherche à résoudre le problème à deux corps en effectuant un schéma d'Euler.
Mon programme Scilab est le suivant:
 
//Schéma d'Euler
 
deff('y=f(t,x)','y(1)=-m(2)*(x(1)-x(2))/(abs(x(1)-x(2))^3);y(2)=-m(1)*(x(2)-x(1))/(abs(x(1)-x(2))^3)');
 
G=10^-11;
m=[3;4];
T=500;
N=100;
dt=T/N;
t=0:dt:T;
 
y0=[0;1];
y=zeros(2,N+1);
y(:,1)=y0;
y(:,2)=y0;
for n=2:N
    y(:,n+1)=2*y(:,n-1)-y(:,n)+(dt^2)*f(t(n),y(:,n));
end
 
xset('window',0);
clf;
plot2d([t',t'],[y(1,:)',y(2,:)'])
xset('window',1);
clf
plot2d(y(1,:),y(2,:))
 
 
Cependant, je n'obtiens pas de courbes quand je rentre une valeur de N de 1000 ou plus.
Je n'obtiens des graphes que pour N<=100. Je ne comprends pas où ça bloque, c'est pourquoi j'écris ce sujet pour voir si quelqu'un a une idée d'où vient le problème.
Pour N=1000 par exemple, j'obtiens deux fenêtres vides à la place des graphes....
 
Merci beaucoup.
 
 

Reply

Marsh Posté le 15-04-2014 à 16:53:19   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed