// Équations différentielles du saut de Baumgartner : // -g(z) + rho(z)*Cx*S/(2*m) = dv/dt et v = dz/dt. // Voir aussi http://fr.wikipedia.org/wiki/Atmosphère_normalisée. var rho, K, dt, g0 = 9.8, m = 107, S = 0.35, Cx = 1.1; // Cx subsonique. var z = [39045], v = [0], k, dv, dt = 0.1, T = 260; // 4 min 20 s = 260 s. rho = fonction(z) { var k = partie.entière(z/10000) ; retourner rho.tab[k] + (rho.tab[k+1]-rho.tab[k])*(z/10000-k)}; rho.tab = [1.22, 0.33, 0.088, 0.015, 0.0026]; // Tous les 10 km. K = fonction(z,v) { retourner (abs(v) > 300 ? 1.5 : 1)*rho(z)*Cx*S/(2*m) }; effacer("le brouillon"); pour k variant de 1 à T/dt faire { dv = (K(z[k-1],v[k-1])*v[k-1]^2 - g0*(1 - 2*z[k-1]/6371000))*dt ; v[k] = v[k-1] + dv; z[k] = z[k-1] + (v[k-1] + dv/2)*dt }; LGD = nouveau.graphique(-5,T+20, -50,460) ; pour k variant de 0 à T/dt par pas de 100 faire { afficher(k*dt + ' s : V = ' + arrondi.entier(abs(v[k])) + " m/s") ; point(k*dt,abs(v[k])).sur(LGD).en(rouge); point(k*dt,z[k]/100).sur(LGD).en(vert+"width:1"); // Altitude en hm. };