Sommes et produits
Les sommes et les produits constituent deux opérations fondamentales des mathématiques appliquées et de l'informatique. Ils permettent de représenter de manière concise l'addition ou la multiplication répétée d'une série de valeurs. Ces notations apparaissent fréquemment dans les algorithmes, les suites numériques, les statistiques, l'analyse de complexité, le calcul scientifique, les probabilités ainsi que dans l'étude des structures de données.
En programmation, une somme correspond généralement à une boucle accumulant progressivement des valeurs, tandis qu'un produit représente une boucle multipliant successivement plusieurs termes. La notation mathématique permet de décrire ces traitements sans devoir écrire toutes les opérations individuellement. Elle facilite ainsi la compréhension des formules, la démonstration des algorithmes et l'évaluation du nombre d'opérations effectuées par un programme.
Les sommes
Une somme représente l'addition successive de plusieurs termes.
Par exemple :
| 1 + 2 + 3 + 4 + 5 |
peut être représenté par la notation suivante :
| ∑i=15 i |
Le symbole grec ∑, appelé sigma majuscule, représente l'opération de sommation.
La notation générale est :
| ∑i=mn f(i) |
où :
- i représente l'indice de sommation ;
- m représente la valeur initiale de l'indice ;
- n représente la valeur finale de l'indice ;
- f(i) représente le terme à additionner.
Cette expression signifie que l'on doit calculer :
| f(m) + f(m+1) + f(m+2) + ... + f(n) |
Exemple de somme simple
Considérons la somme suivante :
| ∑i=14 i |
Elle correspond à :
| 1 + 2 + 3 + 4 |
Le résultat est donc :
| 10 |
En programmation, cette somme peut être calculée à l'aide d'une boucle.
|
somme ← 0 BOUCLE POUR i ← 1 JUSQU'A 4 somme ← somme + i FIN BOUCLE POUR |
À la fin de la boucle, la variable somme contient la valeur 10.
Somme d'une constante
Lorsqu'une même constante est répétée plusieurs fois, la somme peut être remplacée par une multiplication.
| ∑i=1n c = nc |
Par exemple :
| ∑i=15 3 |
correspond à :
| 3 + 3 + 3 + 3 + 3 |
Le résultat est :
| 5 × 3 = 15 |
Cette propriété est très utile pour simplifier certaines expressions mathématiques et certaines analyses d'algorithmes.
Somme des premiers nombres naturels
Une formule classique permet de calculer la somme des entiers de 1 à n :
| 1 + 2 + 3 + ... + n |
Cette somme est égale à :
| n(n+1) / 2 |
Ainsi :
| ∑i=1n i = n(n+1) / 2 |
Par exemple, pour n = 100 :
| 100 × 101 / 2 = 5050 |
Cette formule évite d'effectuer cent additions successives et permet d'obtenir directement le résultat.
Somme des carrés
La somme des carrés des premiers nombres naturels est donnée par la formule suivante :
| ∑i=1n i2 = n(n+1)(2n+1) / 6 |
Par exemple, pour n = 4 :
| 12 + 22 + 32 + 42 |
donne :
| 1 + 4 + 9 + 16 = 30 |
La formule retourne également :
| 4 × 5 × 9 / 6 = 30 |
Somme des cubes
La somme des cubes des premiers nombres naturels est donnée par :
| ∑i=1n i3 = [n(n+1) / 2]2 |
Par exemple :
| 13 + 23 + 33 |
donne :
| 1 + 8 + 27 = 36 |
La formule retourne :
| [3 × 4 / 2]2 = 62 = 36 |
Cette identité montre que la somme des cubes est égale au carré de la somme des premiers entiers naturels.
Sommes géométriques
Une somme géométrique est une somme dans laquelle chaque terme est obtenu en multipliant le précédent par une constante appelée raison.
Sa forme générale est :
| a + ar + ar2 + ar3 + ... + arn |
Elle peut être écrite :
| ∑i=0n ari |
Lorsque r ≠ 1, la somme vaut :
| a(1-rn+1) / (1-r) |
Par exemple :
| 1 + 2 + 4 + 8 + 16 |
est une somme géométrique de premier terme 1 et de raison 2.
Le résultat est :
| 31 |
Les sommes géométriques apparaissent fréquemment dans l'analyse des algorithmes récursifs et dans les structures en arbre.
Sommes imbriquées
Une somme peut contenir une autre somme.
Par exemple :
| ∑i=1n ∑i=1m f(i,j) |
Cette notation signifie que, pour chaque valeur de i, toutes les valeurs de j doivent être parcourues.
En programmation, cela correspond généralement à deux boucles imbriquées :
|
somme ← 0 BOUCLE POUR i ← 1 JUSQU'A n BOUCLE POUR j ← 1 JUSQU'A m somme ← somme + f(i,j) FIN BOUCLE POUR FIN BOUCLE POUR |
Si les deux boucles parcourent chacune n éléments, le nombre total d'itérations est généralement proportionnel à :
| n2 |
Cette situation intervient souvent dans l'analyse de complexité des algorithmes.
Propriétés des sommes
Les sommations possèdent plusieurs propriétés permettant de simplifier les expressions.
Séparation d'une somme
| ∑(ai + bi) = ∑ai + ∑bi |
Cette propriété indique que la somme de deux expressions peut être séparée en deux sommes distinctes.
Multiplication par une constante
| ∑ cai = c∑ai |
Une constante peut être sortie de la sommation.
Découpage d'un intervalle
|
∑i=1n ai = ∑i=1m ai + ∑i=m+1n ai |
Une somme peut être divisée en plusieurs parties, à condition de conserver tous les indices.
Somme vide
Lorsqu'aucun terme ne doit être additionné, la somme est dite vide et sa valeur est définie comme étant :
| 0 |
Cette convention simplifie de nombreuses formules et permet d'éviter des cas particuliers dans les algorithmes.
Les produits
Un produit représente la multiplication successive de plusieurs termes.
Par exemple :
| 1 × 2 × 3 × 4 × 5 |
peut être représenté par :
| πi=15 i |
Le symbole grec π, appelé pi majuscule, représente l'opération de produit.
La notation générale est :
| πi=mn f(i) |
Cette expression signifie :
| f(m) × f(m+1) × f(m+2) × ... × f(n) |
Exemple de produit simple
Considérons :
| πi=14 i |
Cette expression correspond à :
| 1 × 2 × 3 × 4 |
Le résultat est :
| 24 |
En programmation, ce calcul peut être représenté ainsi :
|
produit ← 1 BOUCLE POUR i ← 1 JUSQU'A 4 produit ← produit × i FIN BOUCLE POUR |
Il est important d'initialiser la variable produit à 1 plutôt qu'à 0, car toute multiplication par zéro produirait immédiatement zéro.
Produit d'une constante
Lorsqu'une constante est multipliée par elle-même plusieurs fois, le produit correspond à une puissance.
| πi=1n c = cn |
Par exemple :
| πi=14 2 |
correspond à :
| 2 × 2 × 2 × 2 |
Le résultat est :
| 24 = 16 |
Produit et factorielle
La factorielle d'un entier naturel n est définie par :
| n! = 1 × 2 × 3 × ... × n |
Elle peut donc être écrite sous forme de produit :
| n! = πi=1n i |
Par exemple :
| 5! = 1 × 2 × 3 × 4 × 5 = 120 |
Les factorielles sont utilisées dans les permutations, les combinaisons, les probabilités et l'analyse de certains algorithmes.
Produit vide
Lorsqu'un produit ne contient aucun terme, il est appelé produit vide.
Sa valeur est définie comme étant :
| 1 |
Cette convention est comparable à la somme vide, dont la valeur est zéro.
Elle est notamment utilisée pour définir :
| 0! = 1 |
En effet, le produit des entiers de 1 à 0 ne contient aucun terme et vaut donc, par convention, 1.
Propriétés des produits
Les produits possèdent également plusieurs propriétés importantes.
Produit d'un produit
|
π(aibi) = (πai)(πbi) |
Le produit de deux expressions peut être séparé en deux produits distincts.
Puissance d'un produit
| π aic = (πai)c |
Lorsqu'un même exposant est appliqué à chacun des termes, il peut être appliqué au produit complet.
Découpage d'un produit
|
πi=1n ai = (πi-1n ai) (πi=n+1n ai) |
Comme une somme, un produit peut être divisé en plusieurs parties.
Présence d'un zéro
Si un seul terme d'un produit vaut zéro, alors le produit complet vaut également :
| 0 |
Cette propriété est importante dans les algorithmes manipulant des tableaux de valeurs numériques.
Sommes et produits en programmation
Dans un programme, les sommes et les produits sont généralement réalisés à l'aide d'une variable appelée accumulateur.
Pour une somme :
|
somme ← 0 POUR chaque valeur somme ← somme + valeur FIN POUR |
Pour un produit :
|
produit ← 1 POUR chaque valeur produit ← produit × valeur FIN POUR |
Ces deux modèles se retrouvent dans pratiquement tous les langages de programmation.
Exemple en Java
L'exemple suivant calcule la somme et le produit des entiers de 1 à 5 :
Le programme retourne :
Somme = 15Produit = 120
La somme correspond à :
| 1 + 2 + 3 + 4 + 5 |
tandis que le produit correspond à :
| 1 × 2 × 3 × 4 × 5 |
Sommes et produits dans les tableaux
Les sommations sont souvent utilisées pour calculer :
- le total des éléments d'un tableau ;
- la moyenne arithmétique ;
- une somme cumulée ;
- une distance ;
- un produit scalaire ;
- une variance ;
- une probabilité.
Par exemple, la somme des éléments d'un tableau peut être exprimée ainsi :
| ∑i=0n-1 tableau[i] |
Le produit des éléments peut être exprimé par :
| πi=0n-1 tableau[i] |
Dans les langages fonctionnels, ces opérations sont souvent réalisées à l'aide de fonctions comme reduce, fold ou aggregate.
Sommes cumulées
Une somme cumulée contient, à chaque position, la somme de tous les éléments précédents.
Pour le tableau :
| [2, 4, 3, 5] |
la somme cumulée est :
| [2, 6, 9, 14] |
Elle peut être définie par :
| S(k) = ∑i=0k ai |
Les sommes cumulées permettent de calculer rapidement la somme d'une portion de tableau et sont largement utilisées dans les algorithmes de traitement de données.
Produits cumulés
Un produit cumulé repose sur le même principe, mais utilise la multiplication.
Pour le tableau :
| [2, 3, 4, 5] |
le produit cumulé devient :
| [2, 6, 24, 120] |
Il est défini par :
| P(k) = πi=0k ai |
Cette technique est utilisée dans certaines méthodes probabilistes, en combinatoire et dans les calculs numériques.
Sommes et analyse d'algorithmes
Les sommes sont particulièrement importantes pour déterminer le nombre d'opérations effectuées par un algorithme.
Considérons une boucle dont le nombre d'itérations dépend de l'indice extérieur :
|
POUR i ← 1 JUSQU'A n POUR j ← 1 JUSQU'A i Traitement FIN POUR FIN POUR |
Le nombre total d'exécutions du traitement est :
| 1 + 2 + 3 + ... + n |
soit :
| n(n+1) / 2 |
Lorsque n devient grand, cette expression est proportionnelle à :
| n2 |
La complexité de l'algorithme est donc :
| O(n2) |
Produits et croissance des valeurs
Les produits peuvent croître extrêmement rapidement.
Par exemple :
| 10! = 3 628 800 |
tandis que :
| 20! = 2 432 902 008 176 640 000 |
Cette croissance rapide peut provoquer un dépassement de capacité dans les types numériques standards.
Un programme manipulant des produits importants doit donc utiliser :
- des entiers de grande taille ;
- des types multiprécision ;
- des logarithmes ;
- ou des techniques spécialisées évitant de calculer directement le produit complet.
- Utilisation des logarithmes pour les produits
Le logarithme transforme un produit en une somme :
| log(a × b) = log(a) + log(b) |
Ainsi :
| log(πai) = ∑log(ai) |
Cette propriété est particulièrement utile lorsque les valeurs sont trop grandes ou trop petites pour être représentées directement.
Elle est largement utilisée dans :
- les probabilités ;
- l'apprentissage automatique ;
- les statistiques ;
- les calculs scientifiques ;
- les algorithmes numériques.
- Applications
Les sommes et les produits sont utilisés dans de nombreux domaines :
- analyse des algorithmes ;
- traitement de tableaux ;
- statistiques ;
- probabilités ;
- combinatoire ;
- calcul matriciel ;
- apprentissage automatique ;
- traitement du signal ;
- cryptographie ;
- calcul scientifique ;
- finance ;
- physique numérique.
Ils interviennent également dans les fonctions génératrices, les séries, les factorielles, les coefficients binomiaux et les nombres harmoniques.
Avantages
Les notations de somme et de produit présentent plusieurs avantages :
- elles condensent des expressions très longues ;
- elles décrivent clairement les traitements répétitifs ;
- elles facilitent l'analyse des algorithmes ;
- elles permettent de manipuler des suites et des séries ;
- elles traduisent naturellement les boucles de programmation ;
- elles simplifient les démonstrations mathématiques.
Limites et précautions
L'utilisation des sommes et des produits nécessite toutefois certaines précautions :
- une somme importante peut produire un dépassement de capacité ;
- l'addition répétée de nombres à virgule flottante peut accumuler des erreurs d'arrondi ;
- un produit peut croître ou diminuer très rapidement ;
- l'ordre des opérations peut modifier la précision numérique ;
- une mauvaise initialisation de l'accumulateur produit un résultat incorrect ;
- les indices de départ et de fin doivent être définis avec précision.
Pour les calculs sensibles, il peut être nécessaire d'utiliser des algorithmes comme la sommation de Kahan, des types numériques multiprécision ou des calculs logarithmiques.
Remarque
Les sommes et les produits constituent un lien direct entre les notations mathématiques et les structures répétitives des langages de programmation. Une sommation correspond généralement à une boucle d'addition, tandis qu'un produit correspond à une boucle de multiplication. Leur maîtrise facilite donc aussi bien la compréhension des formules mathématiques que la conception et l'analyse des algorithmes. Ces notions sont particulièrement importantes avant d'étudier les permutations, les factorielles, les coefficients binomiaux, les nombres harmoniques, les fonctions génératrices et la complexité algorithmique.