Aller au contenu

Chapitre 2 · Cours écrit

Suites numériques

Le prix de plusieurs séances, l'eau d'un aquarium semaine après semaine, les allumettes d'une figure qui grandit, les rebonds d'une balle : dans toutes ces situations, on suit une grandeur étape par étape. L'outil mathématique pour cela est la suite numérique.

Ce chapitre t'apprend à définir une suite de plusieurs façons, à la représenter, à étudier son sens de variation, puis à observer ce que deviennent ses termes quand le rang devient très grand. Tu y découvres aussi la seule notion nouvelle d'algorithmique de l'année : la liste en Python.

Les suites arithmétiques et géométriques sont au chapitre 3. Ici, on regarde les suites en général.

Comme à l'épreuve anticipée, les calculs se font sans calculatrice, sauf ceux que l'on confie à un programme Python. Les encadrés « Automatisme » signalent les calculs à savoir faire de tête.

Leçon 1 : Qu'est-ce qu'une suite ?

Voir la vidéo de la leçon 1

1.1 Une liste de nombres numérotés

Une salle d'escalade vend une carte d'adhésion à 1515 €, puis chaque séance coûte 88 €. La dépense dépend du nombre de séances.

Nombre de séances 00 11 22 33 44
Dépense (en euros) 1515 2323 3131 3939 4747

À chaque nombre de séances, on associe une dépense. On obtient une liste de nombres numérotés, que l'on peut prolonger sans fin : c'est une suite.

1.2 Définition et notations

Définition. Une suite numérique associe à chaque entier naturel nn un nombre réel. C'est une fonction dont la variable est un entier naturel. L'image de nn s'appelle le terme de rang nn.

L'ensemble des entiers naturels se note N={0 ;1 ;2 ;3 ;…}\mathbb{N} = \{0\,; 1\,; 2\,; 3\,; \ldots\}.

Écriture Ce qu'elle désigne Nature
u(n)u(n) ou unu_n le terme de rang nn un nombre
(u(n))(u(n)) ou (un)(u_n) la suite tout entière toute la liste

L'écriture unu_n, avec un indice, est la plus courante.

1.3 Rang et terme

Le rang est le numéro de la place. Le terme est le nombre placé à cet endroit. Dans la salle d'escalade, u3=39u_3 = 39 : le terme de rang 33 vaut 3939.

Une suite commence souvent au rang 00. Le premier terme est alors u0u_0, et le cinquième terme est u4u_4. Mais elle peut commencer au rang 11 : le premier terme est alors u1u_1, et le cinquième terme est u5u_5.

Attention, le piège de l'indice. un+1u_{n+1} est le terme qui suit unu_n. Ce n'est pas un+1u_n + 1. De même, un−1u_{n-1} est le terme qui précède unu_n.

Exemple 1. Pour n=3n = 3 : u3+1=u4=47u_{3+1} = u_4 = 47, et non u3+1=39+1=40u_3 + 1 = 39 + 1 = 40.

1.4 La formule explicite

Définition. Une suite est définie de façon explicite quand il existe une fonction ff telle que, pour tout entier naturel nn, un=f(n)u_n = f(n).

Calculer un terme revient alors à calculer une image, sans avoir besoin des termes précédents.

Exemple 2. Pour la salle d'escalade, f(x)=15+8xf(x) = 15 + 8x, donc un=15+8nu_n = 15 + 8n pour tout entier naturel nn. Pour vingt séances, u20=15+8×20=175u_{20} = 15 + 8 \times 20 = 175, soit 175175 €.

Exemple 3. Soit vn=2n+1n+2v_n = \dfrac{2n + 1}{n + 2}. Alors v0=12v_0 = \dfrac12, v1=33=1v_1 = \dfrac33 = 1 et v10=2112=74v_{10} = \dfrac{21}{12} = \dfrac74.

Exemple 4. Soit wn=3×2n−1w_n = 3 \times 2^n - 1. Alors w0=3×20−1=3−1=2w_0 = 3 \times 2^0 - 1 = 3 - 1 = 2 et w4=3×16−1=47w_4 = 3 \times 16 - 1 = 47.

Automatisme. Pour tout réel aa non nul, a0=1a^0 = 1. Les puissances de 22 à connaître : 2,4,8,16,32,64,128,256,512,1 0242, 4, 8, 16, 32, 64, 128, 256, 512, 1\,024. Une fraction se simplifie avant de conclure : 2112=3×73×4=74\dfrac{21}{12} = \dfrac{3 \times 7}{3 \times 4} = \dfrac74.

1.5 Remplacer nn par une expression

Pour écrire an+1a_{n+1}, on remplace nn par n+1n + 1 partout, avec des parenthèses.

