From ac3e98940dd4aa916674c2fa98025f37ae084fa7 Mon Sep 17 00:00:00 2001 From: 5ced80d094cc8bbd195a6caf0e47db49 <5ced80d094cc8bbd195a6caf0e47db49@app-learninglab.inria.fr> Date: Mon, 25 Jan 2021 18:36:23 +0000 Subject: [PATCH] =?UTF-8?q?Correcciones=20luego=20de=20comparaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module2/exo1/toy_notebook_en.ipynb | 50 ++++++++++++++---------------- 1 file changed, 23 insertions(+), 27 deletions(-) diff --git a/module2/exo1/toy_notebook_en.ipynb b/module2/exo1/toy_notebook_en.ipynb index 28a42fd..6012e44 100644 --- a/module2/exo1/toy_notebook_en.ipynb +++ b/module2/exo1/toy_notebook_en.ipynb @@ -7,10 +7,14 @@ "hidePrompt": false }, "source": [ - "## 1 On the computation of $\\pi$\n", - "\n", - "### 1.1 Asking the maths library\n", - "\n", + "## On the computation of $\\pi$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Asking the maths library\n", "My computer tells me that $\\pi$ is *approximatively*" ] }, @@ -38,14 +42,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### 1.2 Buffon's needle\n", - "\n", + "### Buffon's needle\n", "Applying the method of [Buffon's needle](https://en.wikipedia.org/wiki/Buffon%27s_needle_problem), we get the **approximation**" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -54,7 +57,7 @@ "3.128911138923655" ] }, - "execution_count": 2, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -62,9 +65,9 @@ "source": [ "import numpy as np\n", "np.random.seed(seed=42)\n", - "N=10000\n", - "x=np.random.uniform(size=N, low=0, high=1)\n", - "theta=np.random.uniform(size=N, low=0, high=pi/2)\n", + "N = 10000\n", + "x = np.random.uniform(size=N, low=0, high=1)\n", + "theta = np.random.uniform(size=N, low=0, high=pi/2)\n", "2/(sum((x+np.sin(theta))>1)/N)" ] }, @@ -72,8 +75,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### 1.3 Using a surface fraction argument\n", - "\n", + "### Using a surface fraction argument\n", "A method that is easier to understand and does not make use of the sin function is based on the fact that if $X \\sim U(0,1)$ and $Y \\sim U(0,1)$ then $P[X^2 + Y^2 \\le 1] = \\pi/4$ (see [\"Monte Carlo method\" on Wikipedia](https://en.wikipedia.org/wiki/Monte_Carlo_method)). The following code uses this approach:" ] }, @@ -100,13 +102,14 @@ "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", - "accept=(x*x+y*y)<=1\n", - "reject=np.logical_not(accept)\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", - "fig, ax=plt.subplots(1)\n", + "accept = (x*x+y*y) <=1\n", + "reject = np.logical_not(accept)\n", + "\n", + "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')" @@ -116,7 +119,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "| It is then straightforward to obtain a (not really good) approximation to $\\pi$ by counting how many times, on average, $X^2 + Y^2$ is smaller than 1:" + "It is then straightforward to obtain a (not really good) approximation to $\\pi$ by counting how many times, on average, $X^2 + Y^2$ is smaller than 1:" ] }, { @@ -138,13 +141,6 @@ "source": [ "4*np.mean(accept)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { -- 2.18.1