From ef2cd9b9f4e9f978bbb68237d7d9ff16447c87cf Mon Sep 17 00:00:00 2001 From: Jamal KHAN Date: Tue, 15 Sep 2020 21:34:35 +0200 Subject: [PATCH] Update format fix --- .../exo1/toy_document_orgmode_python_en.org | 24 +++++-------------- 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/module2/exo1/toy_document_orgmode_python_en.org b/module2/exo1/toy_document_orgmode_python_en.org index f6a5f09..31192d9 100644 --- a/module2/exo1/toy_document_orgmode_python_en.org +++ b/module2/exo1/toy_document_orgmode_python_en.org @@ -1,4 +1,4 @@ -#+TITLE: On the computation of pi +#+TITLE: On the computation of pi #+LANGUAGE: en #+HTML_HEAD: @@ -10,7 +10,7 @@ #+PROPERTY: header-args :session :exports both -* Asking the maths library +* Asking the math library My computer tells me that $\pi$ is /approximatively/ #+begin_src python :results value :session *python* :exports both @@ -18,28 +18,22 @@ from math import * pi #+end_src -#+RESULTS: -: 3.141592653589793 - * Buffon's needle Applying the method of [[https://en.wikipedia.org/wiki/Buffon%2527s_needle_problem][Buffon's needle]], we get the *approximation* #+begin_src python :results value :session *python* :exports both import numpy as np np.random.seed(seed=42) -N = 1000 +N = 10000 x = np.random.uniform(size=N, low=0, high=1) theta = np.random.uniform(size=N, low=0, high=pi/2) 2/(sum((x+np.sin(theta))>1)/N) #+end_src -#+RESULTS: -: 3.144654088050314 - * Using a surface fraction argument -A method that is easier to understand and does not make use of the $\sin$ function is based on the fact that if $X\simU(0,1)$ and $Y\simU(0,1)$, then $P[X^2+Y^2 \le1]=\pi/4$ (see [[https://en.wikipedia.org/wiki/Monte_Carlo_method]["Monte Carlo method" on Wikipedia]]). The following code uses this approach: +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 [[https://en.wikipedia.org/wiki/Monte_Carlo_method]["Monte Carlo method" on Wikipedia]]). The following code uses this approach: -#+begin_src python :results output :session *python* :var matplot_lib_filename="figure_pi_mc2.png" :exports both +#+begin_src python :results output file :var matplot_lib_filename="figure_pi_mc2.png" :exports both :session *python* import matplotlib.pyplot as plt np.random.seed(seed=42) @@ -59,14 +53,8 @@ plt.savefig(matplot_lib_filename) print(matplot_lib_filename) #+end_src -#+RESULTS: -: figure_pi_mc2.png - 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: -#+begin_src python :results value :session *python* :exports both +#+begin_src python :results output :session *python* :exports both 4*np.mean(accept) #+end_src - -#+RESULTS: -: 3.112 -- 2.18.1