Corrigé CCINP 2025 Physique MP — Partie III.3 (Q46 à Q52) : Simulation d'Euler de la libération du vaisseau, vitesse de libération
Sujet officiel du concours CCINP, session 2025, épreuve Physique MP. Corrigé rédigé par Ibrahim Alame.
Sujet officiel (PDF, site du concours)
Énoncé
On simule en Python (numpy importé sous le nom np) le mouvement de III.2, la voile étant orientée à chaque instant de façon optimale ( maximisant , Q45). Variables globales (tableau 1) :
| instruction | grandeur correspondante |
|---|---|
G = 6.67e-11 # en N.m2/kg2 | : constante de la gravitation universelle |
MT = 5.98e24 # en kg | : masse de la Terre |
RT = 6.37e6 # en m | : rayon de la Terre |
m = 2.0e3 # en kg | : masse du vaisseau |
g = 9.8 # en N/kg | : pesanteur à la surface de la Terre |
Km = g/1000*m | : constante de la question Q45 |
La fonction incomplète simulation(r, theta, vr, vtheta, tmax, dt) (méthode d'Euler explicite) renvoie T, R, Theta, Vr, Vth, Phi. Ligne 17 (instruction 1) : tableau T des instants. Dans la boucle for t in T : ligne 20, appel de recherche_phi_optimal ; ligne 21, appel de derivees_comp_vitesse ; ligne 22 (instruction 2), pas d'Euler ; lignes 23 à 27, ajout des valeurs aux listes.
Simulation : jours, , orbite initiale circulaire de rayon (, ), . L'ombre influence peu le mouvement (figure 15). La figure 16 donne , étant la vitesse minimale pour s'éloigner définitivement de la Terre.
{Figure 15 — Trajectoire : une position par heure, chaque trait donnant l'orientation du plan de la voile (unité des axes : ). Figure non reproduite du sujet : tracé recalculé par le programme complété en Q46 à Q49, de même allure que l'original}
{Figure 16 — Rapport en fonction du temps (une valeur par heure)}
Q46. Remplacer instruction 1 : tableau T des instants de (inclus) à tmax (exclu), au pas dt.
Q47. Écrire recherche_phi_optimal(vr, vth, theta) : l'angle maximisant , à près, par une recherche naïve de complexité linéaire.
Q48. Écrire derivees_comp_vitesse(r, theta, vr, vth, phi) renvoyant et (Q42, Q43), en tenant compte de l'ombre de la Terre.
Q49. Remplacer instruction 2 : remplacer , , , par leurs valeurs à (une itération d'Euler explicite).
Q50. Pourquoi le plan de la voile doit-il être à peu près parallèle à au voisinage de , ?
Q51. Établir par un théorème énergétique.
Q52. Sans voile, sur une ellipse d'énergie constante : exprimer en fonction de , , , , . Expliquer les oscillations de la figure 16 et la croissance de l'amplitude des premières.
Corrigé
Remarque préalable sur l'énoncé. Dans la fonction fournie, le paramètre s'appelle vtheta mais le corps utilise vth (lignes 20 à 26), et la liste Vtheta est remplie sous le nom Vth ; la question Q49 parle aussi de th au lieu de theta. On harmonise en écrivant l'en-tête def simulation(r, theta, vr, vth, tmax, dt) et la ligne 18 avec Vth, et l'on garde le nom theta.
Q46. D'après l'annexe, np.arange(a, b, p) contient les valeurs de a (inclus) à b (exclu) au pas p : c'est exactement ce qui est demandé.
T = np.arange(0, tmax, dt) # instruction 1 (ligne 17)
Le tableau contient valeurs, soit pour la simulation de III.3.2. Ce que le correcteur attend : ne pas utiliser np.linspace(0, tmax, n), qui inclut tmax et dont le pas vaut , différent de dt (confusion fréquente selon le jury).
Q47. D'après Q45, avec . Comme et que ne dépend pas de , l'angle optimal est celui qui maximise sur (dans l'ombre, tous les angles se valent). On balaie l'intervalle sur une grille régulière de points, de pas : la fonction étant régulière et son maximum unique, l'angle de la grille qui réalise le plus grand est l'un des deux nœuds qui encadrent le maximum exact, donc à moins d'un pas de celui-ci. On garde en mémoire la plus grande valeur rencontrée et l'angle correspondant (recherche naïve d'un maximum) ; le coût est proportionnel au nombre de points testés : complexité linéaire.
def recherche_phi_optimal(vr, vth, theta):
N = 1601 # pas pi/1600 < 2e-3 rad
phi_opt = -np.pi/2
val_max = np.cos(phi_opt)**2*(vr*np.cos(phi_opt - theta) + vth*np.sin(phi_opt - theta))
for phi in np.linspace(-np.pi/2, np.pi/2, N):
val = np.cos(phi)**2*(vr*np.cos(phi - theta) + vth*np.sin(phi - theta))
if val > val_max:
val_max = val
phi_opt = phi
return phi_opt
Contrôle (programme exécuté) : pour et , est maximal pour , soit ; la fonction renvoie , à moins de ; pour elle renvoie (voile face au Soleil) et pour , (voile parallèle au rayonnement, voir Q50).
100 % gratuit
La suite du corrigé est sur Adloun
Le corrigé rédigé en entier, question par question, et le tuteur pour poser des questions sur ce sujet.
Voir le corrigé complet, gratuitementInscription gratuite en 30 secondes (e-mail, nom d'utilisateur, mot de passe, classe ou profil), sans carte bancaire : arrivée directe sur le corrigé.