MetMat

Comment simuler une chaîne de Markov en Python ?

En utilisant numpy.random.choice à chaque étape selon les probabilités de transition

Approfondissement
Hors programme — Cette méthode va au-delà du B.O. officiel. Proposée pour aller plus loin.
L'objectif

Approfondissement — Simuler en Python une trajectoire (X0,X1,ldots,XN)(X_0, X_1, \\ldots, X_N) d'une chaîne de Markov dont on connaît la matrice de transition.

Le principe

Connaissant l'état courant i=Xni = X_n, l'état suivant Xn+1X_{n+1} suit la loi donnée par la ii-ème ligne de MM ; la fonction numpy.random.choice(states, p=M[i]) tire un état selon cette loi, ce qui permet de générer la trajectoire de proche en proche.

La méthode
  1. 1
    J'importe numpy puis je définis la liste des états (par exemple [0, 1, ..., r-1]) et la matrice MM comme un tableau numpy.
  2. 2
    Je tire l'état initial X0X_0 selon la loi V0V_0 avec numpy.random.choice(states, p=V0), ou je le fixe directement.
  3. 3
    Je boucle de n=0n = 0 à N1N - 1 : à chaque étape, je tire Xn+1X_{n+1} avec numpy.random.choice(states, p=M[X_n]) et je l'ajoute à la trajectoire.
  4. 4
    Je renvoie ou affiche la trajectoire complète (X0,X1,ldots,XN)(X_0, X_1, \\ldots, X_N).

Exemple corrigé

Difficulté croissante de 1 à 3

Exercices aujourd'hui0 / 3

Prêt à t'entraîner ?

Génère un exercice personnalisé sur cette méthode et entraîne-toi avec la correction IA.