Aller au contenu

Leçon 7

Algorithmes : seuil et valeurs approchées

Vidéo 7 : Algorithmes : seuil et valeurs approchées · 3 min 31 s · sous-titres en français

Le cours écrit

7.1 Recherche d'un seuil

Problème. On reprend le placement du chapitre 1 : un capital de 10001000 € est placé à 3 %3\,\% par an, avec intérêts composés, et un=1000×1,03nu_n = 1000 \times 1{,}03^n. Au bout de combien d'années dépasse-t-il 20002000 € ?

  • Le rang cherché existe : 1,03>11{,}03 > 1, donc un→+∞u_n \to +\infty, et l'intervalle ]2000 ;+∞[]2000\,;+\infty[ contient tous les termes à partir d'un certain rang.
  • La suite est croissante : une fois le seuil franchi, on reste au-dessus.

Algorithme en langage naturel (« ←\leftarrow » se lit « prend la valeur ») :

n ← 0
u ← 1000
Tant que u ≤ 2000
    u ← 1,03 × u
    n ← n + 1
Fin Tant que

En Python :

def seuil(A):
    n = 0
    u = 1000
    while u <= A:
        u = 1.03 * u
        n = n + 1
    return n

seuil(2000) renvoie 24. Vérification : 1000×1,0323≈1973,59≤20001000 \times 1{,}03^{23} \approx 1973{,}59 \leq 2000 et 1000×1,0324≈2032,79>20001000 \times 1{,}03^{24} \approx 2032{,}79 > 2000. Le capital dépasse 20002000 € au bout de 2424 ans.

Attention. La boucle ne s'arrête que parce que le seuil est atteint. Avec une suite majorée par 20002000, la condition u <= 2000 resterait vraie et le programme ne s'arrêterait jamais. Avant de lancer un algorithme de seuil, on justifie que le seuil sera atteint (par une limite).

Au chapitre 8, le logarithme permettra de résoudre 1,03n>21{,}03^n > 2 par le calcul.

7.2 Listes des premiers termes

On peut générer la liste des premiers termes (programme : « notion de liste »).

  • En compréhension :
>>> [round(1000 * 1.03**n, 2) for n in range(5)]
[1000.0, 1030.0, 1060.9, 1092.73, 1125.51]
  • Par ajouts successifs :
L = []
for n in range(5):
    L.append(round(1000 * 1.03**n, 2))

range(5) parcourt les entiers 0,1,2,3,40, 1, 2, 3, 4 : on obtient les termes de rang 00 à 44, arrondis au centime.

7.3 Valeurs approchées : l'exemple de 2\sqrt2

Une suite convergente fournit des valeurs approchées de sa limite. On définit u0=2etun+1=12(un+2un).u_0 = 2 \qquad\text{et}\qquad u_{n+1} = \frac12\left(u_n + \frac{2}{u_n}\right). C'est la méthode de Héron, du nom d'un mathématicien grec de l'Antiquité.

nn 00 11 22 33 44
unu_n 22 1,51{,}5 1712≈1,4167\dfrac{17}{12} \approx 1{,}4167 577408≈1,414 216\dfrac{577}{408} \approx 1{,}414\,216 ≈1,414 213 562 375\approx 1{,}414\,213\,562\,375

Et 2≈1,414 213 562 373\sqrt2 \approx 1{,}414\,213\,562\,373 : u4u_4 donne déjà 1111 décimales exactes.

u = 2
for k in range(4):
    u = u / 2 + 1 / u
print(u)        # affiche 1.4142135623746899

Pourquoi 2\sqrt2 ? On admet ici que la suite converge vers un réel ℓ>0\ell > 0 : l'étude de sa convergence est un approfondissement possible du programme (« étude de la convergence de la méthode de Héron »). En passant à la limite dans la relation : ℓ=12(ℓ+2ℓ)  ⟺  2ℓ=ℓ+2ℓ  ⟺  ℓ=2ℓ  ⟺  ℓ2=2,\ell = \frac12\left(\ell + \frac2\ell\right) \iff 2\ell = \ell + \frac2\ell \iff \ell = \frac2\ell \iff \ell^2 = 2, et comme ℓ>0\ell > 0, ℓ=2\ell = \sqrt2.

Autres valeurs approchées du programme. Le programme cite aussi π\pi, ee, 1+52\frac{1 + \sqrt5}{2} (le nombre d'or) et ln⁡(2)\ln(2). Les exercices 12 et 14 traitent ee et le nombre d'or ; ln⁡(2)\ln(2) attend le chapitre 8.

Lire le cours complet du chapitre

Exercices 13 et 14

  • Exercice 13 : un algorithme de seuil
  • Exercice 14 : une valeur approchée du nombre d'or

Exercices du chapitre (PDF, 140 Ko)

Corrigés

Cherche d'abord les exercices sur ta feuille, puis compare avec le corrigé détaillé.

Corrigés du chapitre (PDF, 169 Ko)

Tu es hors connexion. Les chapitres téléchargés restent disponibles dans Hors connexion.