1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
| % Effacement de la fenêtre
clf
% Constante de gravitation universelle
G=6.673*10^-11;
% Masse Terre
mk=10^25;
% Position initiale Terre
xk=0;
yk=0;
% Vitesse initiale Terre
vxk=-5;
vyk=0;
% Masse Lune
ml=10^22;
% Position initiale Lune
xl=10;
yl=10;
% Vitesse initiale Lune
vxl=3;
vyl=3;
% Distance Terre-Lune
d=sqrt((xl-xk)^2+(yl-yk)^2);
% Angle Terre-Lune
cosAlpha=(xl-xk)/d;
sinAlpha=(yl-yk)/d;
% Accélération Terre
axk=-G*cosAlpha*(ml/d^2);
ayk=-G*sinAlpha*(ml/d^2);
% Accélération Lune
axl=-axk;
ayl=-ayk;
deltaT=0.0001;
for n=1:10
% Distance Terre-Lune
d=sqrt((xl-xk)^2 +(yl-yk)^2);
% Angle Terre-Lune
cosAlpha=(xl-xk)/d;
sinAlpha=(yl-yk)/d;
% Position Terre
xk=xk+vxk*deltaT+(1/2)*axk*deltaT^2;
yk=yk+vyk*deltaT+(1/2)*ayk*deltaT^2;
% Position Lune
xl=xl+vxl*deltaT+(1/2)*axl*deltaT^2;
yl=yl+vyl*deltaT+(1/2)*ayl*deltaT^2;
% Mise en mémoire des anciennes accélérations
axk0=axk;
ayk0=ayk;
axl0=axl;
ayl0=ayl;
% Accélération Terre
axk=-G*cosAlpha*(ml/d^2);
ayk=-G*sinAlpha*(ml/d^2);
% Accélération Lune
axl=-axk;
ayl=-ayk;
% Vitesse Terre
vxk=vxk+(1/2)*(axk+axk0)*deltaT;
vyk=vyk+(1/2)*(ayk+ayk0)*deltaT;
% Vitesse Lune
vxl=vxl+(1/2)*(axl+axl0)*deltaT;
vyl=vyl+(1/2)*(ayk+ayl0)*deltaT;
% Dessin de la Terre
plot(xk,yk,'*');
% Dessin de la Lune sur la même figure
hold on
plot(xl,yl,'+');
endfor |
Partager