diff --git a/module2/exo1/toy_document_orgmode_python_fr.html b/module2/exo1/toy_document_orgmode_python_fr.html new file mode 100644 index 0000000000000000000000000000000000000000..9b84b2855673d0ec1f42a6f5914d5ec60c9adb8d --- /dev/null +++ b/module2/exo1/toy_document_orgmode_python_fr.html @@ -0,0 +1,347 @@ + + + + + + + +À propos du calcul de $\pi$ + + + + + + + + +
+

À propos du calcul de \(\pi\)

+
+

Table des matières

+ +
+ +
+

1. En demandant à la lib maths

+
+

+Mon ordinateur m'indique que \(\pi\) vaut approximativement: +

+ +
+
from math import *
+print(pi)
+
+
+ +
+3.141592653589793
+
+
+
+ +
+

2. En utilisant la méthode des aiguilles de Buffon

+
+

+Mais calculé avec la méthode des aiguilles de Buffon, +on obtiendrait comme approximation : +

+
+
import numpy as np
+np.random.seed(seed=42)
+N = 10000
+x = np.random.uniform(size=N, low=0, high=1)
+theta = np.random.uniform(size=N, low=0, high=pi/2)
+print(2/(sum((x+np.sin(theta))>1)/N))
+
+
+ +
+3.128911138923655
+
+
+
+ +
+

3. 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^2 + Y^2 \le 1] = \pi/4\) +(voir +méthode de Monte Carlo sur Wikipedia). +Le code suivant illustre ce fait : +

+ +
+
import matplotlib.pyplot as plt
+
+np.random.seed(seed=42)
+N = 1000
+x = np.random.uniform(size=N, low=0, high=1)
+y = np.random.uniform(size=N, low=0, high=1)
+
+accept = (x*x+y*y) <= 1
+reject = np.logical_not(accept)
+
+fig, ax = plt.subplots(1)
+ax.scatter(x[accept], y[accept], c='b', alpha=0.2, edgecolor=None)
+ax.scatter(x[reject], y[reject], c='r', alpha=0.2, edgecolor=None)
+ax.set_aspect('equal')
+
+plt.savefig(matplot_lib_filename)
+matplot_lib_filename
+
+
+ + +
+

figureyRFOxR.png +

+
+ +

+Il est alors aisé d'obtenir une approximation (pas terrible) de π +en comptant combien de fois, en moyenne, \(X^2 + Y^2\) est inférieur à 1 : +

+ +
+
print(4*np.mean(accept))
+
+
+ +
+3.112
+
+
+
+
+
+

Date: 12/12/2024

+

Auteur: Matteo Chancerel

+

Created: 2024-12-12 Thu 11:27

+

Validate

+
+ + diff --git a/module2/exo1/toy_document_orgmode_python_fr.org b/module2/exo1/toy_document_orgmode_python_fr.org index a0bb0b45bb1e40a211a2218609c9aeea49b82a1d..bce669bcd1f0ea84cdce8c61beb3e7c876b851b9 100644 --- a/module2/exo1/toy_document_orgmode_python_fr.org +++ b/module2/exo1/toy_document_orgmode_python_fr.org @@ -1,13 +1,12 @@ #+TITLE: À propos du calcul de $\pi$ #+AUTHOR: Matteo Chancerel -#+DATE: 25/09/2024 +#+DATE: 12/12/2024 #+LANGUAGE: fr # #+PROPERTY: header-args :eval never-export # À propos du calcul de $\pi$ -## Table des matières -## 1 En demandant à la lib maths +* En demandant à la lib maths Mon ordinateur m'indique que $\pi$ vaut /approximativement/: @@ -19,7 +18,7 @@ print(pi) #+RESULTS: : 3.141592653589793 -## 2 En utilisant la méthode des aiguilles de Buffon +* En utilisant la méthode des aiguilles de Buffon Mais calculé avec la méthode des [[https://fr.wikipedia.org/wiki/Aiguille_de_Buffon][aiguilles de Buffon]], on obtiendrait comme *approximation* : @@ -35,8 +34,7 @@ print(2/(sum((x+np.sin(theta))>1)/N)) #+RESULTS: : 3.128911138923655 - -## 3 Avec un argument "fréquentiel" de surface +* 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 @@ -62,11 +60,11 @@ ax.scatter(x[reject], y[reject], c='r', alpha=0.2, edgecolor=None) ax.set_aspect('equal') plt.savefig(matplot_lib_filename) -print(matplot_lib_filename) +matplot_lib_filename #+end_src #+RESULTS: -[[file:]] +[[file:/tmp/babel-ZDryvm/figure8q72fF.png]] 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 : @@ -76,3 +74,4 @@ print(4*np.mean(accept)) #+end_src #+RESULTS: +: 3.112