Introduction
Dans ce deuxième chapitre, on apprend à calculer les termes d’une suite définie par récurrence avec une boucle Pour : on part de u0 et on applique n fois la relation un+1 = f(un), avec une seule variable qui se met à jour à chaque tour.
Le cours avance en quatre packs : le calcul de un, une relation de récurrence qui dépend de n, la liste des premiers termes en Python (avec L[0], L[-1] et len) et deux suites qui dépendent l’une de l’autre. Chaque programme est écrit en algorithme, en Python et sur TI-82, avec un tableau d’exécution.
Deux pièges classiques sont expliqués en détail : le décalage d’indice de la TI-82 en mode Suite et l’écrasement d’une variable lorsque deux suites sont couplées.
Chapitre précédent : chapitre 1 – les bases : variables, boucles, conditions · chapitre suivant : chapitre 3 – sommes et produits de termes. Retrouvez tous les chapitres dans la rubrique Algorithmique et Python.
Cours proposé par Pr. Elakili sur Mission Maths 360.
Méthode
Pour une suite définie par
et
, on part de
et on applique
fois la relation de récurrence : on sait combien de tours faire, donc on utilise une boucle Pour. Une seule variable
suffit : à chaque tour, la nouvelle valeur remplace l’ancienne.
1. Calculer un terme
Pack 1 – calcul de 
On considère la suite définie par
et
.
Algorithme
Saisir n
u ← 2
Pour k allant de 1 à n
u ← 0,5 u + 3
Fin Pour
Afficher u
Python
def terme(n):
u = 2
for k in range(n):
u = 0.5*u + 3
return u
TI-82
:Prompt N
:2→U
:Pour(K,1,N)
:0.5U+3→U
:Fin
:Disp U
Tableau d’exécution pour
:
| tour | avant | 1 | 2 | 3 |
|---|---|---|---|---|
| u | 2 | 4 | 5 | 5,5 |
Le programme renvoie 5.5 : c’est
. À la main :
,
,
. Et terme(10) renvoie 5.99609375.
Pack 2 – la relation dépend de n
On considère la suite définie par
et
.
Algorithme
Saisir n
u ← 1
Pour k allant de 0 à n − 1
u ← u + 2k + 1
Fin Pour
Afficher u
Python
def terme2(n):
u = 1
for k in range(n):
u = u + 2*k + 1
return u
TI-82
:Prompt N
:1→U
:Pour(K,0,N-1)
:U+2K+1→U
:Fin
:Disp U
Au tour où le compteur vaut
, la variable contient
et on calcule
: le compteur joue le rôle de
, il doit donc aller de
à
. Termes obtenus :
,
,
,
,
,
on conjecture
(à démontrer par récurrence).
2. Sur la TI-82 sans programme : le mode Suite et la table
- mode : choisir SUITE (au lieu de FONCTION), entrer.
- f(x) : remplir
nMin=0,u(n)=0.5u(n-1)+3,u(nMin)=2. La lettre u : 2nde 7 ; la lettre n : X,T,θ,n. - 2nde fenêtre (déf table) : DébTable=0, PasTable=1.
- 2nde graphe (table) : on lit
,
,
, … en faisant défiler.
| n | u |
|---|---|
| 0 | 2 |
| 1 | 4 |
| 2 | 5 |
| 3 | 5,5 |
| 4 | 5,75 |
Piège de la TI : elle calcule u(n) à partir de u(n − 1)
La relation
se tape u(n)=0.5u(n-1)+3. Quand la relation contient
, on remplace
par
:
se tape u(n)=u(n-1)+2(n-1)+1.
3. Les listes en Python
Trois façons de créer une liste (exigées par le programme)
- En extension :
L = [1, 4, 9, 16]. - Par ajouts successifs :
L = [], puisL.append(x)dans une boucle (pack 3). - En compréhension :
[3*2**k for k in range(6)]donne[3, 6, 12, 24, 48, 96]: idéal pour une suite explicite (
). Pour un seul terme d’une suite explicite, pas de boucle : return 3*2**n(TI :3*2^N).
Pack 3 – la liste des premiers termes ![Rendered by QuickLaTeX.com [u_0,u_1,\dots,u_n]](https://missionmaths360.com/wp-content/ql-cache/quicklatex.com-bf171d91cbbb6f169768f7d68f2f92cb_l3.png)
Toujours avec
et
.
Algorithme
Saisir n
L ← [ 2 ]
Pour k allant de 1 à n
ajouter à L le nombre
0,5 × (dernier élément) + 3
Fin Pour
Afficher L
Python
def liste_termes(n):
L = [2]
for k in range(n):
L.append(0.5*L[-1] + 3)
return L
TI-82
:Prompt N
:{2}→L1
:Pour(K,1,N)
:0.5L1(K)+3→L1(K+1)
:Fin
:Disp L1
(L1 : 2nde 1)
liste_termes(4) renvoie [2, 4.0, 5.0, 5.5, 5.75] :
termes, de
à
.
À retenir
En Python, L[0] est le premier élément (donc
), L[-1] le dernier, len(L) le nombre d’éléments, L.append(x) ajoute x à la fin. Sur la TI, les listes commencent à l’indice 1 : L1(1) contient
.
Pack 4 – deux suites qui dépendent l’une de l’autre
On pose
,
et, pour tout
,
et
.
Algorithme
Saisir n
u ← 1 ; v ← 12
Pour k allant de 1 à n
w ← u (on garde uk)
u ← (u + 2v)/3
v ← (w + 3v)/4
Fin Pour
Afficher u et v
Python
def deux_suites(n):
u, v = 1, 12
for k in range(n):
u, v = ((u + 2*v)/3,
(u + 3*v)/4)
return u, v
TI-82
:Prompt N
:1→U
:12→V
:Pour(K,1,N)
:U→W
:(U+2V)/3→U
:(W+3V)/4→V
:Fin
:Disp U,V
Le piège de l’écrasement
Si l’on écrit u = (u+2*v)/3 puis v = (u+3*v)/4, le calcul de
utilise le nouveau
: on obtient
au lieu de
. Il faut sauvegarder
dans une variable auxiliaire
– ou, en Python, utiliser l’affectation simultanée u, v = …, ….
Résultats :
| n | 0 | 1 | 2 | 3 |
|---|---|---|---|---|
| 1 | 8,333 | 8,944 | 8,995 | |
| 12 | 9,25 | 9,021 | 9,002 |
Les deux suites semblent converger vers la même limite 9.
4. À vous de jouer
Exercice 1 · À vous de jouer ★★★
Algorithme + Python + TI-82 à chaque fois.
- Soit
et
. Écrire un programme qui renvoie
, puis vérifier avec le mode Suite de la TI. - Soit
et
. Écrire la relation à taper dans le mode Suite de la TI, puis un programme renvoyant la liste
. - Écrire en une ligne la liste des 11 premiers termes de la suite
. - Soit
et
. Écrire le programme (algorithme, Python, TI) qui renvoie
. Calculer
; que reconnaît-on ?
Corrigé
1.
,
,
; TI : u(n)=3u(n-1)-4, u(nMin)=5.
2. TI : u(n)=2u(n-1)-(n-1) ; termes 3, 6, 11, 20, 37 ; en Python, L.append(2*L[-1] - k) pour k in range(n).
3. [n**2 + 1 for n in range(11)].
4. Dans la boucle for k in range(n): écrire a = a/(k+1) (TI : Pour(K,0,N-1) puis A/(K+1)→A) ;
.
⇝ on reconnaît ![]()
Télécharger le chapitre en PDF
Pour réviser sur papier, téléchargez le chapitre complet au format PDF (avec les réponses des exercices).
