Exercice: Calcul De Pi Par La Méthode De Monte-Carlo - Normale Sup
Maybe your like
Les méthodes de Monte-Carlo sont une famille d'algorithmes datant des années 40 permettant la résolution de problèmes d'optimisation, d'intégration ou d'échantillonage. Elles reposent sur le tirage de nombres (pseudo)-aléatoires dont l'espérance de la distribution permet de calculer la quantité recherchée.
In [1]: import numpy as np import matplotlib.pylab as plt %matplotlib inlineLe calcul de $\pi$ par la méthode de Monte-Carlo repose sur l'intégration numérique du quart de cercle. L'aire d'un quart de disque unité est:
\begin{equation} A = \frac{\pi}{4} \end{equation}
Soit $(X_n)_{n\geq1}$, une suite de variables aléatoires indépendantes et uniformes sur le pavé $[0,1]^2$. L'aire de ce pavé est $S=1$
La probabilité que $X_i$ tombe dans le disque unité est de $\frac{A}{S}=\frac{\pi}{4}$.
Soit $(Y_n)_{n\geq1}$, une suite de variables aléatoires de Bernouilli. Pour tout $i$, $Y_i$ vaut 1 si $X_i$ est dans le disque unité. $4\mathbb E(Y_0) = \pi$.
Par la loi des grands nombres, la moyenne empirique de $Y_n$ tend vers l'espérance $\mathbb E(Y_0)$:
\begin{equation} \lim_{n \to \infty} \frac{4}{n} \sum_{i=1}^n Y_i = 4 \mathbb E(Y_0) = \pi \end{equation}
In [ ]: # Calculez pi par la méthode de Monte-Carlo In [2]: N = 10000 # On tire un grand nombre de points uniformément sur [0,1]^2 x = np.random.random(size=N) y = np.random.random(size=N) # On créer un array de booléens indiquant si le point se trouve dans le quart de cercle. z = (x**2+y**2)<1 # On estime pi pi_est = 4*z.sum()/N print('Estimation de pi: {}'.format(pi_est)) Estimation de pi: 3.1252 In [6]: # plt.subplots() permet de créer un objet figure des objets axes. fig, ax = plt.subplots(1,1,figsize=(5,5)) # L'indexage booléen fait partie des "indexages avancés" de numpy. # Il est possible de filter un array en l'indexant par un autre array contenant # des booléens. On obtient un array plus petit ne contenant que les elements aux emplacements "True". plt.scatter(x[z], y[z], marker='.') # Logical not permet d'inverser la valeur logique des éléments d'un np.array. nz = np.logical_not(z) plt.scatter(x[nz], y[nz], marker='.') # La méthode set de l'objet `axe` permet de spécifier le titre. ax.set(title=r"Calcul de $\pi$ par la méthode de Monte Carlo.", xlabel='x', ylabel='y') # La méthode savefig de l'objet `figure` permet de sauvegarder l'image dans un fichier. # Le format est déduit de l'extension. fig.savefig('monte_carlo.png')Tag » Approximation De Pi Par La Méthode De Monte Carlo
-
Approximation De Pi Par La Méthode De Monte Carlo
-
Calcul De PI Par La Méthode De Monte-Carlo
-
Une Valeur Approchée De Pi Par La Méthode De Monte-Carlo
-
Approximation De PI Par La Méthode De Monte-Carlo
-
Approximation Du Nombre π Par La Méthode De Monte-Carlo
-
Déterminer Une Valeur Approchée De Pi à L'aide Des Probabilités ...
-
[PPT] Approximation De Pi Par La Méthode De Monte Carlo - Normale Sup
-
Python Cours • Calcul De Pi Par La Méthode De Monte Carlo • Lycée ...
-
Approximation De PI Par La Méthode De Monte-Carlo - YouTube
-
Méthode De Monte-Carlo - Wikipédia
-
Estimer Pi Avec La Méthode De Monte-Carlo - 1ère - Kartable
-
[PDF] 1 Simulation D'une Loi De Probabilité 2 Loi Des Grands Nombres 3 ...
-
La Méthode De Monte-Carlo Est-elle La Meilleure Pour Calculer Pi