diff --git a/module2/exo1/figure_pi_mc2.png b/module2/exo1/figure_pi_mc2.png new file mode 100644 index 0000000000000000000000000000000000000000..c4708845bc39fe3887e6f7e68ec3d1368da7e96f Binary files /dev/null and b/module2/exo1/figure_pi_mc2.png differ diff --git a/module2/exo1/toy_document_orgmode_python_fr.org b/module2/exo1/toy_document_orgmode_python_fr.org index b15d4593d801dc83c0ee5adf07a9e11d8fb3f97e..c7ed80dec0e5fe7b137c61835698c509c80019e4 100644 --- a/module2/exo1/toy_document_orgmode_python_fr.org +++ b/module2/exo1/toy_document_orgmode_python_fr.org @@ -1,7 +1,6 @@ #+TITLE: À propos du calcul de π #+AUTHOR: Leraut Alain #+LANGUAGE: fr -# #+PROPERTY: header-args :eval never-export #+HTML_HEAD: #+HTML_HEAD: @@ -9,29 +8,28 @@ #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: - - +#+PROPERTY: header-args :session :exports both * En demandant à la lib maths -Mon ordinateur m'indique que π vaut approximativement: -#+begin_src python :results output :session :exports both +Mon ordinateur m'indique que $\pi$ vaut /approximativement/: +#+begin_src python :results value :session "python" :export both from math import * -print(pi) +pi #+end_src #+RESULTS: +: 3.141592653589793 * En utilisant la méthode des aiguilles de Buffon -Mais calculé avec la méthode des aiguilles de Buffon, on obtiendrait -comme approximation : +Mais calculé avec la *méthode* des [[https://fr.wikipedia.org/wiki/Aiguille_de_Buffon][aiguilles de Buffon]], on obtiendrait +comme *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 x = np.random.uniform(size=N, low=0, high=1) theta = np.random.uniform(size=N, low=0, high=pi/2) -valeur = 2/(sum((x+np.sin(theta))>1)/N) -print(valeur) +2/(sum((x+np.sin(theta))>1)/N) #+end_src #+RESULTS: @@ -39,10 +37,11 @@ print(valeur) * Avec un argument "fréquentiel" de surface 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∼U(0,1) et Y∼U(0,1) alors P[X2+Y2≤1]=π/4 (voir méthode de Monte - Carlo sur Wikipedia). Le code suivant illustre ce fait : +$X∼U(0,1) et Y∼U(0,1)$ alors $P[X2+Y2≤1]=π/4$ (voir + [[https://fr.wikipedia.org/wiki/M%C3%A9thode_de_Monte-Carlo#D%C3%A9termination_de_la_valeur_de_%CF%80][méthode de Monte Carlo]] sur Wikipedia). Le code suivant illustre ce fait : + +#+begin_src python :results output file :var matplot_lib_filename="figure_pi_mc2.png" :exports both :session "python" -#+begin_src python :results output file :session :var matplot_lib_filename="./valeurpip.png" :exports both import matplotlib.pyplot as plt np.random.seed(seed=42) N = 1000 @@ -62,20 +61,14 @@ print(matplot_lib_filename) #+end_src #+RESULTS: -[[file:./valeurpip.png]] - +[[file:figure_pi_mc2.png]] +[[file:figure_pi_mc2.png]] - Il est alors aisé d'obtenir une approximation (pas terrible) de π en - comptant combien de fois, en moyenne, X2+Y2 est inférieur à 1 : +Il est alors aisé d'obtenir une approximation (pas terrible) de $\pi$ en comptant combien de fois, en moyenne, $X^2+Y^2$ est inférieur à 1 : -#+begin_src python :results output :session :exports both -print('{:1.13f}'.format(4*np.mean(accept))) +#+begin_src python :results output :session "python" :exports both +4*np.mean(accept) #+end_src #+RESULTS: -: 3.1120000000000 - -Auteur: Konrad Hinsen - -Created: 2019-03-28 Thu 11:06 - +: 3.112