Générer des suites de valeurs suivant une relation de récurrence

Denis Hulo

Objectif : apprendre à générer une suite de valeurs suivant une relation de récurrence jusqu'à un certain seuil.

Niveau requis : confirmé.

Commentez cet article : Commentez

- Titre : Générer des suites de valeurs suivant une relation de récurrence

- Auteur : Denis Hulo

- Parution : 17 décembre 2019

- Public visé :

- Licence : Copyright ® 2019 Denis Hulo. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- II. Notion de suite mathématique

- II-A. Suite arithmétique

- II-B. Suite géométrique

- II-C. Suite arithmético-géométrique

- II-D. Suite de sommes partielles

- III. Application

- III-A. Objets de la base exemple

- III-A-1. Table T_Suite

- III-A-2. Table T_ValeursSuite

- III-A-3. Requête R_ValeursSuite

- III-A-4. Sous-formulaire SF_ValeursSuite

- III-A-5. Formulaire F_Suite

- III-A-5-a. Bouton de commande cmdGenererValeursSuite

- III-A-5-b. Contrôle graphique grpSuite

- III-A-6. Module M_GenererValeursSuite

- III-A-6-a. Procédure GenererValeursSuite

- III-A-6-b. Fonction EvalNombreTermes

- III-A-6-c. Fonction EvalExpression

- III-A-6-d. Fonction BarreProgression

- III-B. Progression linéaire des ventes

- III-C. Progression géométrique des ventes

- III-D. Évolution du capital restant dû

- III-E. Progression des ventes cumulées

- IV. Conclusion

- V. Base de données à télécharger

- VI. Remerciements

I - Introduction

L'objectif est d'expliquer, en se basant sur la notion de suite mathématique, comment générer dans une base de données, une suite de valeurs suivant une relation de récurrence. Dans la pratique, on peut par exemple simuler l'évolution des ventes futures en fonction de certains paramètres, et ainsi évaluer le nombre de mois nécessaires pour atteindre un certain seuil.

Pour cela, après avoir présenté la notion de suite mathématique, puis les différents objets de la base Access, on donnera quatre exemples de mise en application  :

- progression arithmétique des ventes ;

- progression géométrique des ventes ;

- évolution du capital restant dû ;

- progression des ventes cumulées.

Suite géométrique

J'ai choisi Access plutôt qu'Excel pour réaliser l'exemple, car le paramétrage et la génération des valeurs de la suite m'ont semblé plus simples depuis un formulaire. D'autre part, la liaison d'un graphique à une source de données dynamique m'a aussi paru plus simple à mettre en œuvre dans Access.

II - Notion de suite mathématique

En mathématiques, une suite est une famille d'éléments, appelés ses « termes », indexée par les entiers naturels. Ainsi, les images de 0,1,2,3,...,n sont notées U_0,U_1,U_2,U_3,...,Un.

Par la suite on notera U(n) l'image de n par U.

II-A - Suite arithmétique

En mathématiques, une suite arithmétique est une suite (le plus souvent une suite numérique) dans laquelle chaque terme permet de déduire le suivant en lui ajoutant une constante appelée raison.

Prenons par exemple la liste des termes :

U(0) = 1
U(1) = 3
U(2) = 5
U(3) = 7
U(4) = 9
...

On ajoute donc 2 à chaque terme pour obtenir le suivant. La relation de récurrence de la suite peut alors s'écrire :

U(n+1) = U(n) + 2

Et le terme général de cette suite est alors donné par la formule  :

U(n) = U(0) + 2*n

Il s'agit en fait d'une suite arithmétique de raison 2 et de premier terme 1.

II-B - Suite géométrique

En mathématiques, une suite géométrique est une suite de nombres dans laquelle chaque terme permet de déduire le suivant en multipliant par un facteur constant appelé raison.

Prenons maintenant la liste ordonnée des termes :

U(0) = 5
U(1) = 10
U(2) = 20
U(3) = 40
U(4) = 80
...

On multiplie bien chaque terme par 2 pour obtenir le suivant. La relation de récurrence de la suite peut alors s'écrire  :

U(n+1) = 2*U(n)

Et le terme général de cette suite est alors donné par la formule  :

U(n) = U(0)*2^n

Il s'agit en fait d'une suite géométrique de raison 2 et de premier terme 5.

II-C - Suite arithmético-géométrique

