From e81c661653d5c4939c02873161ea99d05b0cebe6 Mon Sep 17 00:00:00 2001 From: 732afbed1f51733fba4ec4ed0e9bd727 <732afbed1f51733fba4ec4ed0e9bd727@app-learninglab.inria.fr> Date: Fri, 6 Oct 2023 16:38:02 +0000 Subject: [PATCH] Update toy_document_orgmode_R_fr.org --- module2/exo1/toy_document_orgmode_R_fr.org | 61 +++++++++++----------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/module2/exo1/toy_document_orgmode_R_fr.org b/module2/exo1/toy_document_orgmode_R_fr.org index a560452..9a491d7 100644 --- a/module2/exo1/toy_document_orgmode_R_fr.org +++ b/module2/exo1/toy_document_orgmode_R_fr.org @@ -1,8 +1,5 @@ -#+TITLE: À propos du calcul de pi -#+AUTHOR: Votre nom -#+DATE: La date du jour +#+TITLE: À propos du calcul de $\pi$ #+LANGUAGE: fr -# #+PROPERTY: header-args :eval never-export #+HTML_HEAD: #+HTML_HEAD: @@ -11,37 +8,38 @@ #+HTML_HEAD: #+HTML_HEAD: +#+PROPERTY: header-args :session :exports both +* En demandant à la lib maths +* En demandant à la lib maths +Mon ordinateur m'indique que $\pi$ vaut /approximativement/ -## Table des matières -- [1. En demandant à la lib maths](https://lms.fun-mooc.fr/asset-v1:inria+41016+self-paced+type@asset+block/toy_document_orgmode_R_fr.html#orga63dd54) -- [2. En utilisant la méthode des aiguilles de Buffon](https://lms.fun-mooc.fr/asset-v1:inria+41016+self-paced+type@asset+block/toy_document_orgmode_R_fr.html#org23d5348) -- [3. Avec un argument "fréquentiel" de surface](https://lms.fun-mooc.fr/asset-v1:inria+41016+self-paced+type@asset+block/toy_document_orgmode_R_fr.html#org0097db4) - -## En demandant à la lib maths -Mon ordinateur m'indique que $\pi$ vaut *approximativement* - -#+begin_src R :results output :exports both -print(pi) +#+begin_src R :results output :session *R* :exports both +pi #+end_src +#+RESULTS: +: [1] 3.141593 -## En utilisant la méthode des aiguilles de Buffon -Mais calculé avec la __méthode__ des [aiguilles de Buffon](https://fr.wikipedia.org/wiki/Aiguille_de_Buffon), on obtiendrait comme __approximation__ : -#+begin_src R :results output :exports both -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) -2/(sum((x+np.sin(theta))>1)/N) -#+end_src +* En utilisant la méthode des aiguilles de Buffon +Mais calculé avec la *méthode* des [[https://fr.wikipedia.org/wiki/Aiguille_de_Buffon][aiguilles de Buffon]], on obtiendrait comme *approximation* : - -## 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\sim U(0,1)$ et $Y\sim U(0,1)$ alors $P[X^2+Y^2\leq 1] = \pi/4$ (voir [méthode de Monte Carlo sur Wikipedia](https://fr.wikipedia.org/wiki/M%C3%A9thode_de_Monte-Carlo#D%C3%A9termination_de_la_valeur_de_%CF%80)). Le code suivant illustre ce fait : - -#+begin_src R :results output :exports both +#+begin_src R :results output :session *R* :exports both +set.seed(42) +N = 100000 +x = runif(N) +theta = pi/2*runif(N) +2/(mean(x+sin(theta)>1)) +#+end_src +#+RESULTS: +: [1] 3.14327 + +* 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\sim +U(0,1)$ et $Y\sim U(0,1)$ alors $P[X^2+Y^2\leq 1] = \pi/4$ (voir [[https://fr.wikipedia.org/wiki/M%25C3%25A9thode_de_Monte-Carlo#D%25C3%25A9termination_de_la_valeur_de_%25CF%2580][méthode de +Monte Carlo sur Wikipedia]]). Le code suivant illustre ce fait : +*+begin_src R :results output :exports both %matplotlib inline import matplotlib.pyplot as plt @@ -62,7 +60,8 @@ ax.set_aspect('equal') 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 R :results output :exports both -4*np.mean(accept) +#+begin_src R :results output :session *R* :exports both +4*mean(df$Accept) #+end_src - +#+RESULTS: +: [1] 3.156 -- 2.18.1