{"cells":[{"metadata":{},"cell_type":"markdown","source":"![En tête general](https://raw.githubusercontent.com/PythonLycee/PyLyc/master/img/En_tete_general.png)\n\n\n© Copyright Franck CHEVRIER 2019-2021 https://www.python-lycee.com.
\nLes activités partagées sur Capytale sont sous licence Creative Commons.\n\n Pour exécuter une saisie Python, sélectionner la cellule et valider avec SHIFT+Entrée.\n"},{"metadata":{},"cell_type":"markdown","source":"# Algorithme de Brouncker pour le calcul de ln(2) "},{"metadata":{},"cell_type":"markdown","source":"### Sommaire\n\n\n1. Construction géométrique
\n2. Implémentation de l'algorithme de Brouncker
\n3. Recherche de la précision de la méthode
\n"},{"metadata":{},"cell_type":"markdown","source":"*Le but de l'activité est d'obtenir une valeur approchée de $ln(2)$ à l'aide de l'algorithme de Brouncker, qui est basé sur une méthode géométrique.*"},{"metadata":{},"cell_type":"markdown","source":"## 1. Construction géométrique"},{"metadata":{},"cell_type":"markdown","source":"On considère la fonction $h$ définie sur $\\mathbb{R}^* $ par $h(x)=\\frac{1}{x}$.\n

\n__1.1. Démontrer que $ln(2)$ est l'aire de la zone délimitée par l'axe des abscisses, la courbe de la fonction $h$ et les droites d'équations $x=1$ et $x=2$. On cherche donc à donner une estimation de cette aire.__\n

\n\n\nLa figure dynamique suivante permet de visualiser la construction géométrique mise en œuvre.\n

\nPour faire apparaître et activer l'animation, sélectionner la cellule ci-dessous et valider avec SHIFT+Entrée.\n\n\n"},{"metadata":{"trusted":false},"cell_type":"code","source":"#Sélectionner cette zone puis SHIFT+ENTREE\nfrom IPython.display import HTML ; HTML(\"\"\"\"\"\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"

\nOn \"empile\" successivement des rectangles sous la courbe de $h$ de la façon suivante : \n\n
\nAu vu de la figure, on admettra que les sommes des aires des rectangles ainsi successivement construits ont pour limite l'aire de la zone que l'on cherche à calculer.\n\nPour la suite, on utilisera les notations introduites sur les figures fournies.

\n\n__1.2. a. Calculer $Aire(R_1)$.__
\n__$\\quad\\;$ b. En raisonnant par soustraction, justifier que $Aire(R_2)=\\frac{1}{3}-\\frac{1}{4}$__
\n\n\n"},{"metadata":{},"cell_type":"markdown","source":"![Brouncker_etape1](https://raw.githubusercontent.com/PythonLycee/PyLyc/master/img/Brouncker_img1.png)"},{"metadata":{},"cell_type":"markdown","source":"__1.3. En raisonnant par soustraction, justifier que $Aire(R_3)=\\frac{1}{5}-\\frac{1}{6}$ puis que $Aire(R_4)=\\frac{1}{7}-\\frac{1}{8}$.__
\n\n"},{"metadata":{},"cell_type":"markdown","source":"![Brouncker_etape2](https://raw.githubusercontent.com/PythonLycee/PyLyc/master/img/Brouncker_img2.png)"},{"metadata":{},"cell_type":"markdown","source":"__1.4 Donner les valeurs de $Aire(R_5)$, $Aire(R_6)$, $Aire(R_7)$ et $Aire(R_8)$.__

\n"},{"metadata":{},"cell_type":"markdown","source":"![Brouncker_etape3](https://raw.githubusercontent.com/PythonLycee/PyLyc/master/img/Brouncker_img3.png)"},{"metadata":{},"cell_type":"markdown","source":"## 2. Implémentation de l'algorithme de Brouncker"},{"metadata":{},"cell_type":"markdown","source":"__2.1. Soit $k\\in\\mathbb{N}^*$. En réduisant au même dénominateur, exprimer $\\frac{1}{2k-1}-\\frac{1}{2k}$ sous forme d'une fraction.__\n
\n\n__2.2. Justifier que la somme des $8$ rectangles $R_k$ précédemment construits, pour $1\\leq k \\leq 8$, vaut $ \\sum\\limits_{k=1}^8{\\frac{1}{(2k-1)\\times(2k)}} =\\frac{1}{1\\times2}+\\frac{1}{3\\times4}+...+\\frac{1}{15\\times16}$.__\n
\n\n__2.3. Écrire une fonction Python Brouncker qui permet de calculer cette somme.__\n
$\\quad\\;$On pourra incrémenter un accumulateur S dans une boucle pour additionner, l'une après l'autre, les aires de ces rectangles."},{"metadata":{"trusted":false},"cell_type":"code","source":"# Écrire ici la fonction Brouncker qui renvoie la somme des 8 rectangles \n\n\n\n\n\n# Écrire ici l'appel à la fonction Brouncker\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"On admet maintenant que la somme $ \\sum\\limits_{k=1}^n{\\frac{1}{(2k-1)\\times(2k)}} =\\frac{1}{1\\times2}+\\frac{1}{3\\times4}+...+\\frac{1}{(2n-1)\\times(2n)}$ a pour limite $ln(2)$ quand $n$ tend vers $+\\infty$.\n\n\n\n__2.4. Adapter la fonction Brouncker précédente pour qu'elle reçoive $n$ en argument et permette de calculer cette somme.__"},{"metadata":{"trusted":false},"cell_type":"code","source":"# Écrire ici la fonction Brouncker qui renvoie la somme des n rectangles \n\n\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"__2.5. Effectuer une saisie pour obtenir une valeur approchée de $ln(2)$ obtenue par la méthode de Brouncker avec 100 rectangles.__"},{"metadata":{"trusted":false},"cell_type":"code","source":"# Écrire ici l'appel à la fonction Brouncker\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## 3. Recherche de la précision de la méthode"},{"metadata":{},"cell_type":"markdown","source":"Dans la partie précédente, on a défini une suite $(u_n)_{n \\geq 1}$ définie par $ u_n=\\sum\\limits_{k=1}^n{\\frac{1}{(2k-1)\\times(2k)}} =\\frac{1}{1\\times2}+\\frac{1}{3\\times4}+...+\\frac{1}{(2n-1)\\times(2n)}$ en considérant une somme d'aires de rectangles construits sous la courbe de $h$\n

\nOn admet dans cette partie qu'en considérant des rectangles construits au dessus de la courbe de $h$, on peut définir une suite $(v_n)_{n \\geq 1}$ définie par $ v_n=1-\\sum\\limits_{k=1}^n{\\frac{1}{(2k)\\times(2k+1)}} =1-\\frac{1}{2\\times3}-\\frac{1}{4\\times5}+...+\\frac{1}{(2n)\\times(2n+1)}$ qui vérifie $\\lim\\limits_{n \\to +\\infty}{v_n}=ln(2)$.\n

\n\n\nLa figure dynamique suivante permet de visualiser la construction géométrique mise en œuvre.\n

\nPour faire apparaître et activer l'animation, sélectionner la cellule ci-dessous et valider avec SHIFT+Entrée.\n\n"},{"metadata":{"trusted":false},"cell_type":"code","source":"#Sélectionner cette zone puis SHIFT+ENTREE\nfrom IPython.display import HTML ; HTML(\"\"\"\"\"\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"On admettra que :
\n\n"},{"metadata":{},"cell_type":"markdown","source":"On fixe $m>0$.
\nAinsi, si $n$ vérifie $v_n - u_n \\leq m$, alors $u_n$ et $v_n$ fournissent un encadrement de $ln(2)$ d'amplitude inférieure à $m$.
\n\n__3.1. Reprendre la fonction Python Brouncker écrite dans la partie 2 et modifier cette fonction de telle sorte que :__\n\n+ la fonction reçoit $m$ en argument\n+ dans la boucle on calcule à la fois $u_n$ et $v_n$\n+ la boucle s'interrompt dès que $v_n - u_n \\leq m$\n+ la fonction renvoie les valeurs $u_n$ et $v_n$ finales\n

\nAide : On utilisera une boucle while, et on introduira une variable $T$ pour le calcul des termes de $v_n$."},{"metadata":{"trusted":false},"cell_type":"code","source":"# Écrire ici la fonction Brouncker modifiée\n\n\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"__3.2. À l'aide de la fonction obtenue à la question précédente, obtenir un encadrement de $ln(2)$ d'amplitude inférieure à $10^{-6}$.__"},{"metadata":{"trusted":false},"cell_type":"code","source":"# Effectuer ici l'appel à la fonction\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"__3.3. La syntaxe from math import log permet d'utiliser la fonction Python log qui correspond à la fonction mathématique $ln$.__
\n__$\\quad\\;\\;$Effectuer la saisie nécessaire pour calculer $ln(2)$, et vérifier la cohérence de l'encadrement obtenu à la question précédente.__
"},{"metadata":{"trusted":false},"cell_type":"code","source":"# Écrire ici les saisies nécessaires pour calculer le logarithme népérien de 2\n\n\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"![Brouncker](https://raw.githubusercontent.com/PythonLycee/PyLyc/master/img/William_Brouncker.jpg)\n\n
William Brouncker (1620-1684)
"},{"metadata":{},"cell_type":"markdown","source":"© Copyright Franck CHEVRIER 2019-2021 https://www.python-lycee.com.
\nLes activités partagées sur Capytale sont sous licence Creative Commons."}],"metadata":{"celltoolbar":"Raw Cell Format","kernelspec":{"display_name":"Python 3","language":"python","name":"python3"}},"nbformat":4,"nbformat_minor":2}