diff --git a/module2/exo1/toy_document_orgmode_python_en.org b/module2/exo1/toy_document_orgmode_python_en.org index 11970068fa52c62672daefb9a36a6af112e32ea4..5f0f8a284840b16ea1f9cf29854ed655255a8791 100644 --- a/module2/exo1/toy_document_orgmode_python_en.org +++ b/module2/exo1/toy_document_orgmode_python_en.org @@ -1,32 +1,30 @@ #+TITLE: On the computation of pi -#+AUTHOR: Anton Y. -# #+DATE: 2025-07-07 #+LANGUAGE: en -# #+PROPERTY: header-args :eval never-export #+HTML_HEAD: -# #+HTML_HEAD: -# #+HTML_HEAD: -# #+HTML_HEAD: -# #+HTML_HEAD: +#+HTML_HEAD: +#+HTML_HEAD: +#+HTML_HEAD: +#+HTML_HEAD: #+HTML_HEAD: -* Asking the math library +#+PROPERTY: header-args :session :exports both -My computer tells me that π is approximatively +* Asking the math library +My computer tells me that $\pi$ is /approximatively/ -#+begin_src python :results output :session :exports both +#+begin_src python :results value :session *python* :exports both 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* -Applying the method of Buffon's needle, we get the approximation - -#+begin_src python :results output :session :exports both +#+begin_src python :results value :session *python* :exports both import numpy as np np.random.seed(seed=42) N = 10000 @@ -36,15 +34,15 @@ theta = np.random.uniform(size=N, low=0, high=pi/2) #+end_src #+RESULTS: +: 3.128911138923655 * 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 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∼U(0,1) and Y∼U(0,1), then -P[X2+Y2≤1]=π/4 (see "Monte Carlo method" on Wikipedia). The following -code uses this approach: - -#+begin_src python :results file :session :var matplot_lib_filename=(org-babel-temp-file "figure" ".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) @@ -65,13 +63,13 @@ print(matplot_lib_filename) #+end_src #+RESULTS: -[[file:None]] +[[file:figure_pi_mc2.png]] -It is then straightforward to obtain a (not really good) approximation to π - by counting how many times, on average, X2+Y2 - 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: -#+begin_src python :results output :session :exports both +#+begin_src python :results output :session *python* :exports both 4*np.mean(accept) #+end_src