You need to sign in or sign up before continuing.
Commit 95db713c authored by Anton Y.'s avatar Anton Y.

task try 7

parent 1fac9617
...@@ -31,10 +31,7 @@ theta = np.random.uniform(size=N, low=0, high=pi/2) ...@@ -31,10 +31,7 @@ theta = np.random.uniform(size=N, low=0, high=pi/2)
#+end_src #+end_src
* Using a surface fraction argument * Using a surface fraction argument
A method that is easier to understand and does not make use of the 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:
$\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:
#+begin_src python :results output file :var matplot_lib_filename="figure_pi_mc2.png" :exports both :session *python* #+begin_src python :results output file :var matplot_lib_filename="figure_pi_mc2.png" :exports both :session *python*
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
...@@ -56,9 +53,7 @@ plt.savefig(matplot_lib_filename) ...@@ -56,9 +53,7 @@ plt.savefig(matplot_lib_filename)
print(matplot_lib_filename) print(matplot_lib_filename)
#+end_src #+end_src
It is then straightforward to obtain a (not really good) approximation It is then straightforward to obtain a (not really good) approximation to $\pi$ by counting how many times, on average, $X^2 + Y^2$ is smaller than 1:
to $\pi$ by counting how many times, on average, $X^2 + Y^2$ is smaller than 1:
#+begin_src python :results output :session *python* :exports both #+begin_src python :results output :session *python* :exports both
4*np.mean(accept) 4*np.mean(accept)
#+end_src #+end_src
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