Logo maths-cours.fr

Algorithme de calcul des premiers termes d’une suite

Methode

Situation

On considère une suite $\left(u_{n}\right)$ définie par son premier terme $u_{0}$ et par une relation de récurrence du type $u_{n+1}=f\left(u_{n}\right)$

On souhaite écrire un algorithme permettant de calculer et d’afficher les termes $u_{0}$ à $u_{k}$ où $k$ est un nombre entré par l’utilisateur.

1. Algorithme

Voici un algorithme répondant à la question pour la suite $\left(u_{n}\right)$ définie par :

$\left\{ \begin{matrix} u_{0}=3 \\ u_{n+1} = 0,5u_{n}+2\end{matrix}\right.$

Remarque : Cet algorithme n’est pas le seul possible.

1. Variables $i$ et $k$ sont des entiers naturels
2. $u$ est un réel
3. Entrée Saisir la valeur de $k$
4. Début traitement : $u$ prend la valeur 3
5. Afficher $u$
6. Pour $i$ allant de $1$ à $k$
7. $\quad$$\quad$$u$ prend la valeur $0,5\times u+2$
8. $\quad$$\quad$Afficher $u$
9. Fin Pour
10. Fin traitement

2. Commentaires


Lignes 1 et 2 : On définit 3 variables :

  • $k$ contiendra la valeur saisie par l’utilisateur qui déterminera l’arrêt de la boucle. $k$ ne sera pas modifié lors du traitement mais gardera une valeur constante

  • $i$ contiendra le rang (indice) du terme que l’on calcule à partir du rang 1. $i$ variera de $1$ à $k$

  • $u$ contiendra les valeurs de $u_{i}$. Notez que l’on définit une seule variable pour l’ensemble des termes de la suites. Au départ cette variable sera initialisée à $u_{0}$. Puis on calculera $u_{1}$ qui viendra «écraser» $u_{0}$. Puis $u_{2}$ viendra écraser $u_{1}$ et ainsi de suite…


Ligne 3 : La valeur saisie par l’utilisateur qui déterminera l’arrêt de l’algorithme est stockée dans la variable $k$

Ligne 4 : On initialise $u$ en lui donnant la valeur de $u_{0}$ (ici $u_{0}=3$).

Ligne 5 : On affiche la valeur de $u$ (qui contient actuellement $3$). Cette ligne est nécessaire pour afficher la valeur de $u_{0}$ car la boucle qui suit n’affichera que les valeurs de $u_{1}$ à $u_{n}$.

Ligne 6 : On crée une boucle qui fera varier l’indice $i$ de $1$ à $k$. Puisqu’ici on connait le nombre d’itérations $k$, une boucle Pour a été préférée à une boucle Tant que.

Ligne 7 : On modifie la valeur de $u$ : La nouvelle valeur de $u$ sera égale à l’ancienne valeur de $u$ fois $0,5$ plus $2$. Cela traduit bien la relation de récurrence $u_{n+1}= 0,5u_{n}+2$.

Ligne 8 : On affiche le terme que l’on vient de calculer (à savoir $u_{i}$).

Ligne 9 : On « ferme » la boucle; on retourne à la ligne 6; si $i$ valait $k$, la boucle se terminera alors et on passera à la ligne 10.

Ligne 10 : L’algorithme est terminé !
Remarque : Il faut toujours être très attentif au nombre de passages dans la boucle et au nombre d’affichages. Pour vérifier son algorithme, on peut :

  • faire « tourner » l’algorithme (c’est à dire créer un tableau contenant les valeurs des variables étape par étape) – voir 3. ci-dessous.

  • compter le nombre d’affichages :

    Ici on souhaite afficher les valeurs de $u_{0}$ à $u_{k}$, c’est à dire $k+1$ valeurs.

    La ligne 5. effectue un premier affichage (de $u_{0}$).

    La boucle affichera, quant à elle, $k$ valeurs puisque $i$ varie de $1$ à $k$

    En tout on a donc bien effectué $k+1$ affichages.

3. Résultats

Le tableau ci dessous récapitule les valeurs prises par les variables pour $k=4$

$ k $ $ i $ fin de boucle ? $ u $
4 3
4 1 non 3,5
4 2 non 3,75
4 3 non 3,875
4 4 non 3,9375
4 5 oui

4. Variante

Cette fois, on ne souhaite pas afficher toutes les valeurs de $u_{0}$ à $u_{k}$ mais uniquement la valeur $u_{k}$.

Les modifications à apporter à l’algorithme sont les suivantes :

  • On supprime la ligne 5 puisque l’on ne souhaite plus afficher $u_{0}$

  • On supprime la ligne 8 puisque l’on ne souhaite plus afficher tous les termes de $u_{1}$ à $u_{n}$

  • On ajoute une ligne « Afficher $u$ » après la boucle pour afficher la dernière valeur calculée dans la boucle (et qui correspond à $u_{k}$)

On obtient l’algorithme ci-dessous :

1. Variables $i$ et $k$ sont des entiers naturels
2. $u$ est un réel
3. Entrée Saisir la valeur de $k$
4. Début traitement : $u$ prend la valeur 3
5. Pour $i$ allant de $1$ à $k$
6. $\quad$$\quad$$u$ prend la valeur $0,5\times u+2$
7. Fin Pour
8. Afficher $u$
9. Fin traitement
← Retour au chapitre