Exemple 5. Soit an=n2+3na_n = n^2 + 3n. an+1=(n+1)2+3(n+1)=n2+2n+1+3n+3=n2+5n+4.a_{n+1} = (n+1)^2 + 3(n+1) = n^2 + 2n + 1 + 3n + 3 = n^2 + 5n + 4. De la même façon, a2n=(2n)2+3×2n=4n2+6na_{2n} = (2n)^2 + 3 \times 2n = 4n^2 + 6n.

Le nombre an+1a_n + 1, lui, vaut n2+3n+1n^2 + 3n + 1 : ce n'est pas la même chose.

Leçon 2 : La relation de récurrence

Voir la vidéo de la leçon 2

2.1 Définition

Définition. Une suite est définie par récurrence quand on donne :

  1. son premier terme ;
  2. une relation qui permet de calculer chaque terme à partir du précédent, de la forme un+1=f(un)u_{n+1} = f(u_n).

Exemple 6. On pose u0=3u_0 = 3 et, pour tout entier naturel nn, un+1=2un−1u_{n+1} = 2u_n - 1. Ici, f(x)=2x−1f(x) = 2x - 1.

2.2 Calculer de proche en proche

Chaque terme sert à calculer le suivant. u1=2×3−1=5,u2=2×5−1=9,u3=2×9−1=17,u4=2×17−1=33.u_1 = 2 \times 3 - 1 = 5, \quad u_2 = 2 \times 5 - 1 = 9, \quad u_3 = 2 \times 9 - 1 = 17, \quad u_4 = 2 \times 17 - 1 = 33.

Pour obtenir u100u_{100}, il faudrait d'abord tous les termes précédents.

2.3 Le premier terme compte

La relation seule ne définit pas la suite. Avec la même relation un+1=2un−1u_{n+1} = 2u_n - 1 :

Premier terme Termes suivants Remarque
u0=3u_0 = 3 55, 99, 1717 la suite de l'exemple 6
u0=1u_0 = 1 11, 11, 11 suite constante
u0=0u_0 = 0 −1-1, −3-3, −7-7 une troisième suite

2.4 Traduire une situation

Pour modéliser une situation par une relation de récurrence, on écrit ce qui se passe en une étape.

Exemple 7 (un aquarium). Un aquarium contient 2020 litres d'eau. Chaque semaine, on retire 10 %10\,\% de l'eau, puis on ajoute 55 litres d'eau neuve. On note unu_n le volume, en litres, au bout de nn semaines.

Retirer 10 %10\,\%, c'est multiplier par 0,90{,}9. On ajoute ensuite 55. Donc, pour tout entier naturel nn : un+1=0,9 un+5,avec u0=20.u_{n+1} = 0{,}9\,u_n + 5, \quad \text{avec } u_0 = 20. On trouve u1=0,9×20+5=23u_1 = 0{,}9 \times 20 + 5 = 23 et u2=0,9×23+5=25,7u_2 = 0{,}9 \times 23 + 5 = 25{,}7.

Automatisme. Baisser de 10 %10\,\%, c'est multiplier par 1−10100=0,91 - \dfrac{10}{100} = 0{,}9. Augmenter de 10 %10\,\%, c'est multiplier par 1,11{,}1.

2.5 Chercher une formule explicite

Une relation de récurrence oblige à calculer tous les termes. On cherche donc parfois une formule explicite, en observant les premiers termes.

Exemple 8. Pour la suite de l'exemple 6, les termes 3,5,9,17,333, 5, 9, 17, 33 s'écrivent 2+12 + 1, 4+14 + 1, 8+18 + 1, 16+116 + 1, 32+132 + 1. On conjecture que, pour tout entier naturel nn, un=2n+1+1.u_n = 2^{n+1} + 1. Testons cette formule dans la relation : 2un−1=2(2n+1+1)−1=2n+2+2−1=2n+2+1.2u_n - 1 = 2\left(2^{n+1} + 1\right) - 1 = 2^{n+2} + 2 - 1 = 2^{n+2} + 1. C'est bien la formule au rang n+1n + 1. La démonstration complète utilise le raisonnement par récurrence, vu en Terminale. Avec cette formule, u10=211+1=2 049u_{10} = 2^{11} + 1 = 2\,049, sans calculer les termes d'avant.

2.6 Comparer les deux modes

Mode Écriture Pour calculer un terme
Explicite un=f(n)u_n = f(n) on remplace nn : accès direct
Récurrence un+1=f(un)u_{n+1} = f(u_n) on utilise le terme précédent : pas à pas

Attention. Avec la même fonction, on n'obtient pas la même suite. Pour f(x)=2x−1f(x) = 2x - 1, la formule explicite un=2n−1u_n = 2n - 1 donne −1,1,3,5-1, 1, 3, 5, alors que la relation un+1=2un−1u_{n+1} = 2u_n - 1 avec u0=3u_0 = 3 donne 3,5,9,173, 5, 9, 17.

Leçon 3 : Motifs et dénombrements

Voir la vidéo de la leçon 3

3.1 Une figure qui grandit

