À propos du calcul de pi code{white-space: pre;} pre:not(\[class\]) { background-color: white; } if (window.hljs) { hljs.configure({languages: \[\]}); hljs.initHighlightingOnLoad(); if (document.readyState && document.readyState === "complete") { window.setTimeout(function() { hljs.initHighlighting(); }, 0); } } h1 { font-size: 34px; } h1.title { font-size: 38px; } h2 { font-size: 30px; } h3 { font-size: 24px; } h4 { font-size: 18px; } h5 { font-size: 16px; } h6 { font-size: 12px; } .table th:not(\[align\]) { text-align: left; } .main-container { max-width: 940px; margin-left: auto; margin-right: auto; } code { color: inherit; background-color: rgba(0, 0, 0, 0.04); } img { max-width:100%; height: auto; } .tabbed-pane { padding-top: 12px; } button.code-folding-btn:focus { outline: none; } $(document).ready(function () { window.buildTabsets("TOC"); }); À propos du calcul de pi ======================== #### _Arnaud Legrand_ #### _25 juin 2018_ En demandant à la lib maths --------------------------- Mon ordinateur m’indique que \\(\\pi\\) vaut _approximativement_ pi 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** : set.seed(42) N = 100000 x = runif(N) theta = pi/2*runif(N) 2/(mean(x+sin(theta)>1)) 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: 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: 4*mean(df$Accept)