Les suites : Généralités Méthode

Algorithme de calcul des premiers termes d’une suite

Durée estimée
15 minutes
Votre progression

Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.

Créer un compte

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 u $ prend la valeur $ 0{,}5\times u+2 $
8.   $ \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 u $ prend la valeur $ 0{,}5\times u+2 $
7.   Fin Pour
8.   Afficher $ u $
9. Fin traitement  

Pour s'entraîner