Avec des allumettes, on construit une rangée de carrés collés les uns aux autres. On note ana_n le nombre d'allumettes pour nn carrés. Cette suite commence au rang 11.

Nombre de carrés nn 11 22 33 44
Allumettes ana_n 44 77 1010 1313

Relation de récurrence. On regarde ce que change une étape de plus. Un nouveau carré partage un côté avec le précédent : il ne demande que trois allumettes. an+1=an+3,avec a1=4.a_{n+1} = a_n + 3, \quad \text{avec } a_1 = 4.

Formule explicite. On compte tout d'un coup, autrement : une première allumette verticale à gauche, puis trois allumettes par carré. an=3n+1.a_n = 3n + 1. Pour cent carrés, a100=301a_{100} = 301, sans dessiner la rangée.

3.2 Une question de dénombrement

Dans une réunion de nn personnes, chacun serre la main de tous les autres, une seule fois. On note pnp_n le nombre de poignées de main.

Personnes nn 22 33 44 55
Poignées de main pnp_n 11 33 66 1010

Relation de récurrence. Une nouvelle personne arrive dans un groupe de nn personnes : elle serre nn mains. pn+1=pn+n.p_{n+1} = p_n + n. Cette relation dépend aussi de nn : elle n'est pas de la forme un+1=f(un)u_{n+1} = f(u_n), mais elle permet tout autant de calculer les termes de proche en proche.

Formule explicite. Chacune des nn personnes serre n−1n - 1 mains, ce qui fait n(n−1)n(n - 1). Mais chaque poignée de main est comptée deux fois. pn=n(n−1)2.p_n = \frac{n(n - 1)}{2}. Pour 3030 personnes, p30=30×292=435p_{30} = \dfrac{30 \times 29}{2} = 435.

3.3 Une suite définie par un algorithme

Une suite peut aussi être définie par un algorithme. Le symbole « ←\leftarrow » se lit « prend la valeur ».

a ← 4
Répéter n - 1 fois
    a ← a + 3
Fin Répéter

Pour n=4n = 4, la boucle tourne trois fois : aa prend les valeurs 77, 1010, puis 1313. On obtient bien a4=13a_4 = 13.

3.4 Passer d'un mode à un autre

Une même suite peut s'écrire de plusieurs façons. On choisit la plus pratique selon la question posée.

Mode La suite des allumettes
Motif une rangée de nn carrés
Formule explicite an=3n+1a_n = 3n + 1
Relation de récurrence an+1=an+3a_{n+1} = a_n + 3, avec a1=4a_1 = 4
Algorithme a←a+3a \leftarrow a + 3, répété n−1n - 1 fois

Pour passer de la formule explicite à la relation, on calcule la différence de deux termes consécutifs : an+1−an=3(n+1)+1−(3n+1)=3.a_{n+1} - a_n = 3(n + 1) + 1 - (3n + 1) = 3.

Exemple 9. Pour cn=n2c_n = n^2, on trouve cn+1−cn=(n+1)2−n2=2n+1c_{n+1} - c_n = (n + 1)^2 - n^2 = 2n + 1. Donc cn+1=cn+2n+1c_{n+1} = c_n + 2n + 1. Sur une figure, on passe d'un carré de nn points de côté au carré suivant en ajoutant une équerre de 2n+12n + 1 points.

Leçon 4 : Représenter une suite

Voir la vidéo de la leçon 4

4.1 Le nuage de points

Définition. On représente une suite (un)(u_n) par les points de coordonnées (n ;un)(n\,;u_n) dans un repère. L'abscisse est le rang, l'ordonnée est la valeur du terme.

On ne relie pas les points : la suite n'existe que pour les entiers.

Exemple 10. Soit un=12n2−3n+6u_n = \dfrac12 n^2 - 3n + 6. On trouve u0=6u_0 = 6, u1=3,5u_1 = 3{,}5, u2=2u_2 = 2, u3=1,5u_3 = 1{,}5, u4=2u_4 = 2, u5=3,5u_5 = 3{,}5 et u6=6u_6 = 6. Les points sont sur la courbe de la fonction ff définie par f(x)=12x2−3x+6f(x) = \dfrac12 x^2 - 3x + 6.

4.2 Lire un graphique

Sur le nuage de l'exemple 10 :

  • une image : le point d'abscisse 33 a pour ordonnée 1,51{,}5, donc u3=1,5u_3 = 1{,}5 ;
  • des antécédents : un=3,5u_n = 3{,}5 pour n=1n = 1 et n=5n = 5 ;
  • des variations : les termes diminuent jusqu'au rang 33, puis augmentent.

Automatisme. Sur un graphique, on commence par repérer les axes, les unités et l'origine. Lire une image se fait de l'abscisse vers l'ordonnée, chercher un antécédent se fait de l'ordonnée vers l'abscisse.

4.3 Une suite définie par récurrence

Sans formule en nn, on calcule les termes l'un après l'autre, puis on place les points.

