From 2b07cb57afd6e86bc920e6930eebeaaf72c38e60 Mon Sep 17 00:00:00 2001 From: 8388c1425d3a684d1ec014af187ba020 <8388c1425d3a684d1ec014af187ba020@app-learninglab.inria.fr> Date: Tue, 24 Mar 2020 12:20:23 +0000 Subject: [PATCH] Update toy_document_orgmode_python_en.org --- .../exo1/toy_document_orgmode_python_en.org | 50 ++++++++----------- 1 file changed, 21 insertions(+), 29 deletions(-) diff --git a/module2/exo1/toy_document_orgmode_python_en.org b/module2/exo1/toy_document_orgmode_python_en.org index a7082ea..f807f2b 100644 --- a/module2/exo1/toy_document_orgmode_python_en.org +++ b/module2/exo1/toy_document_orgmode_python_en.org @@ -1,49 +1,42 @@ -#+TITLE: Mr. + + +#+TITLE: On the computation of pi #+AUTHOR: Bikash Adhikari #+DATE: 23/03/2020 #+LANGUAGE: en -# #+PROPERTY: header-args :eval never-export -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: + #+PROPERTY: header-args :session :export both -* Table of Contents - * [[1. Asking the math library]] - * [[2. *Buffon's needle]] - * [[3. Using a surface fraction argument]] - -* 1. Asking the math library -My computer tells me that \pi is /approximately/ -#+begin_src python :results output :exports both +* Asking the math library +My computer tells me that $\pi$ is /approximately/ +#+begin_src python :results value :session *python* :export both from math import * pi #+end_src -* 2. *Buffon's needle -Applying the method of [[https://en.wikipedia.org/wiki/Buffon%27s_needle_problem][_Buffon's needle_]], we get the *approximation* -#+begin_src python :results output :exports both + + +* * Buffon's needle +Applying the method of [[https://en.wikipedia.org/wiki/Buffon%27s_needle_problem][_Buffon's needle_]], we get the *approximation +#+begin_src python :results value :session *python* :export both import numpy as np np.random.seed(seed=42) -N=10000 -x=np.random.uniform(size=N, low =0, high=pi/2) -theta=np.random.uniform(size=N, low=0, high = pi/2) +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 - -* 3. Using a surface fraction argument +* 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 \sim U(0,1)$ and $Y \sim -U(0,1)$, then $P[X^2 + Y^2 \leq 1] = \pi/4$ (see [[https://en.wikipedia.org/wiki/Monte_Carlo_method][_"Monte Carlo method on -Wikipedia"_]]). THe following code use this approach: +U(0,1)$, then $P[X^2 + Y^2 \leq 1] = \pi/4$ (see +[[https://en.wikipedia.org/wiki/Monte_Carlo_method][ _"Monte Carlo method" on +Wikipedia_]]). The following code use this approach: -#+begin_src python :results output :exports both +#+begin_src python :results value :session *python* :export both import matplotlib.pyplot as plt np.random.seed(seed=42) @@ -68,7 +61,6 @@ print(matplot_lib_filename) It is then straightforward to obtain a (not really good) approximation of \pi by counting how many time, on average, $X^2$ + $^{}Y^2$ is smaller than 1: -#+begin_src python :results output :exports both +#+begin_src python :results value :session *python* :export both 4*np.mean(accept) #+end_src - -- 2.18.1