From f6bc01a992f4a9c3aee70945b8a380aca8c17c82 Mon Sep 17 00:00:00 2001 From: Meiling WU Date: Mon, 30 May 2022 09:46:51 +0000 Subject: [PATCH] Update toy_document_orgmode_R_fr --- module2/exo1/toy_document_orgmode_R_fr | 68 ++++++++++++++------------ 1 file changed, 37 insertions(+), 31 deletions(-) diff --git a/module2/exo1/toy_document_orgmode_R_fr b/module2/exo1/toy_document_orgmode_R_fr index b4f6f82..b368a47 100644 --- a/module2/exo1/toy_document_orgmode_R_fr +++ b/module2/exo1/toy_document_orgmode_R_fr @@ -1,53 +1,59 @@ ---- -title: "À propos du calcul de pi" -auteur : EvaC +title: "On the computation of pi" +auteur : Meiling WU output: html_notebook ---- -```{r setup, include=FALSE} -knitr::opts_chunk$set(echo = TRUE) -``` +#+HTML_HEAD: +#+HTML_HEAD: +#+HTML_HEAD: +#+HTML_HEAD: +#+HTML_HEAD: +#+HTML_HEAD: -## En demandant à la lib maths -Mon ordinateur m'indique que $\pi$ vaut *approximativement* +#+PROPERTY: header-args :session :exports both -```{r cars} -pi -*3.141592653589793* +* Asking the maths library +My computer tells me that $\pi$ is /approximatively/ -``` +#+begin_src R :results output :session *R* :exports both +pi +#+end_src -## En utilisant la méthode des aiguilles de Buffon -Mais calculé avec le __méthode__ des [aiguilles de Buffon](https://fr.wikipedia.org/wiki/Aiguille_de_Buffon), on obtiendrait comme __approximation__ : +#+RESULTS: +: [1] 3.141593 -```{r} +* 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 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)) -_3.12891113892_ -``` +#+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 [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: +* 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: -```{r} +#+begin_src R :results output graphics :file figure_pi_mc1.png :exports both :width 600 :height 400 :session *R* set.seed(42) N = 1000 df = data.frame(X = runif(N), Y = runif(N)) df$Accept = (df$X**2 + df$Y**2 <=1) library(ggplot2) ggplot(df, aes(x=X,y=Y,color=Accept)) + geom_point(alpha=.2) + coord_fixed() + theme_bw() -``` - -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: +#+end_src +#+RESULTS: +[[file:figure_pi_mc1.png]] -```{r } +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 R :results output :session *R* :exports both 4*mean(df$Accept) -3.1120000000000001 -``` +#+end_src + + +#+RESULTS: +: [1] 3.156 -- 2.18.1