//etude de l'orbite avec la methode de Runge #include #include #include #include "dislin.h" using namespace std; int main() { const int steps = 20000; const double GM = 1.; //G_N * M_Soleil const double m = 1.; //masse planete double xpos[steps], ypos[steps], xvel[steps], yvel[steps], time[steps]; double ePot[steps], eCin[steps], eTot[steps], l[steps]; //conditions initiales xpos[0] = 1.0; ypos[0] = 0.0; xvel[0] = 0.0; yvel[0] = 1.3; time[0] = 0.; double dT = 0.01; //pas d'integration //methode de Runge double dist, vel, xacc, yacc; //varialbes auxiliares //redefinition de la vitesse initiale dist = sqrt(xpos[0]*xpos[0] + ypos[0]*ypos[0]); vel = sqrt(xvel[0]*xvel[0] + yvel[0]*yvel[0]); xacc = -GM * xpos[0] / (dist*dist*dist); //force ou acceleration, GM = 1 yacc = -GM * ypos[0] / (dist*dist*dist); xvel[0] = xvel[0] - xacc*dT/2.; //vitesse yvel[0] = yvel[0] - yacc*dT/2.; for (int i=1; i