Exemple 11. Soit u0=1u_0 = 1 et un+1=12un+2u_{n+1} = \dfrac12 u_n + 2. On trouve 11 ; 2,52{,}5 ; 3,253{,}25 ; 3,6253{,}625 ; 3,81253{,}8125. Les points montent de moins en moins vite, et semblent se rapprocher de la droite d'équation y=4y = 4.

4.4 La construction en escalier

Pour une relation un+1=f(un)u_{n+1} = f(u_n), une autre construction lit directement la relation. On parle de construction en escalier.

  1. On trace la courbe de ff et la droite d'équation y=xy = x.
  2. On place u0u_0 sur l'axe des abscisses.
  3. On monte jusqu'à la courbe de ff : l'ordonnée du point atteint est f(u0)=u1f(u_0) = u_1.
  4. On se déplace à l'horizontale jusqu'à la droite y=xy = x : l'abscisse devient u1u_1.
  5. On redescend sur l'axe pour placer u1u_1.
  6. On recommence à partir de u1u_1.

Les termes s'alignent sur l'axe des abscisses. Avec f(x)=12x+2f(x) = \dfrac12 x + 2 :

  • en partant de u0=1u_0 = 1, les termes montent et s'approchent de 44 ;
  • en partant de u0=7u_0 = 7, on trouve 77 ; 5,55{,}5 ; 4,754{,}75 ; 4,3754{,}375 : les termes descendent et s'approchent aussi de 44.

Le nombre 44 est l'abscisse du point d'intersection de la courbe de ff et de la droite y=xy = x.

Attention. Cette construction sert à conjecturer. Elle ne démontre rien.

4.5 Trois registres

Une même suite se décrit dans trois registres, et il faut savoir passer de l'un à l'autre.

Registre Exemple
Langue naturelle chaque terme est égal à la moitié du précédent, augmentée de 22
Algébrique un+1=12un+2u_{n+1} = \dfrac12 u_n + 2
Graphique le nuage de points, ou la construction en escalier

Leçon 5 : Sens de variation d'une suite

Voir la vidéo de la leçon 5

5.1 Définitions

Définitions. Une suite (un)(u_n) est :

  • croissante si, pour tout entier naturel nn, un+1≥unu_{n+1} \geq u_n ;
  • décroissante si, pour tout entier naturel nn, un+1≤unu_{n+1} \leq u_n ;
  • strictement croissante ou décroissante, si l'inégalité est stricte ;
  • constante si tous ses termes sont égaux ;
  • monotone si elle est croissante ou décroissante.

On dit aussi qu'une suite est croissante à partir du rang n0n_0 si un+1≥unu_{n+1} \geq u_n pour tout entier n≥n0n \geq n_0.

5.2 Première méthode : le signe de la différence

On étudie le signe de un+1−unu_{n+1} - u_n. C'est la méthode la plus générale.

Exemple 12. Soit un=n2−6n+1u_n = n^2 - 6n + 1. un+1−un=(n+1)2−6(n+1)+1−n2+6n−1=2n−5.u_{n+1} - u_n = (n+1)^2 - 6(n+1) + 1 - n^2 + 6n - 1 = 2n - 5. Cette différence est négative pour n=0n = 0, 11 et 22, positive à partir de n=3n = 3. Les premiers termes sont 11, −4-4, −7-7, −8-8, −7-7, −4-4, 11 : la suite décroît, puis elle est croissante à partir du rang 33.

5.3 Deuxième méthode : une fonction monotone

