Time for action – computing Fibonacci numbers
A matrix can represent the Fibonacci recurrence relation. We can express the calculation of Fibonacci numbers as a repeated matrix multiplication:
Create the Fibonacci matrix as follows:
F = np.matrix([[1, 1], [1, 0]]) print("F", F)
The Fibonacci matrix appears as follows:
F [[1 1] [1 0]]
Calculate the
8th
Fibonacci number (ignoring0
), by subtracting1
from8
and taking the power of the matrix. The Fibonacci number then appears on the diagonal:print("8th Fibonacci", (F ** 7)[0, 0])
The Fibonacci number is as follows:
8th Fibonacci 21
The golden ratio formula, better known as Binet's formula, allows us to calculate Fibonacci numbers with a rounding step at the end. Calculate the first eight Fibonacci numbers:
n = np.arange(1, 9) sqrt5 = np.sqrt(5) phi = (1 + sqrt5)/2 fibonacci = np.rint((phi**n - (-1/phi)**n)/sqrt5) print("Fibonacci", fibonacci)
The first eight Fibonacci numbers are as follows:
Fibonacci [ 1. 1. 2. 3. 5. 8. 13. 21.]...