17.11 Règles de récurrence et récursivité
353
© Dunod – La photocopie non autorisée est un délit.
L’exécution d’un tel modèle consiste généralement à rechercher (s’il en existe) des
valeurs de PRIX et de QUANTITE qui valident les règles ci-dessus, c’est-à-dire une
solution du système d’équations, éventuellement non linéaires, que constituent ces
relations.
Remarque
On pourrait suggérer subtilement qu’il suffirait de réécrire une des règles X = f(Y)
sous la forme Y = g(X) pour faire disparaître le circuit ! Il n’en est malheureusement rien, car alors la grandeur Y du modèle y serait définie deux fois, ce qui sera
explicitement exclu au chapitre 18.
Il existe une autre catégorie de modèles qui n’admettent pas une (ou plusieurs) solution(s) comme nous venons de le voir, mais qui décrivent des systèmes en évolution. Ils font appel à des règles plus complexes, dans lesquelles on fait intervenir non
seulement les valeurs des grandeurs, mais également leur vitesse d’évolution. Ces
règles sont le plus souvent des équations différentielles, qu’on traduira sous une
forme propre au calcul, et en particulier à la prise en charge par un tableur, celle
d’équations aux différences finies.
La résolution d’un ensemble de règles récursives n’est pas chose aisée en général.
Elle correspond à la résolution d’un système d’équations, problème qui n’est pas
toujours à la portée immédiate des tableurs classiques. On peut cependant tirer profit
du fonctionnement naturel des tableurs pour mettre en œuvre une variante simple
des techniques de résolution itérative dites par approximations successives, ou par
relaxation.
On considère d’abord que, du point de vue du calcul, des règles récursives
peuvent être développées sous la forme d’un ensemble de règles de récurrence.
Ainsi, les règles
A = f(B)
B = g(A)
peuvent-elles être dépliées selon les relations suivantes
B 1 = valeur initiale arbitraire
A 1 = f(B 1 )
B 2 = g(A 1 )
A 2 = f(B 2 )
B 3 = g(A 2 )
A 3 = f(B 3 )
. . .
A n-1 = f(B n-1 )
B n = g(A n-1 )
A n = f(B n )
selon le motif général
B i = g(A i-1 )
A i = f(B i )
Précédent

- 353/436

Suivant