//etude d'une orbite avec frottement dans la haut atmosphere #include #include #include "dislin.h" using namespace std; int main() { const double RT = 6378.; //en km const double GM = 398645.; //G_N * masse_terre double altIni = 100.; double altFin = 50.; const double R0 = RT + altIni; const double V0 = sqrt(GM/R0); const double CX = 0.0001; //coefficient de frottement const int steps = 50000; double xpos[steps], ypos[steps], xvel[steps], yvel[steps]; //conditions initiales xpos[0] = R0; ypos[0] = 0.; xvel[0] = 0.; yvel[0] = V0; double dT = 2.; //pas d'integration //methode de Runge double dist, xacc, yacc; //variables auxiliares //redifinition de la vitesse initiale dist = sqrt(xpos[0]*xpos[0] + ypos[0]*ypos[0]); xacc = -GM / pow(dist,3) * (xpos[0] - CX*ypos[0]); //acceleration yacc = -GM / pow(dist,3) * (ypos[0] + CX*xpos[0]); xvel[0] = xvel[0] -xacc*dT/2.; //vitesse yvel[0] = yvel[0] -yacc*dT/2.; int nsteps = 0; int norbits = 0; //boucle for (int i=1; i