Adloun

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

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →