Python (école d'ingénieur) · Chapitre 3 · Exercice
La catastrophe du Patriot (simulation)
Représentation des nombres en machine
Énoncé
Simuler numériquement l'erreur accumulée par le système Patriot. Rappel : Le Patriot codait le temps en dixièmes de seconde dans un registre 24 bits en virgule fixe. La valeur était tronquée à 24 bits.
- Calculer l'erreur de troncature commise sur .
- Simuler l'erreur accumulée après 100 heures et la distance de décalage pour un Scud volant à m/s.
Corrigé
Calculons :
- La valeur s'écrit en binaire : . Tronqué après le 24e bit après la virgule, la valeur stockée vaut : L'erreur commise par pas de s est de s.
- Code de simulation :
# Erreur après 100 heures
t_reel_par_pas = 0.1
t_code_par_pas = 209715 * (2 ** -21) # valeur approchée sur 24 bits
n_pas = 100 * 3600 * 10 # 10 pas par seconde pendant 100h
delta_t = n_pas * (t_reel_par_pas - t_code_par_pas)
vitesse_scud = 1676.0 # m/s
decalage_m = delta_t * vitesse_scud
print(f"Erreur de temps accumulée : {delta_t:.4f} secondes")
print(f"Décalage spatial : {decalage_m:.2f} mètres")
Le résultat donne environ s et un décalage de plus de mètres.
100 % gratuit
La suite du chapitre est sur Adloun
- 7 autres exercices corrigés dans ce chapitre, et 7 à chercher avec le tuteur
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.