Fibonacci et $\phi$
En tant qu’utilisateur de Youtube, je suis récemment tombé sur la vidéoThe Infinite Pattern That Never Repeatspar Veritasium. Et à un moment, (précisément 14:55), il explique la relation entre la suite de Fibonacci et le golden ratio
.
The ratio of one fibonacci number to the previous one approaches the golden ratio
Mais ne serait-ce pas quelque chose que nous pourrions observer simplement avec un peut de python ?
Python
Il décidé d’écrire la fonction fibo
qui afficherais les n
premières valeurs de la suite:
def fibo(n): print(1) prev = 1 actual = 1 for i in range(n): print(actual) tmp = actual actual += prev prev = tmp
Si on essaye avec 5, on se retrouve avec:
>>> fibo(5) 1 1 2 3 5 8
Maintenant, ajoutons un paramètre supplémentaire qui va permettre d’effectuer un rapport entre les deux dernières valeurs et en afficher le résultat:
def fibo(n, f=lambda p, r: p / r): print(f"i: 0, f: 1, r: {f(0, 1)}") prev = 1 actual = 1 for i in range(n): print(f"i: {i}, f: {actual}, r: {f(actual, prev)}") tmp = actual actual += prev prev = tmp
Si on essaye avec 5 et la fonction qui permet de faire le rapport entre les deux, on obtient:
>>> fibo(5) i: 0, f: 1, r: 0.0 i: 0, f: 1, r: 1.0 i: 1, f: 2, r: 2.0 i: 2, f: 3, r: 1.5 i: 3, f: 5, r: 1.6666666666666667 i: 4, f: 8, r: 1.6
On peut observer que l’on se rapproche de la valeur de $\phi$ qui vaut $\phi \approx 1.6180339887…$. On peut d’ailleurs l’approximer facilement:
>>> (1 + 5 ** 0.5) / 2 1.618033988749895
D’autre part, si on utilise la fonction que j’ai écrite, on peut observer que le résultat converge vers $\phi$ rapidement mais qu’il faut attendre la 39 ième itération avant de voir la version arrondie de python:
>>> fibo(40, f=lambda a,b: a/b) i: 0, f: 1, r: 0.0 i: 0, f: 1, r: 1.0 i: 1, f: 2, r: 2.0 i: 2, f: 3, r: 1.5 i: 3, f: 5, r: 1.6666666666666667 i: 4, f: 8, r: 1.6 i: 5, f: 13, r: 1.625 i: 6, f: 21, r: 1.6153846153846154 i: 7, f: 34, r: 1.619047619047619 i: 8, f: 55, r: 1.6176470588235294 i: 9, f: 89, r: 1.6181818181818182 i: 10, f: 144, r: 1.6179775280898876 i: 11, f: 233, r: 1.6180555555555556 i: 12, f: 377, r: 1.6180257510729614 i: 13, f: 610, r: 1.6180371352785146 i: 14, f: 987, r: 1.618032786885246 i: 15, f: 1597, r: 1.618034447821682 i: 16, f: 2584, r: 1.6180338134001253 i: 17, f: 4181, r: 1.618034055727554 i: 18, f: 6765, r: 1.6180339631667064 i: 19, f: 10946, r: 1.6180339985218033 i: 20, f: 17711, r: 1.618033985017358 i: 21, f: 28657, r: 1.6180339901755971 i: 22, f: 46368, r: 1.618033988205325 i: 23, f: 75025, r: 1.618033988957902 i: 24, f: 121393, r: 1.6180339886704431 i: 25, f: 196418, r: 1.6180339887802426 i: 26, f: 317811, r: 1.618033988738303 i: 27, f: 514229, r: 1.6180339887543225 i: 28, f: 832040, r: 1.6180339887482036 i: 29, f: 1346269, r: 1.6180339887505408 i: 30, f: 2178309, r: 1.6180339887496482 i: 31, f: 3524578, r: 1.618033988749989 i: 32, f: 5702887, r: 1.618033988749859 i: 33, f: 9227465, r: 1.6180339887499087 i: 34, f: 14930352, r: 1.6180339887498896 i: 35, f: 24157817, r: 1.618033988749897 i: 36, f: 39088169, r: 1.618033988749894 i: 37, f: 63245986, r: 1.6180339887498951 i: 38, f: 102334155, r: 1.6180339887498947 i: 39, f: 165580141, r: 1.618033988749895 i: 40, f: 267914296, r: 1.618033988749895
Top comments (0)