Faire des maths

Chapitre 4 — Suites numériques · coursIV Programmer une suite définie par récurrence

Sommaire du chapitre
  1. I — Définition d'une suite
  2. II — Suites définies explicitement
  3. III — Suites définies par récurrence
  4. IV — Programmer une suite définie par récurrence
  5. V — Représentation graphique d'une suite
  6. VI — Sens de variation d'une suite
  7. VII — Suites arithmétiques
  8. VIII — Reconnaître une suite arithmétique
  9. IX — Terme général et variations d'une suite arithmétique
  10. X — Suites géométriques
  11. XI — Reconnaître une suite géométrique
  12. XII — Terme général et variations d'une suite géométrique

Le programme type

Pour une suite donnée par et une relation , la fonction suite(n) renvoie  :

  • la variable u reçoit le premier terme ;
  • la boucle for refait fois le calcul du terme suivant ;
  • à la sortie de la boucle, u vaut  : return u le renvoie.

Méthode 4 — Calculer un terme de rang élevé avec Python

Exemples corrigés

  1. a)
    Soit et . Écrire le programme, puis calculer .
  2. b)
    Une cuve contient  L d'eau. Chaque jour, on en utilise , puis on ajoute  L. Combien d'eau contient-elle au bout de jours ?
Correction

a)

def suite(n):
    u = 4
    for i in range(n):
        u = 3*u - 5
    return u

la ligne u = 4 donne  ; dans la boucle, le nouveau u est , l'ancien est

Dans la console, suite(12) affiche 797164 : .
contrôle : suite(1) affiche 7, comme

b)

et .
utiliser , c'est en garder  : on multiplie par
def cuve(n):
    u = 800
    for i in range(n):
        u = 0.8*u + 100
    return u
cuve(10) affiche 532.21... : il reste environ  L.
on arrondit au litre

À vous de jouer

Écrire le programme de la suite définie par et , puis donner .

Correction
def suite(n):
    u = 3
    for i in range(n):
        u = 2*u - 1
    return u

la ligne u = 3 donne  ; dans la boucle, le nouveau u est

Dans la console, suite(10) affiche 2049 : .
contrôle : suite(1) affiche 5, comme
À faire : exercices 16 à 19

Exercice 16 — Que renvoie ce programme ?

def suite(n):
    u = 3
    for i in range(n):
        u = 3*u - 4
    return u
  1. 1)
    Quelle suite ce programme calcule-t-il ? Donner et la relation de récurrence.
  2. 2)
    Calculer à la main ce que renvoient suite(1), suite(2) et suite(5).
Corrigé
  1. 1°)
    et .
  2. 2°)

    suite(1) renvoie , suite(2) renvoie , suite(5) renvoie .

La boucle tourne fois : suite(5) applique fois la relation à partir de .

Exercice 17 — Même travail

Même travail avec la ligne u = 160 au départ et la ligne u = 0.5*u + 2 dans la boucle, pour suite(1), suite(2) et suite(6).

Corrigé

et .

suite(1) renvoie , suite(2) renvoie , suite(6) renvoie .

Python affiche 82.0 : avec 0.5, le résultat est un nombre décimal.

Exercice 18 — Compléter le programme

Soit et .

  1. 1)
    Calculer à la main.
  2. 2)
    Compléter le programme, puis donner .
def suite(n):
    u = .....
    for i in range(n):
        u = .....
    return u
  1. 3)
    Même travail avec et  : écrire le programme, puis donner , et .
Corrigé
  1. 1°)
  2. 2°)

    On range dans u, puis on traduit la relation :

    def suite(n):
        u = 2
        for i in range(n):
            u = 1 + 2*u
        return u

    suite(10) affiche 3071 : .

  3. 3°)

    Seules la valeur de départ et la ligne de la boucle changent :

    def suite(n):
        u = 1
        for i in range(n):
            u = 6 - 2*u
        return u

     ;  ; .

On contrôle le programme sur un terme calculé à la main : suite(3) doit afficher .

Exercice 19 — Les abonnés d'une salle de sport

Une salle de sport compte abonnés en 2024. Chaque année, des abonnés ne se réinscrivent pas, et nouveaux abonnés arrivent. On note le nombre d'abonnés l'année  : .

  1. 1)
    Calculer et .
  2. 2)
    Exprimer en fonction de .
  3. 3)
    Écrire un programme qui renvoie .
  4. 4)
    Combien y aura-t-il d'abonnés en 2039 (arrondi à l'unité) ?
  5. 5)
    Vers quelle valeur le nombre d'abonnés semble-t-il se stabiliser ?
Corrigé
  1. 1°)

    des abonnés restent, puis arrivent :

  2. 2°)
  3. 3°)

    Sur le modèle de la fonction suite(n) du cours :

    def abonnes(n):
        a = 1200
        for i in range(n):
            a = 0.6*a + 600
        return a
  4. 4°)
    2039 correspond à  : abonnes(15) affiche 1499.85…, soit environ abonnés.
  5. 5°)
    Le nombre d'abonnés semble se stabiliser vers .

Non exigé : avec abonnés, , le nombre ne change plus.