En mathématiques, une suite arithmético-géométrique est une suite satisfaisant une relation de récurrence affine, généralisant ainsi les définitions des suites arithmétiques et géométriques.

Prenons la liste ordonnée des termes :

U(0) = 1
U(1) = 3
U(2) = 7
U(3) = 15
U(4) = 31
...

La relation de récurrence de la suite peut alors s'écrire :

U(n+1) = 2*U(n) + 1

Il s'agit en fait d'une suite arithmético-géométrique de terme initial U_0=1 et satisfaisant la relation de récurrence Un+1 = aUn + b, avec a=2 et b=1.

II-D - Suite de sommes partielles

Quand on additionne tous les termes d'une suite jusqu’à un certain rang, le résultat de cette opération est ce qu'on appelle une somme partielle.

La suite (Sn) des sommes partielles des termes de (Un) nous donne donc, avec notre notation :

S(0) = U(0)
S(1) = U(0) + U(1)
S(2) = U(0) + U(1) + U(3)
...
S(n) = U(0) + U(1) + ... + U(n)

(Un) étant une suite quelconque.

Le terme général de la suite est alors de la forme :

S(n) = U(0) + U(1) + ... + U(n)

On peut aussi identifier une relation de récurrence pour cette suite :

S(n+1) = S(n) + U(n+1)

Il s'agit donc d'une suite de sommes partielles, notée (Sn), de premier terme S_0=U_0 et satisfaisant la relation de récurrence Sn+1 = Sn + Un+1.

III - Application

On souhaite créer un formulaire permettant de saisir les paramètres d'une suite et de générer ses valeurs successives dans un sous-formulaire affiché en mode feuille de données.

Principe de fonctionnement :

- saisie sur le formulaire des paramètres de la suite ;

- évaluation du nombre de termes de la suite en fonction de ses paramètres ;

- génération des indices et des valeurs des termes de la suite.

Voici un aperçu du résultat attendu pour une suite géométrique :

Aperçu du formulaire

Voici un aperçu du graphique montrant la progression des valeurs de la suite par rapport au seuil :

Aperçu du graphique

Nous présentons ensuite les différents objets de la base exemple pour mieux visualiser sa structure.

III-A - Objets de la base exemple

III-A-1 - Table T_Suite

Cette table permet d'enregistrer les paramètres de la suite, comme la valeur du terme initial ou le seuil des valeurs.

Nom de la colonne

Type de données

Description

IdSuite

Entier long

Identifiant de la suite

TermeInitial

Numérique

Valeur du terme initial de la suite

FormuleRecurrence

Texte

Formule de récurrence de la suite

Seuil

Numérique

Valeur du seuil de la suite

NombreTermes

Numérique

Nombre de termes de la suite

III-A-2 - Table T_ValeursSuite

Cette table temporaire permet d'enregistrer les indices et les valeurs de la suite en fonction des paramètres choisis sur le formulaire.

Nom de la colonne

Type de données

Description

IndiceTerme

Entier long

Indice du terme de la suite

ValeurTerme

Numérique

Valeur du terme de la suite

IdSuite

Entier long

Identifiant de la suite pour faire le lien avec la table T_Suite

La colonne IdSuite permet de faire le lien avec la table T_Suite pour récupérer les paramètres de la suite.

III-A-3 - Requête R_ValeursSuite

Elle relie les tables T_Suite et T_ValeursSuite sur les colonnes IdSuite et permet d'afficher la liste des valeurs de la suite, avec leur indice et leur progression par rapport au seuil, le tout filtré sur l'identifiant de la suite du formulaire actif.

Requête en mode création

La formule pour afficher la progression de la suite (Un) par rapport au seuil :

Progression: BarreProgression([ValeurTerme];[ValeurMax];70)

On utilise dans cette formule la fonction BarreProgression qui renvoie une chaîne de caractères sous la forme d'une barre de progression.

III-A-4 - Sous-formulaire SF_ValeursSuite

Il est lié à la requête R_ValeursSuite et contient les zones de texte reliées aux colonnes IndiceTerme, ValeurTerme et Progression.

Formulaire SF_ValeursSuite en mode création

III-A-5 - Formulaire F_Suite

Il permet de saisir les paramètres de la suite et de générer ses termes dans le sous-formulaire.

Il comprend, en plus du sous-formulaire, les contrôles suivant :

- une zone de texte txtTermeInitiale pour saisir le terme initial de la suite ;

- une liste déroulante cmbFormuleRecurrence pour saisir la formule de récurrence avec le terme Un ;

