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.