melwin8
Messages postés1Date d'inscriptionvendredi 10 février 2012StatutMembreDernière intervention29 février 2012
-
29 févr. 2012 à 12:49
MichelFJM
Messages postés18Date d'inscriptionsamedi 4 juin 2005StatutMembreDernière intervention29 mai 2013
-
2 mars 2012 à 16:56
Bonjour,
Je suis un débutant en programmation et en reprise d'étude. J'ai beaucoup de mal à analyser et à convertir en algorithme.
Donc j'aurais besoin d'aide dans un premier temps pour m'orienter et ensuite éventuellement corriger ou améliorer le programme.
Ensuite, si quelqu'un connait une méthode pour apprendre justement à analyser ce que l'on souhaite programmer.
Je dois élaborer un petit programme en python qui simule une chaîne de Markov.
Le système est composé de 3 états. Il y a des probabilités identique de transitions entre chaque états.
Il y a aussi des probabilités de rester sur le même état.
Pour les variables:
- matrice: matrice 3*3 décrivant les probabilités de transition.
- tableau: distribution initiale, état de départ.
- Nombre : le nombre de pas à effectuer
Fonctions:
- Transition (etat,matrice) : prend l'état de la chaîne et retourne un état de la chaîne.
- randomWalk (matrice, tableau, nombre): calcule les fréquences de passage sur chacun des états pour obtenir les valeurs théoriques de la limite de la chaîne.
MichelFJM
Messages postés18Date d'inscriptionsamedi 4 juin 2005StatutMembreDernière intervention29 mai 2013 2 mars 2012 à 16:56
Bonjour
Il existe de nombreuses librairies toutes faites qui traitent de statistique. Il faut aussi voir du coté du logiciel "R" , qui peut aussi être appelé depuis le python.
Si tu veux commencer à partir de rien, je te propose d'executer :
import random
def OneStep(state,transitionMatrix) :
col=transitionMatrix[state]
rnd=random.uniform(0., 1.)
for i,proba in enumerate(col) :
if rnd<proba : return i
rnd-=proba
def walk(state,c,n) :
occured=[0,0,0]
for i in n :
state=OneStep(state,c)
occured[state]+=1
return occured
walk(0,c,1000)