Adloun

Deux façons de simuler le premier des deux

Exercice d'entraînement · niveau 2 · mathématiques approfondies (ECG 2e année), chapitre 13 — Travaux pratiques avec Python · Simulation de lois

Énoncé

Soient et indépendantes de loi exponentielle de paramètre , et . Déterminer la loi de , en déduire deux méthodes de simulation, et comparer leur coût.

Corrigé

La loi de . Un minimum dépasse si et seulement si les deux variables le dépassent, donc par indépendance, pour : Donc sur : suit la loi , d'espérance .

Première méthode : simuler les deux et prendre le plus petit.

import numpy as np
rng = np.random.default_rng(1)
N = 200000
X = -np.log(1 - rng.random(N))
Y = -np.log(1 - rng.random(N))
M1 = np.minimum(X, Y)
print(round(float(M1.mean()), 4))     # proche de 0.5

Seconde méthode : simuler directement la loi limite. Par inversion, pour on a , donc ici

M2 = -np.log(1 - rng.random(N))/2
print(round(float(M2.mean()), 4))     # proche de 0.5

La comparaison des coûts. La première méthode consomme deux tirages uniformes et deux logarithmes par valeur produite, plus une comparaison ; la seconde n'en consomme qu'un. Pour une même précision, elle est donc environ deux fois plus rapide — et l'écart se creuse si l'on prend le minimum de variables, où la première méthode coûte tirages contre toujours un seul.

Ce que la comparaison ne dit pas. Que la première méthode soit inutile : elle seule fournit aussi et séparément, si l'on en a besoin — par exemple pour savoir lequel des deux a été le premier. Choisir sa méthode de simulation en fonction de la question posée fait partie des compétences attendues.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.