- une zone de texte txtSeuil pour indiquer le seuil à atteindre ;

- une zone de texte txtNombreTermes pour indiquer le nombre de termes de la suite ;

- un bouton de commande cmdGenererSuite pour générer la suite ;

- un contrôle graphique grpSuite pour représenter la progression de la suite par rapport au seuil.

Formulaire F_Suite en mode création

III-A-5-a - Bouton de commande cmdGenererValeursSuite

Il permet de générer la suite des termes en fonction des paramètres saisis sur le formulaire.

Déroulé de la procédure :

- on teste si tous les paramètres de la suite ont été saisis ;

- si c'est le cas, on génère la suite de termes ;

- on rafraîchit le sous-formulaire SF_ValeursSuite et le graphique grpSuite.

Procédure CmdGenererValeursSuite_Click

Private Sub CmdGenererValeursSuite_Click()
' Procédure événementielle pour générer la suite de termes et rafraîchir le sous-formulaire
Dim Uo As Double ' variable pour la valeur du terme initial
Dim FormuleRecurrence As String ' variable pour la formule du terme d'indice n
Dim n As Long ' variable contenant le nombre de termes de la suite
Dim Seuil As Double ' variable contenant la valeur du seuil
Dim IdSuite As Long ' variable contenant l'identifiant de la suite

If (Nz(Me.txtTermeInitial) <> "") And (Nz(Me.cmbFormuleRecurrence) <> "") And (Nz(Me.txtSeuil) <> "") Then
' Si la valeur du terme initial, la formule récurrente et la valeur du seuil ont été saisis

Uo = Me.txtTermeInitial.Value
FormuleRecurrence = Me.cmbFormuleRecurrence.Value ' on copie la formule de récurrence dans la variable
Seuil = Me.txtSeuil.Value ' on copie la valeur du seuil saisie sur le formulaire
IdSuite = Me.[txtIdSuite] ' on copie dans la variable la valeur de l'identifiant de la suite
If Nz(txtNombreTermes.Value) = "" Then ' si l'utilisateur n'a pas saisi le nombre de termes de la suite
n = evalNombreTermes(Uo, FormuleRecurrence, Seuil) ' on évalue le nombre de termes de la suite
txtNombreTermes.Value = n ' on copie le nombre de termes de la suite dans la zone de texte
Else
n = txtNombreTermes.Value ' on copie le nombre de termes de la suite dans la variable n
End If
GenererSuite Uo, FormuleRecurrence, IdSuite, n - 1 ' on génère la suite de valeurs en fonction des paramètres choisis
Me.Refresh ' on rafraîchit le formulaire, le sous-formulaire SF_ValeursSuite et le graphique
Else ' sinon on affiche un message d'alerte
MsgBox "Choisir une valeur initiale, une formule de récurrence et un seuil pour la suite !", vbExclamation
End If
End Sub

III-A-5-b - Contrôle graphique grpSuite

Il permet de représenter sous la forme d'un histogramme la progression de la suite par rapport au seuil choisi.

Contrôle graphique grpSuite

Le graphique a comme source de données la requête R_ValeursSuite. Il comprend, en abscisse, les indices de la suite et en ordonnée, les valeurs de la suite et du seuil limite.

III-A-6 - Module M_GenererValeursSuite

III-A-6-a - Procédure GenererValeursSuite

Déroulé de la procédure :

- on vide la table T_ValeursSuite ;

- puis, on évalue chaque terme de la suite ;

- pour chaque terme, on ajoute sa valeur et son indice dans la table T_ValeursSuite.

Procédure GenererValeursSuite

Public Sub GenererValeursSuite(ByVal Uo As Double, ByVal FormuleRecurrence As String, ByVal IdSuite As Long, n As Long)
' Génère la suite des n termes en fonction des paramètres passés en arguments

' U0 : ' argument pour la valeur du terme initial
' FormuleRecurrence : ' argument pour la formule du terme d'indice n
' IdSuite : ' argument contenant l'identifiant de la suite
' n : ' argument contenant le nombre de termes de la suite

Dim i As Long ' variable d'indice des termes de la suite
Dim Un As Double ' variable pour la valeur du terme d'indice n
Dim db As DAO.Database ' référence à la base courante
Dim rsValeursSuite As DAO.Recordset ' variable objet recordset

Set db = CurrentDb ' référence à la base courante

