<h2id="orgb27ec9a"><spanclass="section-number-2">2</span> En utilisant la méthode des aiguilles de Buffon</h2>
<divclass="outline-text-2"id="text-2">
<p>
Mais calculé avec la <b>méthode</b> des <ahref="https://fr.wikipedia.org/wiki/Aiguille_de_Buffon">aiguilles de Buffon</a>, on obtiendrait comme <b>approximation</b> :
<h2id="orgfe307b7"><spanclass="section-number-2">3</span> Avec un argument "fréquentiel" de surface</h2>
<divclass="outline-text-2"id="text-3">
<p>
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)\) et \(Y∼U(0,1)\) alors \(P[X^2+Y^2 \leq 1]=\pi/4\) (voir <ahref="https://fr.wikipedia.org/wiki/M%C3%A9thode_de_Monte-Carlo#D%C3%A9termination_de_la_valeur_de_%CF%80">méthode
de Monte Carlo sur Wikipedia</a>). Le code suivant illustre ce fait :
Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
compilé en html. Tout le code contenu sera ré-exécuté, les résultats
récupérés et inclus dans un document final. Si vous ne souhaitez pas
ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
document.
Comme nous vous l'avons montré dans la vidéo, on inclut du code
R de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
#+begin_src R :results output :exports both
#+begin_src R :results output :exports both
print("Hello world!")
pi
#+end_src
#+end_src
#+RESULTS:
#+RESULTS:
: [1] "Hello world!"
: [1] 3.141593
Voici la même chose, mais avec une session R (c'est le cas le
* En utilisant la méthode des aiguilles de Buffon
plus courant, R étant vraiment un langage interactif), donc une
persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
~C-c C-c~).
#+begin_src R :results output :session *R* :exports both
Mais calculé avec la *méthode* des [[https://fr.wikipedia.org/wiki/Aiguille_de_Buffon][aiguilles de Buffon]], on obtiendrait comme *approximation* :
summary(cars)
#+begin_src R :results output :exports both
set.seed(42)
N = 100000
x = runif(N)
theta = pi/2*runif(N)
2/(mean(x+sin(theta)>1))
#+end_src
#+end_src
#+RESULTS:
#+RESULTS:
: speed dist
: [1] 3.14327
: Min. : 4.0 Min. : 2.00
: 1st Qu.:12.0 1st Qu.: 26.00
* Avec un argument "fréquentiel" de surface
: Median :15.0 Median : 36.00
: Mean :15.4 Mean : 42.98
Sinon, une méthode plus simple à comprendre et ne faisant pas
: 3rd Qu.:19.0 3rd Qu.: 56.00
intervenir d'appel à la fonction sinus se base sur le fait que si
: Max. :25.0 Max. :120.00
$X∼U(0,1)$ et $Y∼U(0,1)$ alors $P[X^2+Y^2 \leq 1]=\pi/4$ (voir [[https://fr.wikipedia.org/wiki/M%C3%A9thode_de_Monte-Carlo#D%C3%A9termination_de_la_valeur_de_%CF%80][méthode
de Monte Carlo sur Wikipedia]]). Le code suivant illustre ce fait :