simulation chaines de markov

Utilisation à l'épreuve de modélisation de l'agrégation de mathématiques

Modérateur : xcasadmin

valduvar
Messages : 7
Inscription : sam. juin 22, 2013 12:46 pm

simulation chaines de markov

Message par valduvar » sam. juin 22, 2013 4:48 pm

bonjour,
pourriez-vous me conseiller un site expliquant comment simuler sur xcas une chaine de markov de façon simple et détaillée?
merci d'avance.

parisse
Messages : 4842
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: simulation chaines de markov

Message par parisse » sam. juin 22, 2013 5:36 pm

Pour la version 1.1 (en tests actuellement) , il suffit d'utiliser la commande randmarkov avec en premier argument la matrice de transition, en 2ème le site de départ et en 3ème le nombre d'étapes.
Pour la version 1.0, il n'y a pas de commandes toute faite. Il faut donc programmer ça soi-même. L'idée est de prendre pour chaque ligne la somme partielle des coefficients de la colonne 0 à la colonne courante, puis pour simuler le site suivant à partir d'un site donné, on tire au hasard un réel entre 0 et 1 et on recherche dans la ligne du site le numéro de la 1ère colonne qui dépasse le réel, c'est le site suivant. Si la matrice est grande, on peut faire une recherche dichotomique sur la ligne. D'où le programme
simu(A,p,npas):={ // p site initial >=0
local a,j,k,B,bp,n,res;
n:=size(A);
B:=tran(cumSum(tran(A))); // somme partielle cumulée sur les lignes
res:=[p];
pour j de 1 jusque npas faire
bp:=B[p]; // ligne du site actuel
a:=alea(0,1); // reel entre 0 et 1
pour k de 0 jusque n-1 faire
si bp[k]>=a alors p:=k; break; fsi;
fpour; // on peut remplacer la boucle par une recherche dichotomique si n grand
res:=append(res,p);
fpour;
return res;
}:;

valduvar
Messages : 7
Inscription : sam. juin 22, 2013 12:46 pm

Re: simulation chaines de markov

Message par valduvar » lun. juin 24, 2013 6:41 pm

merci pour ces indications. Mais je ne maitrise pas du tout le langage xcas pour le moment, je commence tout juste, alors je ne comprends pas toutes les commandes, pourriez-vous me les détailler davantage ( en expliquant davantage de lignes) s'il vous plaît?
D'autre part savez-vous quelle version de Xcas est donnée sur les ordinateurs dont on dispose à l'agrégation?
Quand vous parlez de "site initial" dans le programme cela signifie-t-il de la valeur initiale de la variable aléatoire?

parisse
Messages : 4842
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: simulation chaines de markov

Message par parisse » lun. juin 24, 2013 6:54 pm

Je ne peux pas vous répondre dans le vague comme ça. Par contre je peux vous conseiller de regarder la doc des instructions, et d'exécuter le programme en mode pas à pas en tapant
A:=votre matrice de transition puis par exemple
debug(simu(A,0,10))
qui calcule les 10 sites suivants de la chaine de Markov en choisissant aléatoirement le site suivant en fonction des probabilités de la matrice de transition.
Pour la version du concours, en principe c'est la 1.0 pour 2013, et ce sera la 1.1 au moins en 2014 avec tout un tas de fonctions préprogrammées pour les probas.

Répondre