' vide les données de la suite dans la table T_ValeursSuite
db.Execute "delete from T_ValeursSuite where IdSuite=" & IdSuite, dbFailOnError

Set rsValeursSuite = db.OpenRecordset("T_ValeursSuite", dbOpenDynaset) ' ouvre le recordset basé sur la table T_ValeursSuite

Un = Uo  ' on initialise la variable pour les termes de la suite

For i = 0 To n  ' parcours des n+1 termes de la suite
rsValeursSuite.AddNew ' ajout d'un terme dans la table T_ValeursSuite
rsValeursSuite!IndiceTerme = i ' copie de l'indice du terme
rsValeursSuite!ValeurTerme = Un ' copie de la valeur du terme
rsValeursSuite!IdSuite = IdSuite ' copie de l'identifiant de la suite pour faire le lien avec la tabel T_Suite
rsValeursSuite.Update
Un = EvalExpression(FormuleRecurrence, Un, i) ' évaluation de la formule de récurrence pour i+1
Next i

' on libère les variables objet
rsValeursSuite.Close
Set rsValeursSuite = Nothing
Set db = Nothing
End Sub

On utilise la fonction Eval pour évaluer les expressions obtenues à partir des relations de récurrence.

III-A-6-b - Fonction EvalNombreTermes

Permet d'évaluer le nombre de termes de la suite en fonction du terme initial, de la formule de récurrence et du seuil saisis sur le formulaire.

Déroulé de la procédure :

- on évalue chaque terme de la suite ;

- pour chaque terme, on teste si sa valeur est supérieure ou égale au seuil ;

- si ce n'est pas le cas, on passe au terme suivant ;

- si c'est le cas, on sort en renvoyant l'indice du dernier terme.

Fonction EvalNombreTermes

Public Function evalNombreTermes(ByVal Uo As Double, ByVal FormuleRecurrence As String, ByVal Seuil As Double) As Long
' Détermine le nombre de termes de la suite
' U0 : ' argument pour la valeur du terme initial
' FormuleRecurrence : ' argument pour la formule du terme d'indice n
' Seuil : ' argument contenant la valeur du seuil
Dim i As Long, n As Long, Un As Double, s As Integer

Un = Uo ' on initialise le terme de la série
i = 1 ' on initialise l'indice des termes de la série
s = Sgn(Seuil - Un) ' signe de la différence entre le seuil et Un
Do While Sgn(Seuil - Un) = s ' tant qu'on n’a pas atteint le seuil
s = Sgn(Seuil - Un) ' signe de la différence entre le seuil et Un
Un = EvalExpression(FormuleRecurrence, Un, i) ' évaluation de la formule de récurrence pour n=i
i = i + 1 ' on incrémente l'indice des termes de la série
If i > 2000 Then Exit Do ' on définit une limite pour sortir avant que le seuil soit atteint
Loop
evalNombreTermes = i ' on renvoie l'indice du dernier terme dont la valeur est supérieure ou égale au seuil
End Function

La fonction est déclarée publique pour pouvoir l'appeler dans tout le projet.

III-A-6-c - Fonction EvalExpression

Permet d'évaluer l'expression obtenue à partir de la formule de récurrence.

On a recours pour cela à la fonction Eval disponible dans l'environnement VBA Access.

Syntaxe

Eval(expression)

L'argument expression est une expression qui prend la valeur d’une chaîne de texte alphanumérique. Par exemple, l’argument expression chaîne peut être une fonction qui retourne une chaîne ou une valeur numérique.

Exemples d'utilisation :

Debug.Print Eval("2+3")
renvoie 5
Debug.Print Eval("2*3")
renvoie 6
...

Déroulé de la fonction :

- on identifie le terme Un dans la formule avec sa valeur ;

- on identifie l'indice n dans la formule avec sa valeur ;

- on évalue l'expression obtenue avec la fonction Eval.

Private Function EvalExpression(ByVal FormuleRecurrence As String, ByVal Un As Double, ByVal n As Long) As Double
' Evalue l'expression obtenue à partir de la formule de récurrence
' FormuleRecurrence : ' argument pour la formule du terme d'indice n
' Un : ' argument pour la valeur du terme d'indice n
' n : ' argument contenant l'indice n de la suite
' la formule est du type : n*Un + 10, il faut identifier Un dans cette formule
FormuleRecurrence = Replace(FormuleRecurrence, "Un", Replace(CStr(Un), ",", "."))
FormuleRecurrence = Replace(FormuleRecurrence, "n", CStr(n)) ' puis, on identifie n dans la formule
EvalExpression = Eval(FormuleRecurrence) ' enfin, on évalue l'expression obtenue
End Function

