diff --git a/module2/exo1/toy_notebook_fr.ipynb b/module2/exo1/toy_notebook_fr.ipynb index 3015eed35dc02935f8e4730fdb8e98806df4735f..cdfb2a348560a867cda6d847665c86f31eea1802 100644 --- a/module2/exo1/toy_notebook_fr.ipynb +++ b/module2/exo1/toy_notebook_fr.ipynb @@ -86,10 +86,30 @@ "hidePrompt": false }, "source": [ - "Sinon, une méthode plus simple à comprendre et ne faisant pas intervenir d’appel à la fonction sinus se base sur le fait que si\n", + "Sinon, une méthode plus simple à comprendre et ne faisant pas intervenir d’appel à la fonction sinus se base sur le fait que si $X \\sim {\\sf Unif}(0, 1)$ et $Y \\sim {\\sf Unif}(0, 1)$ alors $P\\left[X^2+Y^2 \\le 1 \\rigth] = \\pi/4$ (voir ![méthode de Monte Carlo sur Wikipedia](https://fr.wikipedia.org/wiki/M%C3%A9thode_de_Monte-Carlo#D%C3%A9termination_de_la_valeur_de_%CF%80)). Le code suivant illustre ce fait :" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt \n", + "\n", + "np.random.seed(seed=42)\n", + "N = 1000\n", + "x = np.random.uniform(size=N, low=0, high=1)\n", + "y = np.random.uniform(size=N, low=0, high=1)\n", "\n", + "accept = (x*x+y*y) <= 1\n", + "reject = np.logical_not(accept)\n", "\n", - "X\u0018U(0, 1)etY\u0018U(0, 1)alorsP[X2+Y2\u00141]=p/4 (voirméthode de Monte Carlo sur Wikipedia). Le code suivant illustre ce fait :" + "fig, ax = plt.subplots(1)\n", + "ax.scatter(x[accept], y[accept], c='b', alpha=0.2, edgecolor=None)\n", + "ax.scatter(x[reject], y[reject], c='r', alpha=0.2, edgecolor=None)\n", + "ax.set_aspect('equal')" ] } ],