Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
248 changes: 248 additions & 0 deletions .ipynb_checkpoints/Fibonacci-checkpoint.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,248 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Fibonacci Numbers [[1]](https://en.wikipedia.org/wiki/Fibonacci_number)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In mathematics, the Fibonacci numbers are the numbers in the following integer sequence, called the Fibonacci sequence, and characterized by the fact that every number after the first two is the sum of the two preceding ones:\n",
"\n",
"$$ 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, \\cdots$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In mathematical terms, the sequence $F_n$ of Fibonacci numbers is defined by the recurrence relation:\n",
"\n",
"$$ F_{n}=F_{n-1}+F_{n-2} $$\n",
"\n",
"with seed values:\n",
"$$ F_0 = 0 , F_1 = 1 $$\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In matrix notation this definition is equivalent to:\n",
"\n",
"\\begin{eqnarray}\n",
" \\begin{bmatrix}\n",
" F_1 \\\\\n",
" F_0\n",
" \\end{bmatrix}\n",
" & = &\n",
" \\begin{bmatrix}\n",
" 1 \\\\\n",
" 0\n",
" \\end{bmatrix} \\\\\n",
" \\begin{bmatrix}\n",
" F_{n+1} \\\\\n",
" F_n\n",
" \\end{bmatrix}\n",
" & = &\n",
" \\begin{bmatrix}\n",
" 1 & 1 \\\\\n",
" 1 & 0\n",
" \\end{bmatrix}\n",
" \\begin{bmatrix}\n",
" F_n \\\\\n",
" F_{n-1}\n",
" \\end{bmatrix}\n",
"\\end{eqnarray}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we want to compute only the $n^{th}$ Fibonacci number, then the following identity is useful:\n",
"\n",
"\\begin{equation}\n",
" \\begin{bmatrix}\n",
" F_{n} \\\\\n",
" F_{n-1}\n",
" \\end{bmatrix} =\n",
" \\begin{bmatrix}\n",
" 1 & 1 \\\\\n",
" 1 & 0\n",
" \\end{bmatrix}^{n-1}\n",
" \\begin{bmatrix}\n",
" F_1 \\\\\n",
" F_0\n",
" \\end{bmatrix}\n",
"\\end{equation}\n",
"\n",
"By using matrix exponentiation (for instance, calculating $M^8$ as $((M^2)^2)^2$ ), $F_{n}$ can be calculated in $O(log(n))$ time complexity. This algorithm is sometimes called **fast fibonacci transform**."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Follow the instructions in the next sections. Feel free to create extra cells (for instance, you can try different values for $F_1$ and $F_0$).**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1. Fast Fibonacci Transform Implementation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Implement a function that returns $F_n$ as we described above (for this assignment we are not concerned about the efficiency of your implementation, i.e. you can use $M^n$ assuming octave does matrix exponentiation for you):"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"function f = fibonacci(n,f_0,f_1)\n",
" f =([1 1; 1 0]^(n-1))*[f_1;f_0];\n",
"end"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2. Plot $F_{n+1} / F_n$ ratio"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Initialize $F_0 = 0$ and $F_1 = 1$, then plot the $\\dfrac{F_{n+1}}{F_{n}}$ values for $ 1 \\leq n \\leq 100$. As $n \\to \\infty$, we expect $\\dfrac{F_{n+1}}{F_{n}} \\to \\dfrac{\\sqrt{5}+1}{2}$. "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nkwXJURUAbLJkB0AIggRACIIEQAiCBEAIggRACNMEyRHmADziCHMAQrBkB0AIggRACIIEQAiCBEAI\nggRACIIEQAiCBEAIggRACIIEQAiCBEAI0wTJ+eUAPDJNkJxfDsAjluwACEGQAAhBkAAIQZAACEGQ\nAAjBEeYAhOAIcwBCsGQHQAiCBEAIggRACIIEQAiCBEAIggRACIIEQAiCBEAIggRACIIEQAiOMAcg\nBEeYAxCCJTsAQhAkAEIQJABCECQAQhAkAEIQJABCmCZIXTfJywIQlxkSACEIEgAhCBIAIQgSACEI\nEgAhCBIAIQgSACEIEgAhCBIAIQgSACE4whyAEM4TpGEYDvp5R5gD8MiH3d9u2zbnXNd1XdfP/czt\n7W1ZlsMwFEXRNM25rxCAWdgTpKZpin3TmaqqxlxdX18LEgDH2ROklxhrNE6knvyB1Wq1flyWZVmW\np78oAHH0fd/3/fh4tVrtWFTb4QxBSinlnPu+f256dHFxcdzFAfAmnGWyccxNDcMwbN7FsLtGAPAS\ne2ZIy+Uy55xS6vt+sViMX7y8vCzL8u7uLqWUc76+vq6qKuc8DMP4RQA41J4grSO06f7+fv24qqqH\nh4eDXtL55QBsO+Y9pL333QHAoWwdBEAIggRACIIEQAiCBEAIggRACIIEQAiCBEAIggRACIIEQAiO\nMAcghGmCZO8hAB6xZAdACIIEQAiCBEAIggRACIIEQAiCBEAIEwTJEeYAbDNDAiAEQQIgBEECIARB\nAiAEQQIgBEECIARBAiAEQQIgBEECIARBAiCECYLk/HIAtk0QJOeXA7DNkh0AIQgSACEIEgAhCBIA\nIQgSACEIEgAhOMIcgBDMkAAIQZAACEGQAAhBkAAIQZAACEGQAAhBkAAIQZAACEGQAAhBkAAIYYIg\nleXrvyYA0QkSACFYsgMgBEECIARBAiAEQQIgBEECIARBAiAER5gDEIIZEgAhCBIAIQgSACEIEgAh\nCBIAIQgSACEIEgAhCBIAIQgSACEIEgAhODEWgBBeI0jfvn3b/KMg7db3/dSX8MYYsUMZsUMZsYM8\n+p3/cq8RpK9fv77Cq7wb/tc/lBE7lBE7lBE7yNG/8z+c/tpt2+ac67qu6/r0ZwNgns4QpKZpiqI4\n/XkAmDN32QEQwk/fv38//Vm6rkspPbdk9+uvv64ff/r06ePHj6e/IgBxfPv2bfOtoy9fvhzxJGdY\nstvruCsDYFbOEKTlcplzTin1fb9YLE5/QgBm6DxLdgBwIjc1ABCCIAEQwg8P0jAMP/ol3oftgTJ0\nhzJie23uOGC4dhuG4dEQGbEXOvq32Y+9y65t277vi6Ioy9I+Djvc3t6WZTkMQ1EUTdMkQ/cCwzD8\n8ssvi8ViHB8jtttyuRw/wF6WZTJc+7RtO/4OXY+PEXvS9k492wN1wNB9/5Fubm4ePeBJDw8P44Or\nq6vxgaHb6+bm5uHhYT10RmyHh4eHP/74Y/Mrhmu39d9EfyX32vxr+P2pgXr50P3YGdJ6S6Gqqn7o\nC711478axn9ojF8xdLvlnB+NjBHbYfz3ad/3ZVmO42O4dquqqm3btPF5fyP2QtsD9fKhc1NDFDnn\nvu8tBbxQ13XG6uXGFDVNM/6SZa9xxMqytM/3a/qxQVq/kTV+cpbnjDUa3z0aGbrdqqrqum4ct/Er\nRmyH9cSo/O9xZIZrt3HEqqpa/+veiL3Q9kC9fOh+7JJdWZa3t7dFUZjk7pBzvr6+rqoq5zwMw93d\nXTJ0+9R13fd927br3xdGbIemacYbZ9ZfMVx7LZfLtLHcZMSetL1Tz/ZAvXzofvhODWMbnU9xBEN3\nKCO226M33gzXbtvjY8Re6Oihs3UQACG4qQGAEAQJgBAECYAQBAmAEAQJgBD+H6b3d90cNQwmAAAA\nAElFTkSuQmCC\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = 1:100;\n",
"\n",
"for i= 1:100\n",
" a = fibonacci(i+1,0,1);\n",
" x(i) = a(1)/a(2);\n",
"end\n",
"\n",
"plot(x)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 3. Plot $F_{n+1} / F_n$ ratio starting with $F_0 = 2$ and $F_1 = 1 - \\sqrt{5}$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Initialize $F_0 = 2$ and $F_1 = F_1 = 1 - \\sqrt{5}$, then plot the $\\dfrac{F_{n+1}}{F_{n}}$ values for $ 1 \\leq n \\leq 100$. If we would represent $\\sqrt{5}$ exactly in our floating point arithmetic, then as $n \\to \\infty$, we expect $\\dfrac{F_{n+1}}{F_{n}} \\to \\dfrac{1 - \\sqrt{5}}{2}$, but for the very large values of $n$, this ratio unexpectedly converges to $\\dfrac{\\sqrt{5} + 1}{2}$."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nIARBAiAEQQIgBEECIARBAiAEQQIgBEECIARBAiAEQQIgBEECIARBAiAEQQIgBEECIARBAiAEQQIg\nBEECIARBAiAEQQIgBEECIARBAiAEQQIgBEECIIT5g/T169fZf83q9X2/9BDKY9LGMmMTmLQJJldg\nSpCGYXjjs7///vu0odwyf+knMGljmbEJTNoEkyvwYewXbLfbnPMwDE3TrNfrab8rADwxeoXUtu16\nvd5sNl3XXWNAANym0UFarVYppa7rTi8AYBb/+Pbt22uf6/t+t9ud/3Oz2eScU0pd1/V9/9r1ut9+\n++38+uPHjz/99NN8owUgoq9fvz5+6+jXX3+d8Iu8FaQXvV0jAJhmXJC6rvv06VPbtimlYRg+f/58\ntYEBcFtGr5AA4Bqc1ABACIIEQAgzB+ntQxx47Plcmb0JTNqFHp84YNLeNQzDk1kyaZeb/M1t9EkN\nb9jv933fN02Tc3aX0tueH3hh9i4xDMMvv/yy2WxOU2TSLrHb7ZqmSSmdbtswae/a7/enb6DnKTJp\nr9nv96fbUs/T8nyuRszet/k8PDw8ecFrvnz5cnpxf39/emH2LvHw8PDly5fz7Jm0d3358uW///3v\n44+YtHed/1X653mJx/8kv700V5fP3pwrpNNPYSml075w3vD8wAuz966u655Mjkl71+kn077vc86n\nWTJp72rbdr/fpz/+nSaTNsbzubp89mxqWMzpFmPL/8sdDgfTNdYpRev1+vQdlkucJi3n7KjvH2zO\nIJ3ftnLu6rueH3hh9t7Vtu3hcDhN3ekjJu1d54XR6Q2kZNIucJq0tm3PP9qbtMs9n6vLZ2/OS3Y5\n5+122zSNVe3bzgdedF13PvDC7L1rtVr1fb/f78/fJkzau9br9WkHzfkjJu0Sp2M8/U171263O2Wm\n7/vNZpNemqvLZ2/mkxpOJTz/KTKK2ZvApF3iydtvJu1dz6fIpF1u8uw5OgiAEGxqACAEQQIgBEEC\nIARBAiAEQQIghP8Hi66cyljZ7h8AAAAASUVORK5CYII=\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"f_1 = 1-sqrt(5);\n",
"f_0 = 2;\n",
"for i=1:100\n",
" f_2 = f_0 + f_1;\n",
" m(i) = f_2/f_1;\n",
" [f_0, f_1] = deal(f_1, f_2); % Swap\n",
"end\n",
"\n",
"plot(m);"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Octave",
"language": "octave",
"name": "octave"
},
"language_info": {
"file_extension": ".m",
"help_links": [
{
"text": "GNU Octave",
"url": "https://www.gnu.org/software/octave/support.html"
},
{
"text": "Octave Kernel",
"url": "https://github.com/Calysto/octave_kernel"
},
{
"text": "MetaKernel Magics",
"url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md"
}
],
"mimetype": "text/x-octave",
"name": "octave",
"version": "4.0.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Loading