From 73a5ff1cc235bcb824e0bf779ff1ff608b64c532 Mon Sep 17 00:00:00 2001 From: dc230e4232c633941d7b74c8cce89395 Date: Mon, 23 Aug 2021 13:13:30 +0000 Subject: [PATCH] Update toy_document_en.Rmd --- module2/exo1/toy_document_en.Rmd | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/module2/exo1/toy_document_en.Rmd b/module2/exo1/toy_document_en.Rmd index d443b43..dd0b405 100644 --- a/module2/exo1/toy_document_en.Rmd +++ b/module2/exo1/toy_document_en.Rmd @@ -13,14 +13,16 @@ knitr::opts_chunk$set(echo = TRUE) My computer tells me that $\pi$ is _approximatively_ -```pi +```{r} +pi ``` ## Buffon's needle Applying the method of [Buffon's needle](https://en.wikipedia.org/wiki/Buffon%27s_needle_problem), we get the __approximation__ -```set.seed(42) +```{r} +set.seed(42) N = 100000 x = runif(N) theta = pi/2*runif(N) @@ -29,7 +31,7 @@ theta = pi/2*runif(N) ## 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 thath if $\X ~ U (0,1)$ and $\Y ~ U (0,1)$, then $\P[X^2 + Y^2 <=1] = $\pi$/4$ (see ["Monte Carlo method" on Wikipedia](https://en.wikipedia.org/wiki/Monte_Carlo_method)). 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 $\sim$ U(0,1)$ and $Y $\sim$ U (0,1)$, then $P[X^2 + Y^2 $\le$ 1] = $\pi$/4$ (see ["Monte Carlo method" on Wikipedia](https://en.wikipedia.org/wiki/Monte_Carlo_method)). The following code uses this approach: ```set.seed(42) N = 1000 @@ -38,7 +40,7 @@ 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() ``` -It is therefore 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 : +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 : ```4*mean(df$Accept) ``` -- 2.18.1