[HOME - BASE Cinque - Appunti di Matematica ricreativa]
Alcune proprietà - con dimostrazioni
Puoi trovare il problema originale di Fibonacci nella pagina: La successione di Fibonacci.
Definizione della successione di Fibonacci
Prendendo lo spunto dal famoso problema dei conigli, e estendendolo, la
successione di Fibonacci può essere definita così:
Chiamando Fib(n) la successione di Fibonacci, abbiamo la seguente definizione matematica:
In base a questa definizione si assume convenzionalmente Fib(0) = 0.
La successione di Fibonacci, dunque, è:
0, 1, 1, 2, 3, 5, 8, 13, 21, ...
Si osservi che la funzione Fib(n) è ricorsiva, cioè è definita in termini della funzione stessa.
Una formula per calcolare Fib(n) in funzione di n
Tino, al Forum, segnala una formula "diabolica" che permette di
calcolare l'n-esimo termine della successione di Fibonacci conoscendo soltanto
n.
La formula di Binet è la seguente:
Fib(n) = | 1 5 |
[ | ( | 1+5 2 |
) | n |
- | ( | 1-5 2 |
) | n |
] |
Il numero phi = (1+5)/2 che compare nella relazione precedente, è il famoso rapporto
aureo.
Siccome: (1-5)/2 = 1-phi,
la formula di Binet può essere scritta così:
Fib(n) = | 1 5 |
[ | ( | phi | ) | n | - | ( | 1-phi | ) | n | ] |
N.B. Il simbolo 5 è la radice quadrata di 5
Le domande sono:
a) come si dimostra la validità della formula?
b) perché il risultato, per n intero, è sempre intero? perché la radice di 5
sparisce sempre?
Alessandro B. in una E-mail pone altre due domande.
Massimo comun divisore nella successione di Fibonacci
Il massimo comun divisore tra due numeri di Fibonacci Fib(n) e Fib(m) è il
numero della successione, corrispondente al massimo comun divisore di n e m,
ovvero:
MCD(Fib(n),Fib(m)) = Fib(MCD(n,m))
Es.: Fib(10) = 55, Fib(5) = 5, MCD(Fib(10),Fib(5)) = Fib(MCD(10,5)) = Fib(5) =5
Questa proprietà è stata scoperta nel 1876 da Edouard Lucas (1842-1891), l’autore
della classica opera Recreations Mathematiques.
Come si dimostra?
Se un numero di Fibonacci è primo allora il suo indice è primo
Se mettiamo a confronto la successione di Fibonacci con una successione di
numeri naturali, noteremo che ad ogni numero di Fibonacci primo corrisponde un
indice primo. (con l'eccezione di Fib(3)=4).
Non vale il viceversa.
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
Fib(n) | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | 89 | 144 | 233 | 377 | 610 | 987 |
E' vero?
Come si dimostra?
Una formula per calcolare Fib(n) in funzione di n
Ricordiamo che:
Siccome e (1-) sono radici dell'equazione x2=x+1, si può
dimostrare (per induzione) che:
se x2=x+1 allora xn = Fib(n)
* x + Fib(n-1), per n>0.
Da dimostrare...
Sostituiamo al posto di x:
n = Fib(n) * + Fib(n-1)
Ma siccome anche (1-) è soluzione,
possiamo sostituirlo:
(1-)n = Fib(n) * (1-) + Fib(n-1)
Sottraiamo le due espressioni:
n-(1-)n = Fib(n) * (-(1-))
Ricaviamo Fib(n):
Fib(n) = | n-(1-)n ------------------ (-(1-)) |
= | n-(1-)n -------------- 5 |
Sostituendo il valore di , ricaviamo:
Fib(n) = | 1 5 |
[ | ( | 1+5 2 |
) | n |
- | ( | 1-5 2 |
) | n |
] |
Massimo comun divisore nella successione di Fibonacci
Voglio dimostrare che:
MCD(Fib(n),Fib(m)) = Fib(MCD(n,m))
Prima cosa che serve
Prima di tutto dobbiamo dimostrare che che Fib(n) e Fib(n+1) sono sempre
primi fra loro, cioè non hanno fattori primi comuni.
Ecco una semplicissima dimostrazione.
Ricordiamo che:
Prendiamo 3 numeri di Fibonacci successivi:
saranno del tipo A, B, A+B.
Se A e B sono primi fra loro, allora anche B e A+B lo saranno. Quindi, se trovo
una coppia di numeri di Fibonacci successivi primi fra loro allora, da quel
punto in avanti, tutte le coppie di numeri consecutivi saranno primi fra loro.
La successione di Fibonacci è:
0,1,1,2,3,5,...
Visto che 2 e 3 sono primi fra loro allora lo saranno tutte le coppie
successive.
Seconda cosa che serve
Se m divide n allora Fib(m) divide Fib(n)
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
Fib(n) | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | 89 | 144 | 233 | 377 | 610 | 987 |
Esempio 4 divide 12, quindi 3 divide 144.
Ora che ci penso, questo non credo di averlo utilizzato.
Terza cosa che serve: la regola della somma
Fib(m+n) = Fib(m)*Fib(n-1) + Fib(n)*Fib(m+1)
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
Fib(n) | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | 89 | 144 | 233 | 377 | 610 | 987 |
Esempio: m=4; n=6; Fib(4+6) = Fib(10)
= Fib(4)*Fib(5) + Fib(6)*Fib(5)
= 3*5 + 8*5=15+40 = 55 = Fib(10)
Da dimostrare...
Si dimostra utilizzando la matrice di transizione.
Oppure per induzione, fissando t e facendo variare u.
Quarta cosa che serve: il famoso algoritmo di Euclide
Se n = qm+r, allora MCD(n,m) = MCD(m,r)
Questo non lo dimostro, perché è molto noto,
ma siccome è determinante per la dimostrazione del teorema, lo spiego e faccio
un esempio.
Se permettete, lo utilizzerò in una versione semplificata in cui q=1.
Se n = m+r, allora MCD(n,m) = MCD(m,r)
Prendiamo a,b interi con a,b>0 e supponiamo
0<a<b.
Sottraiamo a da b, avremo che:
b-a+r1, con r1<b.
Osserviamo che:
- se r1=0, allora b = a e abbiamo già che MCD(a,b)=a;
-altrimenti:
MCD(a,b) = MCD(a,r1),
con il vantaggio che r1 sarà minore di b.
Ora ripetiamo lo stesso procedimento
sostituendo al posto di a e b i nuovi valori a e r1 (supponiamo a>=r1)
Sottraendo r1 da a avremo:
a-r1=r2, con r2<=a.
dove
- se r2=0, si ha che r1=a, quindi MCD(a,b) = MCD(a,r1) = r2;
-altrimenti:
MCD(a,b)=MCD(a,r1)=MCD(r1,r2).
Andando avanti così, r(i) diventerà sempre
più piccolo e ad un certo punto avremo un r(k)=0
MCD(a,b)=MCD(a,r1)=MCD(r1,r2)=...=MCD(r(k-1),0)=r(k-1)
Quindi:
MCD(a,b)=r(k-1)
Ecco un esempio pratico:
MCD(60,35)=
MCD(35,25)=
MCD(25,10)=
MCD(10,15)=
MCD(10,5)=
MCD(5,5)=
MCD(5,0)=5
Questo algoritmo è meno rapido di quello di Euclide ma mi sembra che calzi
meglio alla conclusione della dimostrazione.
FINALMENTE si comincia.
Consideriamo due numeri di Fibonacci: Fib(m) and Fib(m+n).
Utilizziamo la seguente proprietà:
Fib(m+n) = Fib(m)*Fib(n-1) + Fib(n)*Fib(m+1)
Dalla proprietà discende che:
MCD(Fib(m), Fib(m+n)) =
MCD(Fib(m), Fib(m)*Fib(n-1) + Fib(n)*Fib(m+1)) = (ho applicato
banalmente la formula al secondo termine)
MCD(Fib(m), Fib(n)*Fib(m+1)) = (ho eliminato l'addendo Fib(m)*Fib(n-1)
perché è multiplo di Fib(m))
MCD(Fib(m), Fib(n)) (ho eliminato il fattore Fib(m+1) perché è
relativamente primo con Fib(m))
Per ora ho dimostrato che:
MCD(Fib(m), Fib(m+n)) = MCD(Fib(m), Fib(n))
Se noi guardiamo gli argomenti (o indici) delle Fib(k) scopriamo di essere di fronte proprio all'algoritmo di Euclide!
Se n = m+r, allora MCD(n,m) = MCD(m,r)
Ciò significa che, in particolare, nell'espressione:
MCD(Fib(m), Fib(n))
possiamo sostituire al maggiore fra m ed n, la differenza fra i due. Se ad
esempio n>m, possiamo scrivere:
MCD(Fib(m), Fib(n)) = MCD(Fib(m), Fib(n-m)) = MCD(Fib(m), Fib(r)) con il
vantaggio che n<=n
A questo punto, come abbiamo fatto con l'algoritmo semplificato di Euclide,
possiamo andare avanti ad oltranza fino ad incontrare una differenza uguale a
zero. Avremo allora:
MCD(Fib(m), Fib(n)) = ... ... ... = MCD(Fib(d), Fib(0)) = Fib(d)
Ma, attenzione, che cosa è d?
Per come abbiamo applicato l'algoritmo, d è proprio il MCD(m,n)!
E ora, la sostituzione finale.
MCD(Fib(m), Fib(n)) = Fib(d) = Fib(MCD(m,n))
Che è quello che volevamo dimostrare. Grandioso!
Se Fib(m) è primo allora m è primo (con l'eccezione m=4)
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
Fib(n) | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | 89 | 144 | 233 | 377 | 610 | 987 |
Si può utilizzare questa proprietà:
Fib(nk) è multiplo di Fib(k) per qualsiasi n>1 e per k >1
Da dimostrare...
Consideriamo un numero m, composto (maggiore di 4).
Allora: m=n*k e Fib(m) = Fib(nk)
Siccome Fib(nk) è multiplo di Fib(k) possiamo concludere che Fib(m) è
composto.
In definitiva, vale l'impicazione:
Se m è composto allora Fib(m) è composto.
Da questa si può costruire l'implicazione contronominale:
Se Fib(m) NON è composto allora m
NON è composto.
ovvero
Se Fib(m) è primo allora m è primo.
Agosto 2004
Sito Web realizzato da Gianfranco Bo