III-A-6-d - Fonction BarreProgression

Elle renvoie une chaîne de caractères sous la forme d'une barre de progression.

Fonction BarreProgression

Public Function BarreProgression(valeur As Double, valeurMax As Double, maximum As Long) As String
' valeur : argument indiquant la valeur de la suite pour un certain indice
' valeurMax : argument indiquant la valeur maxi de la suite
' maximul : argument indiquant la valeur maxi de la barre de progression
Dim pp As Double, pg As Long, pr As Long

pp = valeur / valeurMax ' proportion par rapport au total
pg = CInt(pp * maximum) ' progression par rapport à la valeur maxi de la barre

pr = (maximum - pg) ' progression restante

If pg < 0 Then ' si la progression pg est négative
pg = 0 ' on met 0 pour la progression
pr = maximum
End If
If pr < 0 Then ' si la progression pg est supérieure à la valeur maxi
pr = 0 ' on a 0 pour le reste de la progression
End If
' On renvoie la progression de la suite sous la forme d'une barre de progression composée d'une chaîne de caractères
BarreProgression = String(pg, ChrW(&H2588)) & String(pr, ChrW(&H2591)) & " " & Format(pp, "0.00 %")
End Function

III-B - Progression linéaire des ventes

On a constaté que les ventes d'un certain produit augmentent approximativement de p euros par mois.

En partant d'un montant initial des ventes, noté U_0=m, on souhaite donc estimer suivant ce modèle les montants des ventes pour chacun des n mois suivants.

Le montant attendu le mois suivant sera donc :

U(1) = m + p

En généralisant, on obtient donc la suite des montants mensuels :

U(0) = m
U(1) = m + p
U(2) = (m + p) + p = m + 2*p
U(3) = ((m + p) + p) + p = m + 3*p
...
U(n) = (...((m + p) + p) + p) + ...) + p  = m + n*p

On a bien une suite arithmétique de raison p et de terme initial U_0=m.

La relation de récurrence de la suite est donnée par :

U(n+1) = U(n) + p

Le terme général de cette suite est donc :

U(n) = m + n*p

avec Un le terme d'indice n de la suite (Un).

Si on prend U_0=2000 et p=500, on obtient avec la fonction Eval, la suite des valeurs :

U(0) = 2000
U(1) = Eval("2000 + 500") = 2500
U(2) = Eval("2500 + 500") = 3000
U(3) = Eval("3000 + 500") = 3500
...
U(n+1) = Eval("U(n) + p") = ...

Aperçu de la suite arithmétique obtenue :

Progression arithmétique des ventes

Aperçu du graphique correspondant :

Progression arithmétique des ventes

La formule de récurrence employée pour la progression arithmétique est notée Un+1 = Un + 500.

On peut également utiliser le terme général noté Un+1 = 2000 + 500*(n+1).

III-C - Progression géométrique des ventes

On a constaté que les ventes d'un certain produit progressent en suivant un taux d'évolution mensuel proche de t.

En partant toujours d'un montant initial des ventes, noté U_0=m, on souhaite donc prévoir suivant ce modèle les montants des ventes pour chacun des n mois suivants.

Le montant attendu le mois suivant sera donc :

U(1) = m + m*t
U(1) = m*(1+t)

En généralisant, on obtient ainsi la suite des montants mensuels :

U(0) = m
U(1) = m*(1+t)
U(2) = m*(1+t)*(1+t) = m*(1+t)^2
U(3) = m*(1+t)*(1+t)*(1+t) = m*(1+t)^3
...
U(n) = m*(1+t)^n

On a bien une suite géométrique de raison (1+t) et de terme initial U_0=m.

La relation de récurrence est donnée cette fois par :

U(n+1) = (1+t)*U(n)

Cette égalité conduit logiquement à la formule du taux d'évolution :

t = (U(n+1) - U(n))/U(n)

Le terme général de cette suite est alors :

U(n) = m*(1+t)^n

avec Un le terme d'indice n de la suite (Un).

Si on prend U_0=3000 et t=0.05, on obtient avec la fonction Eval, la suite des valeurs :