Propriété. Si un=f(n)u_n = f(n) et si ff est monotone sur [0 ;+∞[[0\,;+\infty[, alors (un)(u_n) a le même sens de variation que ff.

Exemple 13. Soit vn=4−3nv_n = 4 - 3n. La fonction ff est affine, de coefficient −3<0-3 < 0, donc elle est décroissante : la suite est décroissante.

Exemple 14. Soit wn=2(n−1)2+3w_n = 2(n - 1)^2 + 3. Cette forme canonique montre que ff est croissante sur [1 ;+∞[[1\,;+\infty[ : la suite est croissante à partir du rang 11. Ses premiers termes sont 55, 33, 55, 1111.

5.4 Troisième méthode : le quotient

Si tous les termes sont strictement positifs, on compare un+1un\dfrac{u_{n+1}}{u_n} à 11 :

  • si le quotient est supérieur ou égal à 11 pour tout nn, la suite est croissante ;
  • s'il est inférieur ou égal à 11 pour tout nn, la suite est décroissante.

Exemple 15. Soit tn=n+12nt_n = \dfrac{n + 1}{2^n}. Tous les termes sont strictement positifs, et tn+1tn=n+22n+1×2nn+1=n+22n+2.\frac{t_{n+1}}{t_n} = \frac{n + 2}{2^{n+1}} \times \frac{2^n}{n + 1} = \frac{n + 2}{2n + 2}. Pour tout entier naturel nn, n+2≤2n+2n + 2 \leq 2n + 2, donc ce quotient est inférieur ou égal à 11 : la suite est décroissante.

5.5 Le cas des suites définies par récurrence

On regarde aussi la différence.

Exemple 16. Si un+1=un+1n+1u_{n+1} = u_n + \dfrac{1}{n + 1}, alors un+1−un=1n+1>0u_{n+1} - u_n = \dfrac{1}{n + 1} > 0 : la suite est strictement croissante.

Attention. Pour un+1=f(un)u_{n+1} = f(u_n), le sens de variation de ff ne donne pas celui de la suite. Avec f(x)=12x+2f(x) = \dfrac12 x + 2, qui est croissante :

u0u_0 Premiers termes Comportement
11 11 ; 2,52{,}5 ; 3,253{,}25 ; 3,6253{,}625 la suite monte
77 77 ; 5,55{,}5 ; 4,754{,}75 ; 4,3754{,}375 la suite descend

5.6 Le contraire de « croissante »

« Croissante » signifie : pour tout entier nn, un+1≥unu_{n+1} \geq u_n. La négation de cette phrase est : il existe un entier n tel que un+1<un.\text{il existe un entier } n \text{ tel que } u_{n+1} < u_n.

Un seul contre-exemple suffit donc à prouver qu'une suite n'est pas croissante.

Attention. « Non croissante » ne veut pas dire « décroissante ». La suite un=(−1)nu_n = (-1)^n vaut 1,−1,1,−1…1, -1, 1, -1\ldots Elle n'est ni croissante ni décroissante : elle n'est pas monotone.

Leçon 6 : Python, générer une liste

Voir la vidéo de la leçon 6

Une liste est une série finie de valeurs numérotées. C'est la seule notion nouvelle d'algorithmique de l'année, et elle va très bien avec les suites.

6.1 Quelques rappels

Cette fonction calcule unu_n pour la suite de l'exemple 6.

def u(n):
    x = 3
    for k in range(n):
        x = 2 * x - 1
    return x
  • Le signe = est une affectation : x = 3 signifie que xx prend la valeur 33. Dans un algorithme écrit en français, on note x←3x \leftarrow 3.
  • La boucle for répète le calcul nn fois.
  • return renvoie le résultat. Ainsi, u(4) renvoie 3333.

6.2 En extension

Une liste s'écrit entre crochets, avec des virgules. Quand on écrit tous ses éléments, on la génère en extension.

L = [15, 23, 31, 39]

Chaque élément a un indice, et le premier indice est 00. Ainsi, L[0] vaut 1515 et L[3] vaut 3939. La fonction len donne le nombre d'éléments : len(L) vaut 44, et le dernier indice est 33.

6.3 Par ajouts successifs

On part d'une liste vide, et on ajoute les éléments un par un avec append.

L = []
for n in range(5):
    L.append(n**2)

La liste L contient alors 0,1,4,9,160, 1, 4, 9, 16.

C'est très pratique pour une suite définie par récurrence : L[k] est le terme de rang kk, et on calcule le terme suivant.

L = [3]
for k in range(4):
    L.append(2 * L[k] - 1)

La liste L contient alors 3,5,9,17,333, 5, 9, 17, 33.

6.4 En compréhension

La façon la plus courte est d'écrire, entre crochets, l'expression du terme suivie de for. On génère alors la liste en compréhension.

>>> [n**2 for n in range(5)]
[0, 1, 4, 9, 16]
>>> [15 + 8 * n for n in range(5)]
[15, 23, 31, 39, 47]

La première ligne se lit : « la liste des n2n^2, pour nn allant de 00 à 44 ». Ces mots viennent des ensembles : un ensemble est donné en extension quand on cite ses éléments, comme {1 ;4 ;9}\{1\,; 4\,; 9\}, et en compréhension quand on le décrit par une propriété, comme « les carrés des entiers de 11 à 33 ».

Cette écriture convient bien aux formules explicites.

6.5 Ajouter une condition

Avec if, seuls les éléments qui vérifient la condition sont gardés. Le symbole % donne le reste de la division : n % 3 == 0 signifie que nn est un multiple de 33.

>>> [n for n in range(20) if n % 3 == 0]
[0, 3, 6, 9, 12, 15, 18]
>>> [n for n in range(13) if n % 2 == 0 and n % 3 == 0]
[0, 6, 12]
>>> [n for n in range(13) if n % 2 == 0 or n % 3 == 0]
[0, 2, 3, 4, 6, 8, 9, 10, 12]

Le mot and traduit le « et » de la logique : les deux conditions sont vraies. Le mot or traduit le « ou » : au moins une des deux conditions est vraie, éventuellement les deux.

6.6 Deux pièges

  • range(5) donne 0,1,2,3,40, 1, 2, 3, 4 : cinq valeurs, mais pas le nombre 55. Plus généralement, range(n) donne les entiers de 00 à n−1n - 1.
  • Dans une liste de quatre éléments, les indices sont 00, 11, 22 et 33. Écrire L[4] provoque une erreur.
>>> L = [15, 23, 31, 39]
>>> L[4]
IndexError: list index out of range

Leçon 7 : Python, manipuler et parcourir une liste

Voir la vidéo de la leçon 7

7.1 Changer, ajouter, supprimer

Voici des relevés de pluie, en millimètres, sur quatre jours. Le tableau montre la liste après chaque instruction.

Instruction Effet Liste P obtenue
P = [4, 0, 7, 2] création 4,0,7,24, 0, 7, 2
P[1] = 3 change l'élément d'indice 11 4,3,7,24, 3, 7, 2
P.append(5) ajoute à la fin 4,3,7,2,54, 3, 7, 2, 5
del P[0] supprime l'élément d'indice 00 3,7,2,53, 7, 2, 5
P.remove(2) supprime la valeur 22 3,7,53, 7, 5

Attention. Après del, les éléments suivants se décalent : leurs indices changent. S'il y a plusieurs fois la même valeur, remove ne supprime que la première.

7.2 Parcourir par les indices

range(len(P)) donne tous les indices de la liste.

for i in range(len(P)):
    print(i, P[i])

Avec PP contenant 3,7,53, 7, 5, ce programme affiche les indices et les éléments, ligne après ligne : 0 3, puis 1 7, puis 2 5.

7.3 Itérer sur les éléments

On peut aussi passer directement par les éléments. C'est plus simple quand la place de l'élément n'a pas d'importance.

for x in P:
    print(x)

Ici, x prend les valeurs 33, 77, puis 55. Voici par exemple une fonction qui renvoie le plus grand élément d'une liste.

def maximum(L):
    m = L[0]
    for x in L:
        if x > m:
            m = x
    return m

Ainsi, maximum([3, 7, 5]) renvoie 77.

7.4 Comparer un élément au suivant

Les indices deviennent utiles dès qu'on compare un élément au suivant. Reprenons la suite de l'exemple 12.

>>> L = [n**2 - 6 * n + 1 for n in range(7)]
>>> L
[1, -4, -7, -8, -7, -4, 1]
>>> [L[i + 1] - L[i] for i in range(len(L) - 1)]
[-5, -3, -1, 1, 3, 5]

On retrouve les valeurs de 2n−52n - 5. Le len(L) - 1 vient de ce que le dernier élément n'a pas de suivant.

7.5 Tester si une liste est croissante

def croissante(L):
    for i in range(len(L) - 1):
        if L[i + 1] < L[i]:
            return False
    return True

Dès qu'un élément est suivi d'un plus petit, la fonction renvoie False : un seul contre-exemple suffit. Si la boucle va jusqu'au bout, elle renvoie True. Ainsi, croissante([1, 4, 9, 16]) renvoie True, et croissante([1, -4, -7]) renvoie False.

Attention. Ce test ne porte que sur les termes de la liste. Il ne démontre rien pour la suite entière.

Leçon 8 : Python, suites de Syracuse et de Fibonacci

Voir la vidéo de la leçon 8

8.1 La suite de Syracuse

On choisit un entier a>0a > 0, et on pose u0=au_0 = a. Pour tout entier naturel nn :

  • si unu_n est pair, un+1=un2u_{n+1} = \dfrac{u_n}{2} ;
  • si unu_n est impair, un+1=3un+1u_{n+1} = 3u_n + 1.

Cette suite est définie par un algorithme, avec un test sur la parité. En partant de 66, on obtient 6,3,10,5,16,8,4,2,16, 3, 10, 5, 16, 8, 4, 2, 1. Arrivée à 11, la suite tourne en rond : 4,2,1,4,2,1…4, 2, 1, 4, 2, 1\ldots

En Python, on découpe le travail en deux fonctions : c'est la programmation modulaire. La fonction suivant calcule le terme d'après, et la fonction syracuse construit la liste. Les symboles // donnent le quotient entier.

def suivant(u):
    if u % 2 == 0:
        return u // 2
    return 3 * u + 1

def syracuse(a, n):
    L = [a]
    for k in range(n):
        L.append(suivant(L[k]))
    return L
>>> syracuse(6, 8)
[6, 3, 10, 5, 16, 8, 4, 2, 1]

8.2 Une conjecture ouverte

Départ aa Étapes pour arriver à 11 Plus grand terme
66 88 1616
77 1616 5252
2727 111111 9 2329\,232

Pour tous les nombres testés, la suite finit par arriver à 11. Mais personne n'a su le démontrer : cet énoncé reste une conjecture. Vérifier de très nombreux cas ne fait pas une démonstration.

8.3 La suite de Fibonacci

Elle vient d'un problème de comptage de lapins. Un jeune couple devient adulte en un mois, et chaque mois, tout couple adulte donne naissance à un nouveau couple. On part d'un jeune couple.

Mois 00 11 22 33 44 55 66
Couples 11 11 22 33 55 88 1313

Les couples d'un mois sont ceux du mois précédent, plus les nouveau-nés. Il y a autant de nouveau-nés que de couples adultes, c'est-à-dire que de couples présents deux mois plus tôt. Chaque nombre est donc la somme des deux précédents : F0=1,F1=1et, pour tout entier naturel n,Fn+2=Fn+1+Fn.F_0 = 1, \quad F_1 = 1 \quad \text{et, pour tout entier naturel } n, \quad F_{n+2} = F_{n+1} + F_n.

Il faut cette fois deux termes pour calculer le suivant, donc deux premiers termes pour démarrer.

def fibonacci(n):
    L = [1, 1]
    for k in range(n - 2):
        L.append(L[k] + L[k + 1])
    return L
>>> fibonacci(10)
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

Une liste garde tous les termes, ce qui permet de les comparer. On peut ainsi écrire max(syracuse(7, 16)), qui renvoie 5252, et len(fibonacci(10)), qui renvoie 1010.

Leçon 9 : L'idée de limite

Voir la vidéo de la leçon 9

Que deviennent les termes d'une suite quand nn devient très grand ? Ici, on observe sur des exemples, sans définition rigoureuse. Cette notion sera précisée en Terminale.

9.1 Une limite finie

Soit un=2n+1n+1u_n = \dfrac{2n + 1}{n + 1}.

nn 1010 100100 1 0001\,000
unu_n ≈1,91\approx 1{,}91 ≈1,99\approx 1{,}99 ≈1,999\approx 1{,}999

Les termes se rapprochent de 22, autant qu'on veut. On dit que la suite tend vers 22, et que 22 est sa limite. C'est une limite finie.

Exemple 17 (l'aquarium). Avec u0=20u_0 = 20 et un+1=0,9 un+5u_{n+1} = 0{,}9\,u_n + 5, on trouve u10≈39,5u_{10} \approx 39{,}5, u20≈46,4u_{20} \approx 46{,}4 et u100≈49,999u_{100} \approx 49{,}999. Le volume semble tendre vers 5050 litres. C'est logique : 10 %10\,\% de 5050 litres, c'est 55 litres, donc on retire autant qu'on ajoute.

9.2 Une limite infinie

  • vn=n2v_n = n^2 finit par dépasser n'importe quel nombre, et reste au-dessus. La suite tend vers +∞+\infty.
  • wn=5−2nw_n = 5 - 2n finit par passer sous n'importe quel nombre, et reste en dessous. La suite tend vers −∞-\infty.

9.3 Une suite sans limite

  • tn=(−1)nt_n = (-1)^n vaut 1,−1,1,−1…1, -1, 1, -1\ldots Elle oscille sans fin entre deux valeurs, sans se rapprocher d'aucun nombre.
  • sn=n×(−1)ns_n = n \times (-1)^n vaut 0,−1,2,−3,4…0, -1, 2, -3, 4\ldots Elle s'éloigne, alternativement des deux côtés. Elle ne tend ni vers +∞+\infty, ni vers −∞-\infty.

9.4 Deux idées fausses

« Une suite croissante tend vers +∞+\infty. » C'est faux : 2n+1n+1\dfrac{2n + 1}{n + 1} est croissante, et elle tend vers 22.

« Une suite qui tend vers +∞+\infty est croissante. » C'est faux aussi : n+3×(−1)nn + 3 \times (-1)^n vaut 3,−2,5,0,7…3, -2, 5, 0, 7\ldots Elle monte et descend, tout en finissant par dépasser n'importe quel nombre.

9.5 Conjecturer une limite

Pour conjecturer, on calcule des termes de rang élevé et on regarde le nuage de points. Python est un allié.

>>> [round((2*n + 1) / (n + 1), 4) for n in [10, 100, 1000, 10000]]
[1.9091, 1.9901, 1.999, 1.9999]

Attention. Cela reste une conjecture : une observation n'est pas une démonstration, même sur de très grands rangs. Les outils pour démontrer une limite viendront en Terminale.

9.6 Un peu d'histoire

Bien avant d'être étudiées, les suites ont servi à approcher des nombres. Archimède encadrait π\pi, et Héron d'Alexandrie calculait des racines carrées. Sa méthode s'écrit aujourd'hui : u0=2etun+1=12(un+2un).u_0 = 2 \quad \text{et} \quad u_{n+1} = \frac12\left(u_n + \frac{2}{u_n}\right). On trouve 22 ; 1,51{,}5 ; environ 1,4171{,}417 ; environ 1,41421{,}4142. Les termes semblent tendre vers 2≈1,4142\sqrt2 \approx 1{,}4142.

Leçon 10 : L'algorithme de seuil

Voir la vidéo de la leçon 10

À partir de quel rang une suite franchit-elle une valeur donnée ? Quand on ne sait pas résoudre l'inéquation, un algorithme trouve la réponse.

10.1 Un problème de seuil

On lâche une balle d'une hauteur de 200200 cm. À chaque rebond, elle remonte aux trois quarts de la hauteur précédente. On note hnh_n la hauteur après nn rebonds : h0=200ethn+1=0,75 hn.h_0 = 200 \quad \text{et} \quad h_{n+1} = 0{,}75\,h_n. On trouve h1=150h_1 = 150, h2=112,5h_2 = 112{,}5 et h3≈84,4h_3 \approx 84{,}4. Les hauteurs diminuent et semblent tendre vers 00. On cherche le premier rebond après lequel la balle remonte à moins de 1010 cm, c'est-à-dire le premier rang nn tel que hn<10h_n < 10.

10.2 L'algorithme

n ← 0
h ← 200
Tant que h ⩾ 10
    h ← 0,75 × h
    n ← n + 1
Fin Tant que

Attention à la condition. On veut h<10h < 10. La boucle tourne tant que ce n'est pas le cas : la condition de la boucle est le contraire de ce qu'on cherche. À la sortie de la boucle, nn est le rang cherché.

10.3 En Python

def seuil(s):
    n = 0
    h = 200
    while h >= s:
        h = 0.75 * h
        n = n + 1
    return n
>>> seuil(10)
11

Vérification. h10=200×0,7510≈11,3≥10h_{10} = 200 \times 0{,}75^{10} \approx 11{,}3 \geq 10 et h11=200×0,7511≈8,4<10h_{11} = 200 \times 0{,}75^{11} \approx 8{,}4 < 10. C'est donc au onzième rebond que la balle remonte à moins de 1010 cm.

nn hh Test h≥10h \geq 10 Suite
00 200200 vrai on continue
11 150150 vrai on continue
⋮\vdots ⋮\vdots ⋮\vdots ⋮\vdots
1010 ≈11,3\approx 11{,}3 vrai encore un tour
1111 ≈8,4\approx 8{,}4 faux arrêt

10.4 Une boucle sans fin

Reprenons l'aquarium, dont le volume semble tendre vers 5050 litres. On cherche quand il dépasse 4545 litres.

def seuil_eau(s):
    n = 0
    u = 20
    while u <= s:
        u = 0.9 * u + 5
        n = n + 1
    return n
>>> seuil_eau(45)
18

Il faut 1818 semaines. Mais avec seuil_eau(60), le volume n'atteint jamais 6060 litres : la condition reste toujours vraie, et le programme ne s'arrête pas. Avant de lancer un algorithme de seuil, on vérifie donc que le seuil sera franchi.

10.5 La méthode

  1. Traduire : écrire le premier terme et la relation.
  2. Observer : le seuil sera-t-il franchi ?
  3. Écrire la boucle, avec la condition contraire de ce qu'on cherche.
  4. Contrôler le résultat avec les deux termes qui encadrent le rang trouvé.

Ce qu'il faut retenir du chapitre

  1. Suite : à chaque entier naturel nn, on associe un réel unu_n, le terme de rang nn. un+1u_{n+1} est le terme suivant, à ne pas confondre avec un+1u_n + 1.
  2. Modes de génération : formule explicite un=f(n)u_n = f(n), relation de récurrence un+1=f(un)u_{n+1} = f(u_n) avec un premier terme, motif, algorithme. On choisit le plus pratique.
  3. Modéliser : pour une relation, on écrit ce qui se passe en une étape. Pour une formule, on compte tout d'un coup, en prenant garde aux objets comptés deux fois.
  4. Représenter : les points (n ;un)(n\,;u_n), sans les relier. La construction en escalier utilise la courbe de ff et la droite y=xy = x.
  5. Sens de variation : signe de un+1−unu_{n+1} - u_n ; fonction ff si un=f(n)u_n = f(n) ; quotient comparé à 11 si les termes sont strictement positifs. Pour un+1=f(un)u_{n+1} = f(u_n), le sens de variation de ff ne suffit pas. Une suite peut n'être ni croissante, ni décroissante.
  6. Listes en Python : indices à partir de 00 ; génération en extension, par ajouts avec append, en compréhension avec for et if ; parcours par les indices ou par les éléments.
  7. Limite : une suite peut tendre vers un nombre, vers +∞+\infty, vers −∞-\infty, ou n'avoir aucune limite. En Première, on conjecture sur des exemples.
  8. Seuil : une boucle « Tant que », dont la condition est le contraire de ce qu'on cherche. On vérifie d'abord que le seuil sera franchi.

Rituel d'automatismes

Douze questions à réponses courtes, sans calculatrice, à faire en dix minutes environ : six sur ce chapitre, six sur des automatismes déjà travaillés. C'est le format de la première partie de l'épreuve anticipée. Télécharger le rituel du chapitre 2 (PDF, avec son corrigé).

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