Sujet TD : Fibonacci, matrice, diagonalisation
Dominique Michelucci, Universit´ e de Dijon
La suite de Fibonacci est d´efinie par :
F0= 0, F1= 1, n >1⇒Fn=Fn−2+Fn−1
On en d´eduit :
(Fn, Fn−1) = (Fn−1, Fn−2)M avec :M =
1 1 1 0
= (F(n−2), F(n−3))M2
= . . .
= (F1, F0)Mn−1= (1,0)Mn−1
La m´ethode d’exponentiation rapide est utilis´ee pour calculer Mn−1 en O(log2n) produits de matrices carr´ees 2×2.
On peut remarquer queM est diagonalisable : Ses valeurs propres sont racines de
|M −λI2,2|=
1−λ 1
1 −λ
=λ2−λ−1 = (λ−φ)(λ−φ′) = 0 o`u :
φ=1 +√ 5
2 = 1.618..., φ′= 1 +√ 5
2 =−0.618...
Ses vecteurs propres sont tels que (a, b)M = (a+b, a) =λ×(a, b). Donc (φ,1), et (φ′,1) sont deux vecteurs propres deM, associ´es `aφet φ′ :
φ 1 φ′ 1
1 1 1 0
=
φ+ 1 φ φ′+ 1 φ′
=
φ2 φ φ′2 φ′
=
φ 0 0 φ′
φ 1 φ′ 1
1
L’inverse deR=
φ 1 φ′ 1
estR−1=φ1
−φ′ ×
1 −1
−φ′ φ
. Orφ−φ′=
√5.
De RM = diag(φ, φ′)R, on d´eduit : M = R−1diag(φ, φ′)R. Notons D = diag(φ, φ′).
DoncMk= (R−1DR)k =. . .=R−1DkR. Deux cons´equences :
1. Ceci justifie queFk =aφk+bφ′k, pour certaines constantes aet b, que l’on peut calculer en consid´erantF0=aφ0+bφ′0 et F1=aφ1+bφ′1. V´erifier : a= √55, etb=−a.
2. Il existe donc une m´ethode plus rapide (du moins pour des matrices plus grandes que M!) pour calculer Mk : quand M est diagonalisable, soit D la matrice diagonale des valeurs propres, soit R la (en fait, une) matrice des vecteurs propres ; commeM =R−1DR, pour calculer Mk =R−1DkR. Si D= diag(λ1, . . . λn), alorsDk = diag(λk1, . . . λkn), enO(n) au lieu deO(n3). Le calcul de D etR (par la m´ethode QR) et deR−1 est enO(n3). On passe donc deO(n3logk) `aO(n3) (kest l’exposant etn×nla taille de la matrice).
Ceci se g´en´eralise `a des suites plus compliqu´ees, par exemple le nombre de noeuds de l’arbre de Fibonacci (cet arbre est l’arbre des appels r´ecursifs dans le calcul r´ecursif na¨ıf deFk) :T0 a comme racine 0 et n’a pas de fils,T1 a comme racine 1 et n’a pas de fils, et pour k >1,Tk a comme racine ket a deux fils : Tk−2 et Tk−1. Le nombre de noeuds de Tk et tk et v´erifie : t0 = 1, t1 = 1, et pourk >1,tk =tk−2+tk−1+ 1. Trouvez l’´equivalent de la matriceM (elle est 3 par 3), ses valeurs propres (ce sont 1, φ et φ′). En d´eduire qu’il existe trois constantes a, b, c telles que tk =aφk+bφ′k +c1k; calculez les en consid´erant k= 0,1,2. Ensuite prouvez que la formule est exacte par r´ecurrence.
2