Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
Test
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
33d7336beb74f8e4466da9895ff670ed
Test
Commits
6c44e233
Commit
6c44e233
authored
Dec 08, 2024
by
Rose-Delamare
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
⚡
compliated exo1
parent
8cf1d7c5
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
45 additions
and
0 deletions
+45
-0
module2-exo1.md
module2-exo1.md
+45
-0
unnamed-chunk-3-1.png
...2-exo1_files/figure-markdown_strict/unnamed-chunk-3-1.png
+0
-0
No files found.
module2-exo1.md
0 → 100644
View file @
6c44e233
## En demandant à la lib maths
Mon ordinateur m’indique que
*π*
vaut
*approximativement*
pi
## [1] 3.141593
## En utilisant la méthode des aiguilles du Buffon
Mais calculé avec la méthode des
`aiguilles du Buffon`
, on obtiendrait
comme
**approximation**
:
set.seed(42)
N = 100000
x = runif(N)
theta = pi/2*runif(N)
2/(mean(x+sin(theta)>1))
## [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*
∼
*U*
(0,1) et
*Y*
∼
*U*
(0,1) alors
*P*
\[
*X*
<sup>
2
</sup>
+
*Y*
<sup>
2
</sup>
≤1
\]
=
*π*
/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
*π*
en
comptant combien de fois, en moyenne,
*X*
<sup>
2
</sup>
+
*Y*
<sup>
2
</sup>
est inférieur à 1 :
4*mean(df$Accept)
## [1] 3.156
module2-exo1_files/figure-markdown_strict/unnamed-chunk-3-1.png
0 → 100644
View file @
6c44e233
129 KB
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment