Python, simulation chaîne de Markov
Bonsoir, j'aimerais simuler une chaîne de Markov à temps discret à valeurs dans $\mathbb{N}^2$ sous Python. Je sais le faire pour une dimension, mais pour deux dimensions j'ai des problèmes pour la définition de la matrice de transition dans la machine. Car à une dimension $P=(P_{ij})_{ij}$ ici $i $ et $j $ sont des entiers. Par contre à deux dimensions ce sont des vecteurs.
Merci d'avance pour votre aide.
Merci d'avance pour votre aide.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Une remarque tout d'abord : très souvent c'est un peu pénible de revenir à la matrice de transition pour la simulation. Est-ce que dans ton cas ce ne serait pas plus simple de simuler directement? Par exemple si c'est une marche aux plus proches voisins, autant juste tirer des directions aléatoires à chaque coup.
Sinon tu as deux options : soit faire des listes de listes de listes de listes (pour avoir de la dimension ), soit définir une fonction à 4 arguments.
C’est très vague, là.
Tu coinces parce que tu n’arrives pas à créer un dictionnaire avec une liste comme clé ? Si c’est le cas, utilise un tuple.
-- Schnoebelen, Philippe
\[P\left((a,b,c), (d,e,f)\right)=\begin{cases}
\frac{\mu b}{\mu b+\lambda b \frac{a}{N}} &\mbox{ si } e=a,\,d=b-1\text{ et }f=c+1\\
\frac{\lambda b \frac{a}{N}}{\mu b+\lambda b \frac{a}{N}} &\mbox{ si } e=a-1,\,d=b+1\text{ et }f=c\\0&\mbox{ sinon}\end{cases}\]où $\mu,\,\lambda\text{N} $ sont des paramètres bien définis.
De chaque point, il y a au plus deux successeurs possibles; pas besoin de matrice.
Merci.