U(0) = 3000
U(1) = Eval("(1 + 0.05)*3000") = 3150
U(2) = Eval("(1 + 0.05)*3150") = 3307.5
...
U(n+1) = Eval("(1 + 0.05)*U(n)") = ...

Aperçu de la suite géométrique obtenue :

Progression géométrique des ventes

Aperçu du graphique correspondant :

Progression géométrique des ventes

La relation de récurrence employée pour la progression géométrique est notée ici Un+1 = (1 + 0.05)*Un.

On constate aussi que le seuil de 10 000 est atteint et dépassé à partir du 25e mois.

III-D - Évolution du capital restant dû

Un capital c emprunté à un taux mensuel t et remboursé par mensualités constantes m conduit à la construction d'une suite arithmético-géométrique. Si Rn représente le capital restant dû au bout de n mensualités, la suite (Rn), est définie par la relation de récurrence :

Rn+1 = (1+t)*Rn - m

Pour un capital de départ c=10000, un taux mensuel t=0.004 et un remboursement mensuel de m=400, on aboutit donc à la formule de récurrence :

Rn+1 = (1 + 0.004)*Rn - 400
Un+1 = (1 + 0.004)*Un - 400

Ce qui peut également s'écrire :

U(n+1) = (1 + 0.004)*U(n) - 400

Avec le terme initial :

U(0) = 10000

On obtient, avec la fonction Eval, la suite des valeurs :

U(0) = 10000
U(1) = Eval("(1 + 0.004)*10000 - 400") = 9640
U(2) = Eval("(1 + 0.004)*9640 - 400") = 9278.56
...
U(n+1) = Eval("(1 + 0.004)*U(n) - 400") = ...

Aperçu de l'évolution du capital restant à rembourser :

Évolution du capital restant dû

Aperçu du graphique correspondant :

Évolution du capital restant dû

La relation de récurrence employée pour la progression arithmético-géométrique est notée ici Un+1 = (1 + 0.004)*Un - 400.

On constate aussi que le capital restant dû devient inférieur à 0, à partir du 27e mois.

III-E - Progression des ventes cumulées

En partant toujours d'un montant initial des ventes, noté U_0=m, on souhaite obtenir les valeurs cumulées des ventes pour chacun des n mois suivants, en appliquant pour chaque mois un taux d'évolution t.

Le montant cumulé du mois suivant est alors :

S(1) = U(0) + (U(0) + t*U(0))
S(1) = U(0) + U(0)*(1+t)

On obtient ainsi la suite des n montants cumulés suivant la valeur initiale :

S(0) = U(0) = m
S(1) = U(0) + U(1) = m + m*(1+t)
S(2) = U(0) + U(1) + U(2) = m + m*(1+t) + m*(1+t)*(1+t) = m + m*(1+t) + m*(1+t)^2
S(3) = U(0) + U(1) + U(2) + U(3) = m + m*(1+t) + m*(1+t)^2 + m*(1+t)^3
...
S(n) = U(0) + ... + U(n) = m + m*(1+t) + ... + m*(1+t)^n

On a bien une suite de sommes partielles des termes d'une progression géométrique, notée Sn et de terme initial S_0=m.

Le terme général de cette suite est donc :

S(n) = m + m*(1+t) + ... + m*(1+t)^n

La relation de récurrence de la suite est donnée par :

S(n+1) = S(n) + m*(1 + t)^(n+1)

avec Sn le terme d'indice n de la suite (Sn).

Aperçu de la suite Sn pour m=10000 et t=0.005, soit un taux d'évolution mensuel de 0.5% :

Progression des ventes cumulées

Aperçu du graphique correspondant :

Progression des ventes cumulées

La relation de récurrence employée pour la progression des cumuls est notée ici Un+1 = Un + 10000*((1 + 0.005)^(n+1)).

On constate aussi que le seuil de 285 000 est atteint et dépassé à partir du 26e mois.

IV - Conclusion

Dans la pratique, les suites récurrentes peuvent donc permettre, par exemple, de réaliser des simulations pour savoir au bout de combien de mois un certain seuil est atteint ou dépassé. Il suffit pour cela d'identifier leur relation de récurrence et leurs paramètres, pour ensuite pouvoir générer les valeurs successives.

V - Base de données à télécharger

La base jointe est au format accdb.

VI - Remerciements

Je tiens à remercier jeannot45, Laurent Ott et Pierre Fauconnier pour m'avoir conseillé pour la réalisation de cet article, ainsi que escartefigue pour sa relecture.