simulation matlab chaine de markov
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

simulation matlab chaine de markov



  1. #1
    invitea5e67aa9

    simulation matlab chaine de markov


    ------

    On considère une marche aléatoire sur N de matrice de transition P et réfléchie en 0 cad P(0,1)=1.
    Pour tout x>=1 P(x,x+1)=p et P(x,x-1)=1-p=q

    En posant p=q=1/2 simuler cette chaine de markov issue de 0.


    Comment faire cela sous matlab sans utiliser la fonction déja existante?

    -----

  2. #2
    invite79d10163

    Re : simulation matlab chaine de markov

    Bonjour,
    Et bien tu construis la matrice de transition P pour une taille donnée, comme défini par l'énoncé. Et ensuite tu simule la chaine, c'est à dire tu commence par un vecteur d'état de départ X. Disons [1,0,0,....], tu multiplie ce vecteur par la matrice de transition P.X. et tu itères ce procédé, tu calcule P^2*X, p^3*X, etc..

  3. #3
    invitea5e67aa9

    Re : simulation matlab chaine de markov

    Ha oui d'accord!
    J'avais déjà essayé de construire la matrice

    Code de construction de P

    P=diag(1/2*ones(A-1,1),1)+diag(1/2*ones(A-1,1),-1)
    P(1,2)=1
    P

    A étant la dimension de la matrice

    Le but de cette question est d'étudier le temps de retour en 0.

  4. #4
    invite79d10163

    Re : simulation matlab chaine de markov

    A priori la matrice que tu construit n'est pas stochastique, il y a un problème sur la dernière ligne.

  5. A voir en vidéo sur Futura
  6. #5
    invitea5e67aa9

    Re : simulation matlab chaine de markov

    Exacte. Je vais refaire ca alors. En tous cas merci de ton aide tu m'as donné de quoi réfléchir!

  7. #6
    invite79d10163

    Re : simulation matlab chaine de markov

    encore un détail, sur matlab, si tu écrit le vecteur de départ en colonne X=[1;0;0...], n'oublie pas que tu dois faire la multuplication X' * P pour avoir l'état après une transition (ou bien P'*X). Sinon tu risques d'avoir des résultats bizarres. Tu remarqueras aussi que la probabiité de revenir en 0 est non nul qu'après un nombre de transitions paires....

  8. #7
    acx01b

    Re : simulation matlab chaine de markov

    bonjour,
    le prof ne te demande pas d'utiliser des rand tout simplement ?

  9. #8
    inviteaeeb6d8b

    Re : simulation matlab chaine de markov

    Bonjour,

    la solution proposée par skydancer n'est pas du tout une simulation d'une telle marche aléatoire.

    Pour simuler cette chaine, tu peux procéder ainsi :

    - d'abord, initialiser la chaîne soit de manière déterministe (on pose x=[5] par exemple, soit selon une distribution donnée),

    - pour passer de n à n+1 : on simule une variable aléatoire de loi uniforme sur [0,1] (en Scilab, c'est grand(1,1,'def'), en Matlab, ça doit être à peu près pareil) puis tu regardes où se situe par rapport à :

    si , "on descend" : x= [x, x($)-1],

    sinon, "on monte" : x= [x , x($)+1]

    Enfin, il faut faire attention quand on est en 0 : "on monte p.s." (autrement dit on va p.s. en 1).
    En Scilab :
    if x($)==0
    x=[x , 1]
    end

    Romain

  10. #9
    invitea5e67aa9

    Re : simulation matlab chaine de markov

    Finalement je me suis fait expliquer l'énoncé par mon prof et il faut bien faire avec rand (loi uniforme sur (0,1))

    j'ai donc fait la programme suivant:
    X=zeros(1,n);
    for i=2:n
    u=rand(1)<1/2; % Donne des 0 ou 1 de facon uniforme
    if (u==1)
    X(i)=X(i-1)+1;
    elseif (u==0)&& (X(i-1)>0)
    X(i)=X(i-1)-1;
    elseif (X(i-1)==0)
    X(i)=1;
    end

    end

    Pouvez vous me dire si vous voyez des erreurs par rapport à mon énoncé?

    Ensuite je doit étudier le temps de retour en 0 et dire ce que cela m'insipire!
    Je ne suis pas sur de bien comprend, le temps de retour en 0, sachant que l'on part de 0 c'est le nombre d'étapes entre le départ et le 1er retour?

  11. #10
    invitea5e67aa9

    Re : simulation matlab chaine de markov

    Pour la question: étudier le temps de retour en 0:
    X=zeros(1,n);
    compteur=0;
    for i=2:n
    u=rand(1)<1/2; % Donne des 0 ou 1 de facon uniforme
    if (u==1)&& (X(i-1)>0)
    X(i)=X(i-1)+1;
    elseif (u==0)&& (X(i-1)>0)
    X(i)=X(i-1)-1;
    elseif (X(i-1)==0)
    X(i)=1;
    compteur=compteur+1;
    end
    end
    retour0=(compteur-1)/n; % compteur-1 car ma chaine commence en 0 et je pense quil ne faut pas le compter

    le résultat de retour0= 0.0025

  12. #11
    invite48ff1192

    Re : simulation matlab chaine de markov

    Salut tous le monde moi j'ai besoin de cette simulation dans langage R
    merci

  13. #12
    invite986312212
    Invité

    Re : simulation matlab chaine de markov

    ce n'est pas très compliqué, il suffit de simuler le processus séquentiellement. Tu sais que selon la façon dont tu l'initialises, le processus est ou n'est pas stationnaire, donc il faut penser à ce qu'on veut en faire, et peut-être commencer par simuler un certain nombre de valeurs qui seront ensuite exclues du résultat.

    qu'est-ce qui te pose des difficultés?

Discussions similaires

  1. Chaîne de Markov
    Par invite4f80dcbf dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 26/02/2010, 16h33
  2. Chaine de naissance et mort : chaine de Markov
    Par invite67614aac dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 22/09/2009, 22h40
  3. chaine de Markov
    Par invited9d78a37 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 03/06/2009, 21h15
  4. Chaine de markov
    Par inviteff5c880c dans le forum Logiciel - Software - Open Source
    Réponses: 11
    Dernier message: 24/12/2008, 00h51
  5. chaine de Markov
    Par invitefa636c3d dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 01/04/2006, 11h44