Encadrer 2\sqrt{2} par balayage (algorithme) - Exercice 1

20 min
35
On souhaite obtenir un encadrement de 2\sqrt{2} d'amplitude 10−n10^{-n}, où nn est un entier naturel, à l'aide de la fonction Python ci-dessous.
Question 1

Justifier que 1≤2≤21\le \sqrt{2}\le 2. Pourquoi peut-on commencer le balayage à a=1a=1 ?

Correction
Pour deux nombres positifs aa et bb : a≤ba\le b si et seulement si a2≤b2a^{2}\le b^{2}.
On a 12=11^{2}=1, (2)2=2\left(\sqrt{2}\right)^{2}=2 et 22=42^{2}=4. Comme 1≤2≤41\le 2\le 4 et que ces trois nombres 11, 2\sqrt{2} et 22 sont positifs :
1≤2≤21\le \sqrt{2}\le 2

Le nombre 2\sqrt{2} est donc entre 11 et 22 : en partant de a=1a=1, on est sûr de commencer en dessous de 2\sqrt{2}.
Question 2

Expliquer le rôle de la boucle while et ce que renvoie la fonction.

Correction
La variable pas vaut 10−n10^{-n}.
Tant que (a+pas)2≤2\left(a+\text{pas}\right)^{2}\le 2, c'est-à-dire tant que a+pas≤2a+\text{pas}\le \sqrt{2}, on avance aa d'un pas : on « balaie » les nombres 11 ; 1+pas1+\text{pas} ; 1+2×pas1+2\times\text{pas} ; …
À la sortie de la boucle :
  • a≤2a\le \sqrt{2}, car aa n'a avancé que lorsque a+pas≤2a+\text{pas}\le \sqrt{2} ;
  • (a+pas)2>2\left(a+\text{pas}\right)^{2}\gt 2, donc a+pas>2a+\text{pas}\gt \sqrt{2}.
  • La fonction renvoie deux nombres aa et a+10−na+10^{-n} tels que a≤2<a+10−na\le \sqrt{2}\lt a+10^{-n} : un encadrement de 2\sqrt{2} d'amplitude 10−n10^{-n}.
    Remarque : Python calcule de façon approchée avec les nombres décimaux. Sans la fonction round, qui arrondit à nn chiffres après la virgule, on obtiendrait par exemple 1.4000000000000004 au lieu de 1.4.
    Question 3

    Faire fonctionner la fonction pour n=1n=1 en complétant le tableau ci-dessous, puis donner l'encadrement obtenu.

    Correction
    Pour n=1n=1, la variable pas vaut 10−1=0,110^{-1}=0{,}1.
    Lorsque a=1,4a=1{,}4, on a (1,5)2=2,25>2\left(1{,}5\right)^{2}=2{,}25\gt 2 : la boucle s'arrête et la fonction renvoie (1.4, 1.5).
    1,4≤2<1,51{,}4\le \sqrt{2}\lt 1{,}5
    Question 4

    L'appel balayage(3) renvoie (1.414, 1.415). Interpréter ce résultat, puis dire combien de fois la boucle a été parcourue.

    Correction
    L'appel balayage(3) donne un encadrement d'amplitude 10−310^{-3} :
    1,414≤2<1,4151{,}414\le \sqrt{2}\lt 1{,}415

    La variable aa est passée de 11 à 1,4141{,}414 par pas de 0,0010{,}001. La boucle a donc été parcourue 1,414−10,001=414\frac{1{,}414-1}{0{,}001}=414 fois.
    Chaque décimale supplémentaire multiplie environ par 1010 le nombre de passages dans la boucle : la méthode est simple, mais lente.
    Question 5

    Comment modifier la fonction pour obtenir un encadrement de 3\sqrt{3} ? Quel résultat obtient-on pour n=2n=2 ?

    Correction
    Comme 1≤3≤41\le 3\le 4, on a 1≤3≤21\le \sqrt{3}\le 2 : on peut encore commencer à a=1a=1. Il suffit de remplacer 22 par 33 dans la condition de la boucle (ligne 4).
    Pour n=2n=2 : 1,732=2,9929≤31{,}73^{2}=2{,}9929\le 3 et 1,742=3,0276>31{,}74^{2}=3{,}0276\gt 3. La fonction renvoie (1.73, 1.74).
    1,73≤3<1,741{,}73\le \sqrt{3}\lt 1{,}74

    Signaler une erreur

    Aide-nous à améliorer nos contenus en signalant les erreurs ou problèmes que tu penses avoir trouvés.

    Connecte-toi ou crée un compte pour signaler une erreur.