simulation
November 10, 2018
1 Simulation
1.1 Construction de variables aléatoires de loi exponentielle
1
X = − ln U
λ
où U est une uniforme sur [0, 1]
In [2]: %matplotlib inline
from numpy import *
import numpy as np
import scipy
from pylab import*
import pylab as pylab
@interact
def _(n = (0..6)):
[Link]()
tableau=-log([Link](10**n,1))
m1=[Link](tableau,bins=srange(0, 6, 0.1),normed=1,alpha=0.3)
[Link](m1[1],exp(-m1[1]),color='red',alpha=0.4)
[Link]('m1')
1
2
3
1.2 Tirages de point uniformément répartis dans le carré unité
On notera les “amalgames” qui semblent contredire l’idée d’uniformité mais qui sont en fait à
l’indépendance des tirages
In [4]: [Link]()
[Link]([Link](100), [Link](100), 'o')
[Link]('cloud')
1.3 Estimation de pi
On tire des points (Ui , Vi ) uniformément dans le carré [0, 1] × [0, 1]. D’après la loi forte des grands
nombres
N
1 X π
1{U 2 +V 2 ≤1} −→
N i i 4
i=1
In [6]: @interact
def _(n = (0..8)):
N=10**n
u=2*[Link](N)-1
v=2*[Link](N)-1
frequence=sum(u^2+v^2<=1)*1.0/N
variance=frequence*(1-frequence)
print "estimation de pi ", 4*frequence
print "\nintervalle de confiance à 95% ",4*(frequence-1.96*sqrt(varianc
4
1.4 Simulation de la file M/M/1
Intensité = ρ < 1
Temps moyen de service = 1
On calcule l’histogramme empirique de la distribution du nombre de clients dans le système
In [10]: rho=0.5
horizon=10000
temps=0
N=0
K=int([Link](ln(0.001)/ln(rho)))+1
proba_stat=[Link](K+1)
nb_moyen_clients=0
def transitions(N):
if (N==0):
return([rho,[1],[1]])
else:
return([rho+1,[N-1,N+1],[1/(rho+1),rho/(rho+1)]])
while(temps<= horizon):
a = transitions(N)
# print N,a
duree=[Link](1/a[0])
temps += duree
proba_stat[min(N,K)]+= duree
N=[Link](a[1],p=a[2])
# print N
proba_stat =proba_stat/horizon
[Link]()
[Link]([Link](K+1),proba_stat)
[Link]([Link](K+1),(1-rho)*rho**[Link](K+1),color='red')
[Link]('geometric')
5
6