Introduction
Ce troisième chapitre est consacré au calcul de sommes et de produits de termes, une question très fréquente au bac. La méthode repose sur la variable accumulateur : on initialise S à 0 (ou P à 1), puis on ajoute (ou on multiplie) le terme courant à chaque tour de boucle.
Quatre packs illustrent la méthode : la somme des termes d’une suite récurrente (avec contrôle par la formule d’une somme géométrique), une somme explicite qui permet d’approcher π, un produit et une somme de factorielles pour approcher le nombre e, et une suite définie par une somme.
Les programmes sont donnés en algorithme, en Python et sur TI-82, avec les erreurs classiques à éviter (ordre des lignes, nombre de tours de boucle) et sept exercices d’entraînement.
Chapitre précédent : chapitre 2 – calculer les termes d’une suite · chapitre suivant : chapitre 4 – rechercher un seuil. Retrouvez tous les chapitres dans la rubrique Algorithmique et Python.
Cours proposé par Pr. Elakili sur Mission Maths 360.
Méthode : la variable « accumulateur »
Pour calculer
, on utilise une variable
que l’on initialise à
, puis, à chaque tour de boucle, on lui ajoute le terme courant :
. Pour un produit
, on initialise
à
et on fait
.
1. Sommes de termes
Pack 1 – somme des termes d’une suite récurrente
On calcule
avec
et
.
Algorithme
Saisir n
u ← 3 ; S ← 0
Pour k allant de 0 à n
S ← S + u
u ← 2u
Fin Pour
Afficher S
Python
def somme(n):
u = 3
S = 0
for k in range(n+1):
S = S + u
u = 2*u
return S
TI-82
:Prompt N
:3→U
:0→S
:Pour(K,0,N)
:S+U→S
:2U→U
:Fin
:Disp S
Ordre des lignes : on ajoute d’abord le terme courant
à
, puis on passe au terme suivant. La boucle fait
tours car la somme contient
termes (
à
).
Tableau d’exécution :
| k | 0 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|---|
| u (avant) | 3 | 6 | 12 | 24 | 48 | 96 |
| S (après) | 3 | 9 | 21 | 45 | 93 | 189 |
Essai : somme(5) renvoie
. Contrôle par la formule :
. ✓
Pack 2 – somme d’une suite explicite et approximation de 
On calcule
.
Algorithme
Saisir n
S ← 0
Pour k allant de 1 à n
S ← S + 1/k²
Fin Pour
Afficher S
Python
def carres(n):
s = 0
for k in range(1, n+1):
s = s + 1/k**2
return s
TI-82
:Prompt N
:0→S
:Pour(K,1,N)
:S+1/K^2→S
:Fin
:Disp S
En une ligne : sum([1/k**2 for k in range(1, n+1)]) (liste en compréhension).
Résultats :
et
. On admet que
tend vers
: ainsi
est une valeur approchée de
.
Astuce TI sans programme
somme(suite(1/K^2,K,1,10)) (somme( et suite( se trouvent dans le menu 2nde stats LISTES, onglets MATH et OPS).
2. Produits
Pack 3 – un produit et le nombre 
On utilise
où
.
Algorithme
Saisir n
S ← 1 (le terme 1/0!)
f ← 1 (contiendra k!)
Pour k allant de 1 à n
f ← f × k
S ← S + 1/f
Fin Pour
Afficher S
Python
def approx_e(n):
S = 1
f = 1
for k in range(1, n+1):
f = f*k
S = S + 1/f
return S
TI-82
:Prompt N
:1→S
:1→F
:Pour(K,1,N)
:F*K→F
:S+1/F→S
:Fin
:Disp S
On ne recalcule pas
à chaque tour : on passe de
à
en multipliant par
(accumulateur produit, initialisé à
).
Résultats : approx_e(5)
; approx_e(10)
; à comparer à
(touche 2nde ln).
3. Une suite définie par une somme
Pack 4 – le terme ajouté dépend de k et de n
On considère
.
Algorithme
Saisir n
S ← 0
Pour k allant de 1 à n
S ← S + 1/(n + k)
Fin Pour
Afficher S
Python
def S(n):
s = 0
for k in range(1, n+1):
s = s + 1/(n+k)
return s
[S(n) for n in range(1, 6)]
TI-82
:Prompt N
:0→S
:Pour(K,1,N)
:S+1/(N+K)→S
:Fin
:Disp S
Attention
Ici le terme ajouté dépend à la fois de
(le compteur) et de
(fixé pendant toute la boucle). Quand
change, toute la somme change : on ne peut pas passer de
à
en ajoutant un seul terme.
Résultats : la liste vaut environ [0.5, 0.5833, 0.6167, 0.6345, 0.6456] ;
,
,
. La suite semble croissante et converger vers
.
Les erreurs classiques
- Oublier d’initialiser S à 0 (ou P à 1), ou l’initialiser dans la boucle : la somme repart de zéro à chaque tour.
- Se tromper sur le nombre de termes : de
à
, il y en a
(range(n+1), TI :Pour(K,0,N)). - Inverser les deux lignes de la boucle : on additionne alors
.
4. À vous de jouer
Exercice 1 · À vous de jouer ★★★
Algorithme + Python + TI-82.
- Calculer
avec une boucle, puis en une ligne avec sumetrange. - Calculer
pour
. Conjecturer une formule. - Calculer le produit
pour
. Conjecturer, puis démontrer. - Calculer
et comparer avec
. - Pour
et
(chapitre 2), calculer
. - Calculer le produit des 5 premiers entiers impairs
à l’aide d’une boucle. - Écrire une fonction Python
somme_liste(L)qui renvoie la somme des éléments d’une liste L sans utilisersum, à l’aide defor x in L:. Sur la TI, que faitsomme(L1)?
Corrigé
1. 5 050 ; sum(range(1, 101)).
2.
.
⇝ ![]()
3.
: produit télescopique
.
⇝ ![]()
4.
(somme télescopique).
5.
.
6.
(initialiser
à
, puis
pour
de
à
).
7. S = 0, puis for x in L: S = S + x, puis return S ; somme(L1) renvoie directement la somme des éléments de la liste L1.
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).
