no commit message

parent f4cc151d
...@@ -6,44 +6,7 @@ ...@@ -6,44 +6,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"À propos du calcul de pi\n", " "
"Arnaud Legrand\n",
"25 juin 2018\n",
"En demandant à la lib maths\n",
"Mon ordinateur m’indique que π\n",
" vaut approximativement\n",
"\n",
"pi\n",
"## [1] 3.141593\n",
"En utilisant la méthode des aiguilles de Buffon\n",
"Mais calculé avec la méthode des aiguilles de Buffon, on obtiendrait comme approximation :\n",
"\n",
"set.seed(42)\n",
"N = 100000\n",
"x = runif(N)\n",
"theta = pi/2*runif(N)\n",
"2/(mean(x+sin(theta)>1))\n",
"## [1] 3.14327\n",
"Avec un argument “fréquentiel” de surface\n",
"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)\n",
" et Y∼U(0,1)\n",
" alors P[X2+Y2≤1]=π/4\n",
" (voir méthode de Monte Carlo sur Wikipedia). Le code suivant illustre ce fait:\n",
"\n",
"set.seed(42)\n",
"N = 1000\n",
"df = data.frame(X = runif(N), Y = runif(N))\n",
"df$Accept = (df$X**2 + df$Y**2 <=1)\n",
"library(ggplot2)\n",
"ggplot(df, aes(x=X,y=Y,color=Accept)) + geom_point(alpha=.2) + coord_fixed() + theme_bw()\n",
"\n",
"\n",
"Il est alors aisé d’obtenir une approximation (pas terrible) de π\n",
" en comptant combien de fois, en moyenne, X2+Y2\n",
" est inférieur à 1:\n",
"\n",
"4*mean(df$Accept)\n",
"## [1] 3.156"
] ]
} }
], ],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment