Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mooc-rr
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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
43800f9eebbeb989c35b6b37774edfea
mooc-rr
Commits
0423ead0
Commit
0423ead0
authored
Jul 06, 2025
by
Anton Y.
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
task try 2
parent
65d8c41c
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
24 deletions
+22
-24
toy_document_orgmode_python_en.org
module2/exo1/toy_document_orgmode_python_en.org
+22
-24
No files found.
module2/exo1/toy_document_orgmode_python_en.org
View file @
0423ead0
#+TITLE: On the computation of pi
#+TITLE: On the computation of pi
#+AUTHOR: Anton Y.
# #+DATE: 2025-07-07
#+LANGUAGE: en
#+LANGUAGE: en
# #+PROPERTY: header-args :eval never-export
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
#
#
+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
#
#
+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
#
#
+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
#
#
+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
* Asking the math library
#+PROPERTY: header-args :session :exports both
My computer tells me that π is approximatively
* Asking the math library
My computer tells me that $\pi$ is /approximatively/
#+begin_src python :results
output :session
:exports both
#+begin_src python :results
value :session *python*
:exports both
from math import *
from math import *
pi
pi
#+end_src
#+end_src
#+RESULTS:
#+RESULTS:
: 3.141592653589793
* * Buffon's needle
* * Buffon's needle
Applying the method of [[https://en.wikipedia.org/wiki/Buffon%2527s_needle_problem][Buffon's needle]], we get the *approximation*
Applying the method of Buffon's needle, we get the approximation
#+begin_src python :results value :session *python* :exports both
#+begin_src python :results output :session :exports both
import numpy as np
import numpy as np
np.random.seed(seed=42)
np.random.seed(seed=42)
N = 10000
N = 10000
...
@@ -36,15 +34,15 @@ theta = np.random.uniform(size=N, low=0, high=pi/2)
...
@@ -36,15 +34,15 @@ theta = np.random.uniform(size=N, low=0, high=pi/2)
#+end_src
#+end_src
#+RESULTS:
#+RESULTS:
: 3.128911138923655
* Using a surface fraction argument
* 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 that if $X\sim U(0,1)$ and $Y\sim
U(0,1)$, then $P[X^2+Y^2\leq 1] = \pi/4$ (see [[https://en.wikipedia.org/wiki/Monte_Carlo_method]["Monte Carlo method" on
Wikipedia]]). The following code uses this approach:
A method that is easier to understand and does not make use of the sin
#+begin_src python :results output file :var matplot_lib_filename="figure_pi_mc2.png" :exports both :session *python*
function is based on the fact that if X∼U(0,1) and Y∼U(0,1), then
P[X2+Y2≤1]=π/4 (see "Monte Carlo method" on Wikipedia). The following
code uses this approach:
#+begin_src python :results file :session :var matplot_lib_filename=(org-babel-temp-file "figure" ".png") :exports both
import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
np.random.seed(seed=42)
np.random.seed(seed=42)
...
@@ -65,13 +63,13 @@ print(matplot_lib_filename)
...
@@ -65,13 +63,13 @@ print(matplot_lib_filename)
#+end_src
#+end_src
#+RESULTS:
#+RESULTS:
[[file:
None
]]
[[file:
figure_pi_mc2.png
]]
It is then straightforward to obtain a (not really good) approximation
to π
It is then straightforward to obtain a (not really good) approximation
by counting how many times, on average, X2+Y2
to $\pi$ by counting how many times, on average, $X^2 + Y^2$ is smaller
is smaller than 1:
than 1:
#+begin_src python :results output :session :exports both
#+begin_src python :results output :session
*python*
:exports both
4*np.mean(accept)
4*np.mean(accept)
#+end_src
#+end_src
...
...
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