Learning Scientific Programming with Python (2nd edition)
P6.5.5: The Fibonacci sequence by matrix similarity transform
Question P6.5.5
(a) The matrix
$$
\mathbf{F} = \left( \begin{array}{ll}1 & 1\\1 & 0\end{array} \right)
$$
can be used to produce the Fibonacci sequence by repeated multiplication: the element $F^n_{11}$ of the matrix $\mathbf{F}^n$ is the $(n+1)$th Fibonacci number (for $n=0,1,2\cdots$). Use NumPy's matrix
objects to calculate the first 10 Fibonacci numbers.
(b) One can show that $$ \mathbf{F}^n = \mathbf{C}\mathbf{D}^n\mathbf{C}^{-1}, \quad\mathrm{where}\quad \mathbf{D} = \mathbf{C}^{-1}\mathbf{F}\mathbf{C} $$ is the diagonal matrix related to $\mathbf{F}$ through the similarity transformation associated with matrix $\mathbf{C}$. Use this relationship to find the $1100$th Fibonacci number.