Warning: Undefined array key "DOKU_PREFS" in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/common.php on line 2082
loi_poisson [Les recettes Python de Tyrtamos]

Outils pour utilisateurs

Outils du site


loi_poisson

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
loi_poisson [2008/03/29 08:59]
tyrtamos
loi_poisson [2008/04/12 08:41]
tyrtamos
Ligne 264: Ligne 264:
  
 Là, j'en suis sûr (à 95%): les actions que j'ai menées ont effectivement fait baissé les accidents! Là, j'en suis sûr (à 95%): les actions que j'ai menées ont effectivement fait baissé les accidents!
 +
  
  
 ===== Génération de valeurs tirées au hasard selon une distribution de Poisson ===== ===== Génération de valeurs tirées au hasard selon une distribution de Poisson =====
  
 +Cette fonction peut fournir une seule valeur ou une liste de valeurs (longueur de la liste donnée par le paramètre optionnel nb).
 +
 +On applique le principe général de ce genre de calcul:
 +
 +  * on tire au hasard un nombre décimal compris entre 0 et 1 avec random(), et on le considère comme une probabilité cumulée.
 +
 +  * grâce au calcul de la probabilité cumulée de la loi de Poisson, on cherche à quel variable aléatoire k cela correspond
  
 +Pour alléger les calculs, on utilise ici le calcul de la probabilité normale et pas celle cumulée. En fait, on la recalcule dans la recherche. 
  
 +Codage proposé:
  
 +<code python>
 +#!/usr/bin/python
 +# -*- coding: utf-8 -*-
 +from __future__ import division
  
 +from math import *
 +import random
  
 +def hpoisson(m,nb=0):
 +    """hpoisson(m,nb=0): Génération de valeurs tirées au hasard selon une distribution de Poisson"""
 +    def _hpoisson(m):
 +        ph=random.random()
 +        k=0
 +        pc=poisson(k,m)
 +        while ph>pc:
 +            k+=1
 +            pc+=poisson(k,m)
 +        return k
  
 +    if nb==0:
 +        return _hpoisson(m)
 +    else:
 +        R=[]
 +        for j in xrange(0,nb):
 +            R.append(_hpoisson(m))
 +        return R
  
 +# exemple d'utilisation:
 +print hpoisson(2)   # affiche par exemple: 3 = une valeur qui peut aller de k=0 à l'infini  
 +print hpoisson(2)   # idem
 +print hpoisson(2)   # idem
 +print hpoisson(2,10)  # affiche par exemple: [1, 1, 1, 0, 3, 2, 3, 2, 0, 2] 
 +</code>
  
 +Avec cette fonction, on peut faire des simulations de tirage au hasard.
  
 +<html>
 +<head>
 +<style type="text/css">
 +<!--
 +body {background-image:url(fondcorps.jpg);}
 +-->
 +</style>
 +</head>
 +<body>
 +</body>
 +</html>
loi_poisson.txt · Dernière modification: 2008/04/17 20:22 de tyrtamos