Skip to content
Open
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
193 changes: 174 additions & 19 deletions Fibonacci.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,20 @@
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"# Fibonacci Numbers [[1]](https://en.wikipedia.org/wiki/Fibonacci_number)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"deletable": true,
"editable": true
},
"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",
Expand All @@ -18,7 +24,10 @@
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"In mathematical terms, the sequence $F_n$ of Fibonacci numbers is defined by the recurrence relation:\n",
"\n",
Expand All @@ -31,7 +40,10 @@
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"In matrix notation this definition is equivalent to:\n",
"\n",
Expand Down Expand Up @@ -63,7 +75,10 @@
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"If we want to compute only the $n^{th}$ Fibonacci number, then the following identity is useful:\n",
"\n",
Expand All @@ -87,71 +102,203 @@
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"deletable": true,
"editable": true
},
"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": {},
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"### 1. Fast Fibonacci Transform Implementation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"deletable": true,
"editable": true
},
"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": null,
"execution_count": 4,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"function fn = fastFibonacci (n)\n",
" fn = 0;\n",
" if (n == 0)\n",
" return;\n",
" elseif(n == 1)\n",
" fn = 1;\n",
" return;\n",
" else\n",
" multiplier=[1,1;1,0];\n",
" baseVector=[1;0];\n",
" fn = ((multiplier**(n-1))*baseVector)(1,1);\n",
" return;\n",
" endif\n",
"endfunction"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
"source": [
"function fn = calculateRatio (n)\n",
" fn = 0;\n",
" fn = fastFibonacci(n+1)/fastFibonacci(n);\n",
" return;\n",
"endfunction"
]
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"### 2. Plot $F_{n+1} / F_n$ ratio"
]
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"deletable": true,
"editable": true
},
"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": null,
"execution_count": 8,
"metadata": {
"collapsed": true
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": []
"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:1:100;\n",
"plot(x,arrayfun(@calculateRatio,x));"
]
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"### 3. Plot $F_{n+1} / F_n$ ratio starting with $F_0 = 2$ and $F_1 = 1 - \\sqrt{5}$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"deletable": true,
"editable": true
},
"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": 9,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"function fn = fastFibonacciSecondVersion (n)\n",
" fn = 2;\n",
" if (n == 0)\n",
" return;\n",
" elseif(n == 1)\n",
" fn = (1-sqrt(5));\n",
" return;\n",
" else\n",
" multiplier=[1,1;1,0];\n",
" baseVector=[2;(1-sqrt(5))];\n",
" fn = ((multiplier**(n-1))*baseVector)(1,1);\n",
" return;\n",
" endif\n",
"endfunction"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"function fn = calculateRatioSecondVersion (n)\n",
" fn = 0;\n",
" fn = fastFibonacciSecondVersion(n+1)/fastFibonacciSecondVersion(n);\n",
" return;\n",
"endfunction"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGkCAIAAACgjIjwAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA\nHXRFWHRTb2Z0d2FyZQBHUEwgR2hvc3RzY3JpcHQgOS4xNnO9PXQAAA54SURBVHic7d09cttIGoDh\n3i1fABvZad9AhQs4QDYx5wj0CVzSEayaE5hXYDyRGMwBBsUbdGpHiyN4A9gcLmmJBEwBn8TniTjy\nSEB12X7djZ/+17dv3xIAzO3fc58AAKQkSAAEIUgAhCBIAIQgSACEIEgAhCBIAIQgSACEMCZIXdf9\n/vvvm83m4mcDwNUaE6TVarVcLi9+KgBcs8FBatu2ruvnOBUArtmbod+w2Wxub2+fWK/77bff3r9/\n339+9+7d27dvR5/c9dhutzc3N3OfxQtj0IYyYiMYtDN9/fr1y5cv/ee//vrrzz//HPFDBgepruvN\nZtO2bVVVP/0f3r9///HjxxGncuWappn7FF4egzaUERvBoE1m8JJd0zQ551JKKeU5TgiA6zR4hpRS\nyjl//vz54qcCwDW7/HNI7969u/jPfPVyznOfwstj0IYyYiMYtBFGV+DyQXIXwwh+049g0IYyYiMY\ntBFGV8CbGgAIQZAACEGQAAhBkAAIQZAACEGQAAhBkAAIQZAACEGQAAhBkAAIQZAACEGQAAhBkAAI\nQZAACEGQAAhBkAAIQZAACEGQAAhBkAAIQZAACEGQAAhBkAAIQZAACGHqIG02Ex8QgJdBkAAIwZId\nACEIEgAhCBIAIUwdpLad+IAAvAxmSACEIEgAhCBIAIQgSACEMHWQcp74gAC8DFMHqaomPiAAL4Ml\nOwBCECQAQvBgLAAhTBokr/oG4DGW7AAIQZAACEGQAAhh6iDV9cQHBOBlMEMCIARBAiCEGYLUddMf\nE4DoZgiSZ2MBOOblqgCE4C47AEJwUwMAIQgSACFMHaSmmfiAALwMZkgAhCBIAIQww35IpUx5TABe\nhhlmSIIEwDFLdgCEIEgAhCBIAIQgSACEMEOQPBsLwDEzJABCECQAQpg0SP1mSDboA+DYpEHqN0Oy\nhTkAxyzZARCCIAEQgiABEMKYIHVd1/3ChaD+1gYA2Pdm6Des1+uUUtd1VVUtFosRh+xvbQCAfYNn\nSIvFYrFYLJfLdvjt2/1+SABwbPAMKaW02Ww2m81j06Ptdrv7nHPOOY88NQBeiFJK+bHZ3Xa7bUa9\n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\nrkJggg==\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot(x,arrayfun(@calculateRatioSecondVersion,x));"
]
},
{
"cell_type": "code",
"execution_count": null,
Expand All @@ -171,14 +318,22 @@
"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": "0.16.1"
"version": "4.0.0"
}
},
"nbformat": 4,
Expand Down