Book Image

NumPy: Beginner's Guide

By : Ivan Idris
Book Image

NumPy: Beginner's Guide

By: Ivan Idris

Overview of this book

Table of Contents (21 chapters)
NumPy Beginner's Guide Third Edition
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
NumPy Functions' References
Index

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:

  1. 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]]
    
  2. Calculate the 8th Fibonacci number (ignoring 0), by subtracting 1 from 8 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
    
  3. 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.]...