Skip to content

Instantly share code, notes, and snippets.

@keflavich
Created November 8, 2012 22:01
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save keflavich/4042018 to your computer and use it in GitHub Desktop.
Save keflavich/4042018 to your computer and use it in GitHub Desktop.
{
"metadata": {
"name": "Lecture21_AnnotatedExamples"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Annotated notes from Lecture 21\n",
"\n",
"__GOALS:__\n",
"\n",
" * Learn the tools needed for the data fitting homework assignment\n",
" * Learn some generally useful data fitting techniques\n",
"\n",
"__TUTORIAL TODAY:__ \n",
"Load up this ipython notebook and change the values of `m` and `b` in the \"Fitting Lines to Data\" section, `A` and `B` in \"Curve Fitting\", and then again `a` and `b` in \"Fitting a Power Law\"\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# You can ignore this, it's just for aesthetic purposes\n",
"matplotlib.rcParams['figure.figsize'] = (8,5)\n",
"rcParams['savefig.dpi'] = 100"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fitting Lines to Data\n",
"=====================\n",
"We'll cover very basic line fitting, largely ignoring the subtleties of the statistics in favor of showing you *how* to perform simple fits of models to data."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# These import commands set up the environment so we have access to numpy and pylab functions\n",
"import numpy as np\n",
"import pylab as pl\n",
"\n",
"# Data Fitting\n",
"# First, we'll generate some fake data to use\n",
"x = np.linspace(0,10,50) # 50 x points from 0 to 10\n",
"\n",
"# Remember, you can look at the help for linspace too:\n",
"# help(np.linspace)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# y = m x + b\n",
"y = 2.5 * x + 1.2"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# let's plot that\n",
"pl.clf()\n",
"pl.plot(x,y)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 4,
"text": [
"[<matplotlib.lines.Line2D at 0x105959150>]"
]
},
{
"output_type": "display_data",
"png": "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\n"
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# looks like a simple line. But we want to see the individual data points\n",
"pl.plot(x,y,marker='s')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 5,
"text": [
"[<matplotlib.lines.Line2D at 0x1031a3290>]"
]
},
{
"output_type": "display_data",
"png": "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\nrkJggg==\n"
}
],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# We need to add noise first\n",
"noise = pl.randn(y.size)\n",
"# Like IDL, python has a 'randn' function that is centered at 0 with a standard deviation of 1. \n",
"# IDL's 'randomu' is 'pl.rand' instead\n",
"# What's y.size?\n",
"print y.size\n",
"print len(y)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"50\n",
"50\n"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`y.size` is the number of elements in y, just like `len(y)` or, in IDL, `n_elements(y)`"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# We can add arrays in python just like in IDL\n",
"noisy_flux = y + noise\n",
"# We'll plot it too, but this time without any lines\n",
"# between the points, and we'll use black dots\n",
"# ('k' is a shortcut for 'black', '.' means 'point')\n",
"pl.clf() # clear the figure\n",
"pl.plot(x,noisy_flux,'k.')\n",
"# We need labels, of course\n",
"pl.xlabel(\"Time\")\n",
"pl.ylabel(\"Flux\")\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 7,
"text": [
"<matplotlib.text.Text at 0x1059705d0>"
]
},
{
"output_type": "display_data",
"png": "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\nrkJggg==\n"
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we're onto the fitting stage.\n",
"We're going to fit a function of the form\n",
"$$y = m*x + b$$\n",
"which is the same as\n",
"$$f(x) = p[1]*x + p[0]$$\n",
"to the data.\n",
"This is called \"linear regression\", but it is also a special case of a more\n",
"general concept: this is a first-order polynomial.\n",
"\"First Order\" means that the highest exponent of x in the equation is 1\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# We'll use polyfit to find the values of the coefficients. The third\n",
"# parameter is the \"order\"\n",
"p = np.polyfit(x,noisy_flux,1)\n",
"# help(polyfit) if you want to find out more"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# print our fit parameters. They are not exact because there's noise in the data!\n",
"# note that this is an array!\n",
"print p\n",
"print type(p) # you can ask python to tell you what type a variable is"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[ 2.59289715 0.71443764]\n",
"<type 'numpy.ndarray'>\n"
]
}
],
"prompt_number": 9
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Great! We've got our fit. Let's overplot the data and the fit now\n",
"pl.clf() # clear the figure\n",
"pl.plot(x,noisy_flux,'k.') # repeated from above\n",
"pl.plot(x,p[0]*x+p[1],'r-') # A red solid line\n",
"pl.xlabel(\"Time\") # labels again\n",
"pl.ylabel(\"Flux\")"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 10,
"text": [
"<matplotlib.text.Text at 0x107b2ca50>"
]
},
{
"output_type": "display_data",
"png": "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\nTkSuQmCC\n"
}
],
"prompt_number": 10
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Cool, but there's another (better) way to do this. We'll use the polyval\n",
"# function instead of writing out the m x + b equation ourselves\n",
"pl.clf() # clear the figure\n",
"pl.plot(x,noisy_flux,'k.') # repeated from above\n",
"pl.plot(x,np.polyval(p,x),'r-') # A red solid line\n",
"pl.xlabel(\"Time\") # labels again\n",
"pl.ylabel(\"Flux\")"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 11,
"text": [
"<matplotlib.text.Text at 0x105978dd0>"
]
},
{
"output_type": "display_data",
"png": "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\nTkSuQmCC\n"
}
],
"prompt_number": 11
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# help(polyval) if you want to find out more"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 12
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's do the same thing with a noisier data set. I'm going to leave out most of the comments this time."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"noisy_flux = y+noise*10\n",
"p = polyfit(x,noisy_flux,1)\n",
"print p"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[ 3.4289715 -3.65562359]\n"
]
}
],
"prompt_number": 13
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# plot it\n",
"pl.clf() # clear the figure\n",
"pl.plot(x,noisy_flux,'k.') # repeated from above\n",
"pl.plot(x,np.polyval(p,x),'r-',label=\"Best fit\") # A red solid line\n",
"pl.plot(x,2.5*x+1.2,'b--',label=\"Input\") # a blue dashed line showing the REAL line\n",
"pl.legend(loc='best') # make a legend in the best location\n",
"pl.xlabel(\"Time\") # labels again\n",
"pl.ylabel(\"Flux\")"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 14,
"text": [
"<matplotlib.text.Text at 0x107617750>"
]
},
{
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAArkAAAG9CAYAAAARJ24/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3XtclHX6//EXmOYJxAOQqQWVopiYoCIHSw3PiGb1K/OQ\nTe1ublaa5bfDalZmpzUt14675LpttO13ty+ImmZpJh6TsIOlZmnlAUfD8xGY3x+fYCQFRWbmnsP7\n+XjwcLnnnplrgIV3n7nu6xPkcDgciIiIiIj4kWCrCxARERERcTWFXBERERHxOwq5IiIiIuJ3FHJF\nRERExO8o5IqIiIiI31HIFRERERG/o5ArIiIiIn5HIVdERERE/I5Xh9wpU6YQHBxc4SM2NrbCOdOn\nTyc2NpZmzZoxZMgQdu/ebVG1IiIiIuItvDrkAlx99dXs3r27/GPFihXlt82aNYupU6fy3HPPsXTp\nUgB69OhBaWmpVeWKiIiIiBe4yOoCzqVWrVpERESccdzhcDBjxgwmTZrEoEGDAJg7dy6RkZHk5uaS\nkZHh6VJFRERExEt4/Uruli1baNGiBVdeeSUjRozgp59+AqCwsJBt27aRlpZWfm5oaCiJiYmsXr3a\nqnJFRERExAt49Uput27d+Pvf/07r1q359NNPefPNN+nevTtfffUVO3bsACAyMrLCfSIjI8tv+629\ne/eyaNEioqKiqFevntvrFxEREZHqOXbsGNu2baNv3740a9bsgh/Hq0Nuv379yv93XFwcI0aM4PLL\nL+e9996jY8eOZ72Pw+EgKCjorLctWrSIESNGuKVWEREREXGdt99+m+HDh1/w/b065P5Wo0aNaNOm\nDdu2bWPgwIGAaVs4fTW3sLCQ1NTUs94/OjoaMF+0du3aub9gsdy4ceOYOXOm1WWIh+j7HVj0/Q4s\n+n4Hjm+++YYRI0aU57YL5VMh9/Dhw3z33XdERUURGRlJdHQ0S5YsIS4uDoCDBw+ydu1aHnzwwbPe\nv27dugC0a9eO+Ph4j9Ut1gkLC9P3OoDo+x1Y9P0OLPp+B56y3HahvDrkPvjgg2RkZNCyZUtWrFjB\n66+/TkhICDfddBMA48ePZ/LkybRu3ZqoqCgmTZpEVFQU6enpFlcuIiIiIlby6pC7Y8cOhg0bxr59\n+wgPD6d79+68/fbbhIaGAjB27FhOnDjBxIkTsdvtpKamsmzZskp7ckVEREQkMHh1yM3KyjrnORMm\nTGDChAkeqEZEREREfIXXz8kVqYlhw4ZZXYJ4kL7fgUXf78Ci77dUl1ev5Fply5YtHDp0yOoyxAVi\nYmLIz88HICQkhNatW1tckbiT/ggGFn2/A4u+31JdCrm/sWXLFtq0aWN1GeImmzdvVtAVEREJAAq5\nv1G2gqtZuv6lbOaeVuhFREQCg0JuJTRLV0RERMR36cIzEREREfE7CrkiIiIi4ncUckVERETE7yjk\nioiIiIjfUcgVr7Rlyxb69OlDo0aNCA4OJjs7mzlz5hAcHMyPP/5odXkiIiLi5RRyA0hZSDz9IzIy\nkl69erFo0SK3Pe+xY8eYMmUKn3zyyXnf5/bbb6egoICJEyfy9ttv07lzZ4KCgggKCqpw3iuvvMLf\n//53V5csIiIiPk4jxALQU089RXR0NCUlJeTn55Obm8vAgQNZvHgxvXr1cvnzHTlyhCeffJLg4GCu\nu+66c55/7NgxVq9ezT333MNjjz1WfnzkyJEMGzaMOnXqlB975ZVXCA8P5/bbb3d53SIiIuK7FHID\nUP/+/ctnAI8cOZK77rqLDh068O6777ol5JZxOBzndZ7dbgcgKiqqwvHg4OAKAVdERESkMmpXEC65\n5BIuvvhimjRpcsZtc+bMISUlhbCwMGJiYnjggQc4fvx4hXM+++wz+vbtS7Nmzahfvz5XXHEFd955\nJwDbtm0jIiICgCeeeKK8TeKJJ544ay1TpkwpD7cPPfQQwcHBREdHl9dyek9uVFQUGzdu5JNPPil/\n3J49e7rkayIiIiK+TSu5AWj//v3s3buX0tJSNmzYwJtvvklwcDA33XRThfPGjx/P7NmzsdlsjB49\nmu+//56//OUvrF+/vry/ds+ePfTp04ewsDDuuusurrrqKrZv3877778PQEREBK+++ipjxoxh6NCh\nDB06FIC4uLiz1nbjjTfSuHFjxo8fz2233caAAQNo2LDhWc996aWXuPfeewkJCSlva4iMjHTJ10hE\nRER8m0JuAEpLS6vweb169cjOzqZz587lxzZs2MCsWbN4+umn+Z//+Z/y4z179qRfv37897//ZejQ\noaxatYr9+/fzzjvv0K9fv/LznnrqKQDq16/PjTfeyJgxY4iLi+O2226rsrYOHToQEhLC+PHjiY+P\nr/L8wYMH89hjjxEREXHOxxUREZHAopBbE0ePwrffuv952raF+vVd9nCvvPIKbdq0AWD37t28/fbb\nDBgwgH/961/ccMMNAPzrX/+iTp063Hjjjezdu7f8vvHx8TRs2JC8vDyGDh1aviL70UcfkZaWxkUX\n6UdKRERErKdEUhPffgsJCe5/nvXr4dcLxVyha9eu5ReeAQwbNoxOnToxduxYBg0axEUXXcSWLVs4\nfvx4eRj+re3btwMQHR3N8OHDmT59Om+++SY9evRgyJAh3HbbbbpITERERCyjkFsTbduaAOqJ53Gj\noKAgevTowcsvv8yWLVto164dxcXFRERE8M4775z1PuHh4eX/+x//+Adjx45l3rx5LFq0CJvNxvTp\n01m9ejUNGjRwa+0iIiIiZ6OQWxP167t0hdVKxcXFAJSUlAAQExNDbm4uycnJ1K1b95z3T0xMJDEx\nkalTp/Lqq69yzz338O6773LnnXeesYGDK7nzsUVERMR3aYSYcOrUKRYvXkzdunWJiYkB4Oabb8bh\ncJRfQHa64uJiDhw4AJhJDb+df9v215XnkydPAhAWFkatWrUoKipyee1NmzZ1y+OKiIiIb9NKbgBa\nsGABGzduBMwIsHfeeYfvvvuO5557jtq1awOQkJDAhAkTeOaZZygoKKB3797Url2bLVu28L//+7+8\n/PLLDB06lDlz5vDKK68wdOhQoqOj+eGHH3jvvfdo1KgRAwYMAKBWrVpcc801ZGVl0axZM6688ko6\ndOhA+/bta/xaunTpwosvvsgDDzxA586dad68uWblioiIiEJuICl7a3/y5Mnlxxo3bkzbtm3Jysri\nlltuqXD+c889R2JiIrNmzWLatGmcOHGC6OhoRo4cSUpKCgA9evRg3bp1vPvuuxQWFhIWFkbXrl2Z\nMmUKl19+efljvfHGG9x333288MILHDp0iMcff/yCQu5v2xMefvhhfvzxR/75z38yc+ZMevTooZAr\nIiIiBDnOd69VP5Cfn09CQgLr16+vMF2guueI79H3VURExDe46m+2enJFRERExO8o5IqIiIiI31HI\nFRERERG/o5ArIiIiIn5HIVdERERE/I5CroiIiIj4HYVcEREREfE7CrkiIiIi4ncUckVERETE7yjk\nioiIiIjfUcgVEREREb+jkCsiIiIifkchV0RERET8jkJugJgzZw7BwcHk5+dbXQrHjh1jypQpfPLJ\nJ1aXIiIi4pVsNhsxMTHYbDarS/FZCrnicUeOHOHJJ59UyBURETkLm81Gbm4umzdvJjc3V0H3Aink\n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\n"
}
],
"prompt_number": 14
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Despite the noisy data, our fit is still pretty good! One last plotting trick, then we'll move on."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pl.clf() # clear the figure\n",
"pl.errorbar(x,noisy_flux,yerr=10,marker='.',color='k',linestyle='none') # errorbar requires some extras to look nice\n",
"pl.plot(x,np.polyval(p,x),'r-',label=\"Best fit\") # A red solid line\n",
"pl.plot(x,2.5*x+1.2,'b--',label=\"Input\") # a blue dashed line showing the REAL line\n",
"pl.legend(loc='best') # make a legend in the best location\n",
"pl.xlabel(\"Time\") # labels again\n",
"pl.ylabel(\"Flux\")"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 15,
"text": [
"<matplotlib.text.Text at 0x1036977d0>"
]
},
{
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAArkAAAG9CAYAAAARJ24/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3XlclOX+//EXKKi44YqmJpT7mpCiDpaalSmZacsx02w6\ndSo112OdDLOyOp6OaflNbZvSLLNFk2gx9ec6ytHcchc13EUUcUF25vfHHeOggKIDs/B+Ph4+kLnv\nueczMMLbaz7XdfnYbDYbIiIiIiJexNfVBYiIiIiIOJtCroiIiIh4HYVcEREREfE6CrkiIiIi4nUU\nckVERETE6yjkioiIiIjXUcgVEREREa+jkCsiIiIiXsftQ25ycjJPP/00jRo1IiAggDZt2rBx48Y8\n50yZMoUWLVpQs2ZN+vbty4kTJ1xUrYiIiIi4A7cOuSkpKbRv356cnBy+/vprdu3axbvvvku1atXs\n50yfPp1JkyYxefJkli9fDkDXrl3JyclxVdkiIiIi4mI+7ryt75tvvslvv/3GypUr8z1us9m49dZb\nGTZsGKNHjwbg3LlzBAUFMX/+fPr06VOS5YqIiIiIm3DrkdwffviBiIgIhgwZws0330xoaCiffPKJ\n/XhCQgLx8fH06NHDfluVKlUIDw8nNjbWFSWLiIiIiBso6+oCCrN//36mTZvGQw89xBdffMGvv/7K\nsGHD8Pf3Z/DgwRw9ehSAoKCgPPcLCgqyH3N06tQpFi9eTHBwMBUqVCiR5yAiIiIi1y41NZX4+Hju\nvfdeatased3XceuQm5WVRY0aNZg9ezYAd955Jzt37mTWrFkMHjy4wPvZbDZ8fHyuuH3x4sU8/vjj\nxVaviIiIiDjH3LlzGThw4HXf361Dbv369WnXrl2e27p06cK0adMAqFevHmC0LTiO5iYkJBAREXHF\n9UJCQgDji9a8efPiKlvcyMiRI+2vF/F++n6XLvp+ly76fpceu3bt4vHHH7fntuvl1iHXZDKxZMmS\nPLdZrVaCg4MBoy0hJCSEpUuX0qZNG8CYeLZ+/XrGjh17xfXKly8PQPPmzQkNDS3e4sUtBAYG6ntd\niuj7Xbro+1266Ptd+uTmtuvl1hPPRo4cyYkTJ3j++ef5/fffefPNN1m8eDFDhw4FwMfHh1GjRjFp\n0iR+/PFHtm3bxuDBgwkODiYyMtLF1YuIiIiIq7j1SG7Lli1ZunQpL730Et27d6dBgwZMnz6dAQMG\n2M8ZNmwY6enpjBs3jsTERCIiIlixYkW+PbkiIiIiUjq4dcgFiIiIYM2aNYWeM2bMGMaMGVNCFYmI\niIiIu3PrdgWRG+U46i/eT9/v0kXf79JF328pKrcfyXWFuLg4zp8/7+oyxAmaNm3Kpk2bAKhcuTKN\nGzd2cUVSnPRLsHTR97t00fdbikoh9zJxcXE0adLE1WVIMdm7d6+CroiISCmgkHuZ3BFcraXrXXLX\n3NMIvYiISOmgkFsAraUrIiIi4rk08UxEREREvI5CroiIiIh4HYVcEREREfE6CrkiIiIi4nUUcsUt\nxcXFcc8991C1alV8fX1ZtGgRn3/+Ob6+vhw6dMjV5YmIiIibU8gtRXJDouOfoKAgunfvzuLFi4vt\ncVNTU5k4cSIrV6685vs88cQTbNmyhXHjxjF37lxuv/12fHx88PHxyXPejBkzmD17trNLFhEREQ+n\nJcRKoTfeeIOQkBCys7PZtGkTMTEx9O7dm99++43u3bs7/fFSUlJ4/fXX8fX15c4777zq+ampqcTG\nxjJ06FDGjx9vv33QoEEMGDAAf39/+20zZsygVq1aPPHEE06vW0RERDyXQm4pdN9999nXAB40aBB/\n//vfad26NV9//XWxhNxcNpvtms5LTEwEIDg4OM/tvr6+eQKuiIiISEHUriDUqVOHcuXKUb169SuO\nff7555hMJgIDA2natCmjR48mLS0tzzm///479957LzVr1iQgIIBbbrmFp556CoD4+Hhq164NwGuv\nvWZvk3jttdfyrWXixIn2cPvPf/4TX19fQkJC7LU49uQGBwezc+dOVq5cab9ut27dnPI1EREREc+m\nkdxSKDk5mVOnTpGTk8PWrVv5+OOP8fX15aGHHspz3qhRo/jggw8wm80MGTKEAwcO8H//939s3LjR\n3l978uRJ7rnnHgIDA/n73/9Oo0aNOHjwIAsXLgSgdu3azJw5k+eee45+/frRr18/ANq0aZNvbf37\n96datWqMGjWKxx57jF69elGpUqV8z33vvfcYPnw4lStXtrc1BAUFOeVrJCIiIp5NIbcU6tGjR57P\nK1SowKJFi7j99tvtt23dupXp06fz5ptv8uKLL9pv79atGz179mTBggX069ePdevWkZyczFdffUXP\nnj3t573xxhsABAQE0L9/f5577jnatGnDY489VmhtrVu3pnLlyowaNYrQ0NBCz3/ggQcYP348tWvX\n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\nPfnkkyosLHTNy/3kk09ks9kUHh5e7de/5557LuvrAwAAwDNiYmKu+DE8OpJbW5s2bdKmTZvU2UIA\nUQAACRVJREFUr18/NWnSRJ999pleffVVnT59Wl9++aWuuuoqSVLv3r0VGBioGTNm6MCBA0pOTtbY\nsWM1adIkg58BAAAAjOSVIXfr1q0aO3astmzZouLiYl199dX67W9/q6lTp7qayyTp6NGjGjFihNau\nXauAgADdd999evLJJw2sHAAAAN7AK0MuAAAAcCV8Yp3curBkyRJ1795drVq1UlxcnHbs2GF0SXCT\nP//5z+rdu7datGghm82mwYMHa+fOnUaXBQ949tlnZbVaNW7cOKNLgZsUFRXpoYceUqdOndSkSRNF\nRkbqq6++MrosuEFZWZlefPFFxcfHKygoSL/73e/017/+1eiyUEfWrVunAQMGqG3btrJarVq+fPl5\n17zwwgvq2rWrgoKCNGjQIB08ePCSvoZfhNwVK1bowQcf1Pjx4/X555+rY8eO6tevn6uJDeaybt06\njR49Whs3btSiRYv0448/Kj4+XiUlJUaXBjf64osvNH/+fEVGRro2jYG5FBcXq3fv3iovL9fbb7+t\nb7/9Vi+++KJatWpldGlwgz/96U968sknlZycrA0bNmjgwIEaM2aM5syZY3RpqAMlJSWKiorSK6+8\nIknnvW7PmTNHzzzzjJ577jllZmZKkmJjY1VeXl7rr+EX0xViY2MVGRmp2bNnS5IcDofatWunCRMm\naMyYMQZXB3fbtm2bunXrpnXr1qlfv35GlwM3OHnypHr27Km5c+dq2rRpioqK0osvvmh0Wahj06dP\n18cff6xPP/3U6FLgAUOHDpXD4dC7777rOta/f39FRETo1VdfNbAy1DWr1ar3339fSUlJkpw5rWPH\njho1apTGjx8vybm6ls1m09KlS13XXfRx3VaxF9m0aZPi4uJc9y0Wi+Li4pSdnW1gVfCUiv/1tW7d\n2uBK4C6PPvqoEhMTdcstt8gP/t/ut95//33169dPKSkpat++vXr06KHXXnvN6LLgJnfccYfWrFmj\n7OxslZaWas2aNdq0aZN+//vfG10a3KygoEB79+6tkt1atGih6OjoS8puXr2tb104cuSITp8+XWVV\nBkkKCQnRxo0bDaoKnlJeXq6xY8cqPj5eXbt2NbocuMHbb7+tnJwcffHFF5LO/5UXzGP37t2aNWuW\n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\nFQAAAABJRU5ErkJggg==\n"
}
],
"prompt_number": 15
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Curve Fitting\n",
"=============\n",
"\n",
"We'll now move on to more complicated curves. What if the data looks more like a sine curve? We'll create \"fake data\" in basically the same way as above."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# this time we want our \"independent variable\" to be in radians\n",
"x = np.linspace(0,2*np.pi,50)\n",
"y = np.sin(x)\n",
"pl.clf()\n",
"pl.plot(x,y)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 16,
"text": [
"[<matplotlib.lines.Line2D at 0x105f919d0>]"
]
},
{
"output_type": "display_data",
"png": "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\n5/sN8vm8RkdHtby8/Om1XbfFf3BwoGw2q0QioZmZGZ2cnOj9/f3TZxvwZ29vb2o0Gp3rVqulWq2m\n4eFhTUxMWCxzQy6X0+XlpYrFovr6+vT8/CxJGhwcVE9Pj+U6NxwdHSmdTsv3fT08POjq6krValXH\nx8e205zQ39//4cx0b2+vhoaGOEv9jxweHmplZUW+76tarer09FSxWEyZTMZ2mhP29vZUKBSUy+W0\ntbWlIAgUBIHOz89tpzml3W4rn89rY2NDnveF96GmCxUKBTM9PW0GBgbMwsKCub+/t53kjJubGxOJ\nREwkEjGe53W+b25u2k5zwu/P9efn4uLCdpoztre3TTweN9Fo1IyMjJilpSVTLpdtZzltfn7e7O/v\n285wxurqqhkfHzfRaNT4vm/W1tZMq9WyneWUSqViksmkicViZmpqypydndlOck4QBMbzPNNoNL60\nvut+BxUAAABu67ozqAAAAHAbAyoAAABChQEVAAAAocKACgAAgFBhQAUAAECoMKACAAAgVBhQAQAA\nECoMqAAAAAgVBlQAAACEyg9XFo6m/7eJowAAAABJRU5ErkJggg==\n"
}
],
"prompt_number": 16
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# We'll make it noisy again\n",
"noise = pl.randn(y.size)\n",
"noisy_flux = y + noise\n",
"pl.plot(x,noisy_flux,'k.') # no clear this time"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 17,
"text": [
"[<matplotlib.lines.Line2D at 0x107b1cbd0>]"
]
},
{
"output_type": "display_data",
"png": "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\np6q0tFTvv/++qlWrFs/TAQAAwKPivuq8Tp06mjFjhgYNGqTu3bvrrrvuUk5Ojl5//XVCJgAAQAqp\nklvnAAAASD2u7nU+ffp0de/eXQ0aNNCgQYNUVFTkZjlJpaCgQOeff75OOukkpaWladasWW6XlHTu\nuece9erVSyeeeKKaNGmiYcOGqbi42O2yksbkyZPVvXt31a9fX/Xr11e/fv30+uuvu11WUrv33nuV\nlpam8ePHu11K0pgwYYLS0tIOOzp37ux2WUllx44d+s1vfqP27durTp066tatm5YuXep2WUmjdevW\nR7yH09LSNGbMmHI937Wg+corr2jUqFG67rrr9N5776ldu3bq37+/vv76a7dKSiq7d+9Wjx499Oij\nj0oSzfItKCgo0LXXXqtFixbp2WefVUlJiQYPHqzdu3e7XVpSaNmype677z4VFhZq7ty56tq1q4YO\nHaqVK1e6XVpSWrJkiR5//HF169aN/1/EWZcuXfTZZ58dPBYsWOB2SUlj165d6tWrl8rKyvTCCy9o\n9erVeuihh9SgQQO3S0saS5cuPez9+8Ybb0iSLrnkknI937Vb5wMGDFC3bt30yCOPSJJisZhatmyp\nm266Sb///e/dKClppaWlaebMmRo6dKjbpSS1VatWqUuXLiooKFD//v3dLifp7NmzRw0bNtSTTz6p\nyy67zO1yksrOnTuVm5uryZMn609/+pN69Oihhx56yO2yksKECRM0a9YsffDBB26XkpQmTpyouXPn\n6t///rfbpaSMcePGafbs2eW+g+faiObixYs1aNCgg1/7fD4NGjRICxcudKsk4LiUlZVJkho2bOhy\nJcmnpKREkydPVnp6ugYPHux2OUnnmmuuUTAY1MCBA8W0/fhbu3atTjrpJLVr104jRozQli1b3C4p\nacycOVP9+/fXyJEjdfLJJysnJ0fTpk1zu6yktXfvXk2fPl2O45T7Oda2oDyWL774QqWlpWrSpMlh\njzdu3FiLFi1yoyTguJSVlWns2LEaPHgw86/iaPny5erbt6/27NmjBg0a6P33369Qo2D8tBdeeEHL\nli3TkiVLJDHNJt769OmjZ555Rh06dNA777yjJ554QqeddppWrFihE044we3yEt769es1adIkXXTR\nRXruuef0+uuva8yYMapRo4Yuv/xyt8tLOjNnztRXX32lkSNHlvs5rgRNINlcc8012rhxoyKRiNul\nJJWOHTvqo48+0vr16/XSSy/p9NNPV0FBgbKystwuLSls2bJFY8eO1ZtvvqkaNWpIMtOYGNWMn3PO\nOefg5926ddOIESPUqlUrvfjiixUaFcLR7du3T40aNdIzzzwjSTrjjDO0atUqTZkyhaBpwZNPPqlz\nzz1XTZs2LfdzXLl13qhRI9WqVUvbtm077PFt27apRYsWbpQEVNqYMWM0e/ZszZ8/X82aNXO7nKSS\nnp6utm3b6uyzz9bjjz+uhg0bHvyBguO3dOlSRaNR5eTkKD09Xenp6SooKNAjjzyiGjVqEDgtqF+/\nvrKysvTxxx+7XUpSaNGihU477bTDHjvttNO0efNmlypKXps2bdK8efM0atSoCj3PtTmavXv31ptv\nvnnw67KyMs2bN099+vRxqySgwsaMGaNZs2bprbfeUqtWrdwuJ+k1bdpU33zzjdtlJI1BgwZpxYoV\n+vDDD/Xhhx9q2bJl6tmzp0aMGKFly5ZxG92CnTt3at26dWrdurXbpSSFQCBwxJ2kSCTC9bXgqaee\nUpMmTXTeeedV6Hmu3Tq//vrrdfHFF6tnz57q1auXJk2apG+//bZC9/3x43bt2qW1a9ce/HrDhg1a\ntmyZGjVqpJYtW7pYWfIYPXq08vPzNWvWLNWtW1efffaZJCkjI0O1atVyubrEd+utt+rcc89VixYt\nVFRUpFdffVULFizQxIkT3S4taZxwwglHzCmuU6eOGjZsyFzjOLnhhhs0dOhQtWjRQgsWLNDUqVNV\nr149XXTRRW6XlhTGjRun5557TqNHj5bjOJozZ47mzJmjJ5980u3SkkpZWZmeeuopXXHFFUpLq+AY\nZcxFzz33XKxbt26x+vXrx84666zYmjVr3CwnqcyfPz/m8/liPp8vlpaWdvDzK6+80u3SksYPr+2B\n45lnnnG7tKRw1VVXxVq3bh2rWbNmrHHjxrGzzz479tZbb7ldVtIbMGBAbPz48W6XkTQuvfTSWPPm\nzWM1a9aMtWjRIpaXlxfbsGGD22UllXfeeScWCARi9erVi3Xu3Dk2bdo0t0tKOnPmzImlpaXF1q5d\nW+HnsgUlAAAArHB1C0oAAAAkL4ImAAAArCBoAgAAwAqCJgAAAKwgaAIAAMAKgiYAAACsIGgCAADA\nCoImAAAArCBoAgAAwIr/D1VplX8qmO0ZAAAAAElFTkSuQmCC\n"
}
],
"prompt_number": 17
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"That looks like kind of a mess. Let's see how well we can fit it.\n",
"The function we're trying to fit has the form:\n",
"$$f(x) = A * sin(x - B)$$\n",
"where $A$ is a \"scale\" parameter and $B$ is the side-to-side offset (or the \"delay\" if the x-axis is time). For our data, they are $A=1$ and $B=0$ respectively, because we made $y=sin(x)$"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# curve_fit is the function we need for this, but it's in another package called scipy\n",
"from scipy.optimize import curve_fit\n",
"# we need to know what it does:\n",
"help(curve_fit)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Help on function curve_fit in module scipy.optimize.minpack:\n",
"\n",
"curve_fit(f, xdata, ydata, p0=None, sigma=None, **kw)\n",
" Use non-linear least squares to fit a function, f, to data.\n",
" \n",
" Assumes ``ydata = f(xdata, *params) + eps``\n",
" \n",
" Parameters\n",
" ----------\n",
" f : callable\n",
" The model function, f(x, ...). It must take the independent\n",
" variable as the first argument and the parameters to fit as\n",
" separate remaining arguments.\n",
" xdata : An N-length sequence or an (k,N)-shaped array\n",
" for functions with k predictors.\n",
" The independent variable where the data is measured.\n",
" ydata : N-length sequence\n",
" The dependent data --- nominally f(xdata, ...)\n",
" p0 : None, scalar, or M-length sequence\n",
" Initial guess for the parameters. If None, then the initial\n",
" values will all be 1 (if the number of parameters for the function\n",
" can be determined using introspection, otherwise a ValueError\n",
" is raised).\n",
" sigma : None or N-length sequence\n",
" If not None, it represents the standard-deviation of ydata.\n",
" This vector, if given, will be used as weights in the\n",
" least-squares problem.\n",
" \n",
" Returns\n",
" -------\n",
" popt : array\n",
" Optimal values for the parameters so that the sum of the squared error\n",
" of ``f(xdata, *popt) - ydata`` is minimized\n",
" pcov : 2d array\n",
" The estimated covariance of popt. The diagonals provide the variance\n",
" of the parameter estimate.\n",
" \n",
" See Also\n",
" --------\n",
" leastsq\n",
" \n",
" Notes\n",
" -----\n",
" The algorithm uses the Levenburg-Marquardt algorithm through `leastsq`.\n",
" Additional keyword arguments are passed directly to that algorithm.\n",
" \n",
" Examples\n",
" --------\n",
" >>> import numpy as np\n",
" >>> from scipy.optimize import curve_fit\n",
" >>> def func(x, a, b, c):\n",
" ... return a*np.exp(-b*x) + c\n",
" \n",
" >>> x = np.linspace(0,4,50)\n",
" >>> y = func(x, 2.5, 1.3, 0.5)\n",
" >>> yn = y + 0.2*np.random.normal(size=len(x))\n",
" \n",
" >>> popt, pcov = curve_fit(func, x, yn)\n",
"\n"
]
}
],
"prompt_number": 18
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Look at the returns:\n",
"\n",
"\n",
" Returns\n",
" -------\n",
" popt : array\n",
" Optimal values for the parameters so that the sum of the squared error\n",
" of ``f(xdata, *popt) - ydata`` is minimized\n",
" pcov : 2d array\n",
" The estimated covariance of popt. The diagonals provide the variance\n",
" of the parameter estimate.\n",
" \n",
"\n",
"So the first set of returns is the \"best-fit parameters\", while the second set is the \"covariance matrix\""
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def sinfunc(x,a,b):\n",
" return a*np.sin(x-b)\n",
"fitpars, covmat = curve_fit(sinfunc,x,noisy_flux)\n",
"# The diagonals of the covariance matrix are variances\n",
"# variance = standard deviation squared, so we'll take the square roots to get the standard devations!\n",
"# You can get the diagonals of a 2D array easily:\n",
"variances = covmat.diagonal()\n",
"std_devs = np.sqrt(variances)\n",
"print fitpars,std_devs"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[ 1.24208994 0.15896795] [ 0.2237797 0.17677306]\n"
]
}
],
"prompt_number": 19
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Let's plot our best fit, see how well we did\n",
"# These two lines are equivalent:\n",
"pl.plot(x, sinfunc(x, fitpars[0], fitpars[1]), 'r-')\n",
"pl.plot(x, sinfunc(x, *fitpars), 'r-')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 20,
"text": [
"[<matplotlib.lines.Line2D at 0x105978110>]"
]
},
{
"output_type": "display_data",
"png": "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\nCz+2aCGVK1e8If5xbZ/X6w1pSCnOuXfvtlvcP/1kYXrWLPv7bt1qs7knnCCdcop08sl2tGlT/L9r\nqXnpJQuVeXk2hT1woE21shA35pU0r1EMBAAovjp1pAkTLHD6/VJGhnT66VLr1tKoUX8ZOKtVs91o\nzj7bfr9zpwWxefOkH3+0jyNG2BJRyTJNmzb7w2fLllLDhtaIvG5dqfxhfpq5ubbv4HN/+22m5s+3\n6u8lS2zCt/DjihX716Y2aGBh8v777ePf/mbrXEtLiau3//1vm63cvNmqxwcPlp54goCJv0TQBACU\nXJ060scfWyK87jorAjn9dCkpyQJnEdfTValiLZJSUg58fP16C52FAfTHH6X0dGvvUyguzsJmYfBs\n2NCOOnV8Wrdus7ZsCapmTa/atPFp4UK7rV+hwuGP8uXt9v1vv9mRl3fgx8Jfezw+Vaq0Wbt2BRUX\n59WSJT61a2fjqVbNgnDLltL//Z99bNFCSkiwrT3DtSa12NXbBQWW9h96SNq0yQLm3Xdbe4HDJXvg\nMIr8lTJ48GANGzbsiM9ZtGiREhISjnpQABDLYrInYN26dht9wwZrifTppzar2bChhZPbby/R7Fe9\nenZ0777/sb177TJr1lgj+YM/Zmdb3l23LqCCAr+kTG3e7NP48QGNH1/yv2K5crYssUYNqUaNgGrW\n9Gv79kwdf7xPAwcG1KKFhcq6dSOzwKnIM7x5edb9PT3deihVqmS3yIcOJWCi2Ir8FXPXXXf95YLn\n5kfRxmDAgAGKj48/4LG0tDSlpaWV+JwAEGlividg3bqFKc8qfsaNs4+DB1tH9+eeswqgo1CunM1c\nNmhw5Oft3SsFgwFt3GjrJH///dDj4Mf37JGqVy8Mk/uDZXy8FVUfGCCj69/tL6u3Z8ywQDlrlq27\nrVNHuucea45KwCxT0tPTlZ6efsBjeXl5JTuZ46IxY8Y48fHxR3xOVlaWI8nJyspycygAEBESEhIc\nSfuOhISEcA/JXXv3Os4zzzhOgwaOY/HFcTp1cpzPPw/3yA6rX79+TkJCgtOvX79wD8UVh/z99u51\nnGefPfDfp2PHiP33QfiUNK+58hZl5cqV2rRpk1auXKm9e/fqhx9+kOM4atWqlapVq+bGJQEgKpS5\nnoBxcdYCZ9AgmzEbNMgaRfboYTNmt9xiRSYRMGMW87PN0v6/z7p10hVXSB99JO3aZbfHL7/cdvU5\n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\n"
}
],
"prompt_number": 20
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Again, this is pretty good despite the noisiness."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fitting a Power Law\n",
"===================\n",
"\n",
"Power laws occur all the time in physis, so it's a good idea to learn how to use them.\n",
"\n",
"What's a power law? Any function of the form:\n",
"$$f(t) = a t^b$$\n",
"where $x$ is your independent variable, $a$ is a scale parameter, and $b$ is the exponent (the power).\n",
"\n",
"When fitting power laws, it's very useful to take advantage of the fact that \"a power law is linear in log-space\".\n",
"That means, if you take the log of both sides of the equation (which is allowed) and change variables, you get a \n",
"linear equation!\n",
"$$\\ln(f(t)) = \\ln(a t^b) = \\ln(a) + b \\ln(t)$$\n",
"We'll use the substitutions $y=\\ln(f(t))$, $A=\\ln(a)$, and $x=\\ln(t)$, so that\n",
"$$y=a+bx$$\n",
"which looks just like our linear equation from before (albeit with different letters for the fit parameters).\n",
"\n",
"We'll now go through the same fitting exercise as before, but using powerlaws instead of lines."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"t = np.linspace(0.1,10) \n",
"a = 1.5\n",
"b = 2.5\n",
"z = a*t**b "
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 21
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pl.clf()\n",
"pl.plot(t,z)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 22,
"text": [
"[<matplotlib.lines.Line2D at 0x1077799d0>]"
]
},
{
"output_type": "display_data",
"png": "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\nsrvtea4wylwpBWjXrh3z5s3L/z0vL49XX32V9u3bh5hKJSktLY1Zs2bx2muvcfjhh4cdRyUkNTWV\n999/n5UrV7Jy5UpWrFhB27Zt6du3LytWrHAqP8aceuqp+816vPHGGyQlJYUTSCVq8+bNVKpUqcBj\nFStWLPK2QCp/EhMTadq0aYHulpWVxdKlS4vU3crk9L2XIo0vgwYNIiMjg1mzZnHIIYfk/wGrXbs2\nVapUCTmdoql69er7nStcrVo16tSp4znEMWjIkCE88sgjDBo0iAEDBjB37lzmzp3LtGnTwo6mEtC9\ne3cmT55Mo0aNOOWUU3j99deZMWMGgwYNCjuaouC7777jk08+yf/9008/ZcWKFdStW5fGjRszdOhQ\nbr75Zo466iiSkpJIT08nKSmJLl26FP5NImXUI488EmnVqlWkVq1akd///veRjz76KOxIKiEJCQmR\nChUqRBISEgrcHn744bCjqRR07NgxMnTo0LBjqIQsWrQocuqpp0Zq1KgRSU5OjkydOjXsSCohOTk5\nkeHDh0eSkpIiVatWjRx55JGR9PT0yA8//BB2NEXB/Pnz8///ed//z7700kvzj7nrrrsixxxzTKRu\n3bqR8847L7J58+YivUeZ3KdUkiRJ8aVMnlMqSZKk+GIplSRJUugspZIkSQqdpVSSJEmhs5RKkiQp\ndJZSSZIkhc5SKkmSpNBZSiVJkhQ6S6kkSZJC9/8BmIhMBAmE/fcAAAAASUVORK5CYII=\n"
}
],
"prompt_number": 22
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Change the variables\n",
"# np.log is the natural log\n",
"y = np.log(z)\n",
"x = np.log(t)\n",
"pl.clf()\n",
"pl.plot(x,y)\n",
"pl.ylabel(\"log(z)\")\n",
"pl.xlabel(\"log(t)\")"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 23,
"text": [
"<matplotlib.text.Text at 0x10779f190>"
]
},
{
"output_type": "display_data",
"png": "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\nRU5ErkJggg==\n"
}
],
"prompt_number": 23
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It's a straight line. Now, for our \"fake data\", we'll add the noise *before* transforming from \"linear\" to \"log\" space"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"noisy_z = z + pl.randn(z.size)*10\n",
"pl.clf()\n",
"pl.plot(t,z)\n",
"pl.plot(t,noisy_z,'k.')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 24,
"text": [
"[<matplotlib.lines.Line2D at 0x107785c10>]"
]
},
{
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAArAAAAGsCAYAAAAluJTLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3Xl8VOW9x/FP2FSEgEgMFtBQJBEUrFAFmai0RVE7ILiW\niqij0lZBAS1iLWrrUpeLUL3UlUGR3ri016IRNxSKTAsqiChtiVgQBYkjBgNlk2TuH+cSiCyyZDKZ\n5PN+veY1yZlnzvmFofTrk995noxEIpFAkiRJShP1Ul2AJEmStDcMsJIkSUorBlhJkiSlFQOsJEmS\n0ooBVpIkSWnFACtJkqS0YoCVJElSWjHASpIkKa0kJcDeeuut1KtXr9KjU6dOlcaMHTuWTp060bJl\nS/r378+qVasqvV5WVsbo0aNp3749rVq1YvDgwaxbty4Z5UqSJCmNJG0G9thjj2XVqlUVj9mzZ1e8\n9sADD3D77bdz9913M2PGDAB69epFeXl5xZhRo0ZRUFDAxIkTmTZtGkuWLGHAgAHJKleSJElpIiMZ\nW8neeuutTJ06lXfffXeH1xKJBO3bt2fo0KGMHDkSgNLSUrKzs3n66afp168fa9eupU2bNkyaNIlz\nzjkHgMWLF9OxY0cWLFhAly5dqrpkSZIkpYmkzcB++OGHtG7dmvbt2zNo0CA++eQTAIqLi1m2bBm9\ne/euGJuZmUn37t2ZM2cOAIsWLWLt2rWVxuTl5XHEEUdUjJEkSVLdlJQA26NHD5544gleeuklRo4c\nyQcffMDJJ5/MunXrWLFiBQDZ2dmV3pOdnV3x2ooVK2jUqBGZmZk7jFm5cmUySpYkSVKaaJCMk55x\nxhkVX3fp0oVBgwZx5JFH8swzz3Dcccft9D2JRIKMjIx9vuYXX3zBK6+8Qk5ODgcddNA+n0eSJEnJ\nsWHDBpYtW0afPn1o2bLlPp8nKQH2m5o1a0Zubi7Lli3jxz/+MRC0Emw/C1tcXEx+fj4ArVu3ZvPm\nzZSWllaahS0uLqZ169Y7vcYrr7zCoEGDkvhTSJIkqSpMmTKFiy66aJ/fXy0Bdt26dSxZsoScnByy\ns7Np164d06dPr7gZq7S0lLfeeovrr78egGOOOYYmTZowffr0SjdxLV++nB49euz0Gu3atQOCP5CO\nHTtWw0+lVBs+fDjjx49PdRmqJn7edYufd93i5113/POf/2TQoEEVuW1fJSXAXn/99fTr1482bdow\ne/ZsHn74YZo2bcp5550HwIgRI7j55pvp0KEDOTk5jBkzhpycHMLhMABNmzZlyJAhjBw5khYtWtC0\naVOGDRtG79696dy5806veeCBBwLQsWNHunbtmowfSzVM8+bN/azrED/vusXPu27x8657tua2fZWU\nALtixQoGDhzI6tWrycrK4uSTT2bKlCkV7QBDhw5l06ZNjBo1ing8Tn5+PjNnzqzUA3vPPffQoEED\nIpEI69evp0+fPkyYMCEZ5UqSJCmNJCXAFhQUfOuY6667juuuu26Xr9erV4+77rqLu+66qypLkyRJ\nUppL2jqwkiRJUjIYYJW2Bg4cmOoSVI38vOsWP++6xc9be8sAq7TlP3h1i5933eLnXbf4eWtvGWAl\nSZKUVgywkiRJSisGWEmSJKUVA6wkSZLSigFWkiRJacUAK0mSpLRigJUkSVJaMcBKkiSpWmzeXDXn\nMcBKkiQp6RIJ+N3vquZcBlhJkiQl3e9/D88/XzXnMsBKkiQpqV55Ba67DgYPrprzGWAlSZKUNEVF\ncOGFcMYZMHRo1ZzTACtJkqSkWLMG+vWDww+H//kfqF+/as7boGpOI0mSJG1TVgYDB0JxMbz1FjRr\nVnXnNsBKkiSpyt1wA7z2Grz0EnToULXntoVAkiRJ+yQSiZCXl0ckEql0/IknYOxYuO8+OO20qr+u\nAVaSJEl7LRKJUFhYSFFREYWFhRUh9u9/hyFD4PLLYdiw5FzbACtJkqS9FovFiMfjAMTjcWKxGJ9+\nCgMGwIknwh/+ABkZybm2AVaSJEl7LRQKkZWVBUBWVhbdu4c4+2w44AD485+hUaMd3/Ob3/ymSq5t\ngJUkSdJei0ajhMNhcnNzCYfDbN4c5V//gqlT4bDDdhwfiUSYNWtWlVzbACtJkqR9Eo1GWbx4Me3b\nR3n6aZg8Gb73vZ2PjcVirFmzpkqua4CVJEnSPps6FX79a7jlFjj33F2PC4VCNG/evEquaYCVJEnS\nPnn/fbjooiC43nzz7sdGo1FOOeWUKrmuAVaSJEl77fPPg21ijzoqWPe13h6kyltuuaVKru1OXJIk\nSdorGzdC//6wYQPMnAkHH1y91zfASpIkaY8lEhCJwLvvBuH1yCOrvwYDrCRJkvbYb38LBQXw9NPQ\nvXtqarAHVpIkSXukoABuvRVuuw0uuCB1dRhgJUmS9K3+9je47DK4+GK46abU1mKAlSRJ0m4tXRrc\ntHXCCfDoo5CRkdp6DLCSJEnapa++gnAYMjPhuefggANSXZEBVpIkSUAkEiEvL49IJFJxbMuWoNd1\n5UooLISWLVNY4HYMsJIkSXVcJBKhsLCQoqIiCgsLiUQiJBJw7bXwxhvwpz/B0UenusptXEZLkiSp\njovFYsTjcQDi8TixWIwHHoA//AEeeQR+9KMUF/gNzsBKkiTVcaFQiKysLACysrI44ogQI0bAddfB\nlVemuLidMMBKkiTVcdFolHA4TG5uLqFQmDlzooTDcPfdqa5s52whkCRJEtFolFWr4MQT4aij4I9/\nhPr1U13VzjkDK0mSJDZsgLPPhrIyeOEFaNIk1RXtmjOwkiRJdVx5ebDD1vvvw5tvQps2qa5o9wyw\nkiRJddwvfxlsUvDcc9CtW6qr+XYGWEmSpDrs/vvhvvvgv/8b+vVLdTV7xh5YSZKkOuovf4Hhw+H6\n6+Hqq1NdzZ4zwEqSJNVBc+bAwIFw3nk1d7msXTHASpIk1TEffQR9+wb9rpMnQ700S4RpVq4kSZL2\nxxdfwJlnQosWMHUqHHhgqivae97EJUmSVEdsXet1zZqgheDQQ1Nd0b4xwEqSJNUBW9d6ffddmDkT\nvvvdVFe07wywkiRJdcD2a72eeGKqq9k/BlhJkqRaLh3Xet0db+KSJEmqxdJ1rdfdMcBKkiTVUum8\n1uvuJD3A3nXXXdSrV48RI0ZUOj527Fg6depEy5Yt6d+/P6tWrar0ellZGaNHj6Z9+/a0atWKwYMH\ns27dumSXK0mSVCuk+1qvu5PUH+Xtt9/mkUceoUuXLmRkZFQcf+CBB7j99tu5++67mTFjBgC9evWi\nvLy8YsyoUaMoKChg4sSJTJs2jSVLljBgwIBklitJklQrxOPBWq+HHJK+a73uTtIC7Lp16xg0aBCP\nPfYYhxxySMXxRCLBuHHjGDNmDH379qVz585MnjyZjz/+mMLCQgDWrl3LY489xrhx4+jVqxddu3Zl\n0qRJvP766yxcuDBZJUuSJKW9devgxz+GTz6JsGVLHr/8ZSTVJVW5pAXYq6++mnA4zA9/+EMSiUTF\n8eLiYpYtW0bv3r0rjmVmZtK9e3fmzJkDwKJFi1i7dm2lMXl5eRxxxBEVYyRJklTZ5s1Bv+u770Y4\n6KBCli4torCwkEikdoXYpCyj9dRTT7FgwQLefvttgErtAytWrAAgOzu70nuys7MrXluxYgWNGjUi\nMzNzhzErV65MRsmSJElprbwcLr8c3ngDWrWK8emncQDi8TixWCzF1VWtKp+B/eSTT7j22muZMmUK\njRo1AoK2ge1nYXcmkUhUCrqSJEnac6NGwR//CE8+CaedFiIrKwuArKwsQqFQiqurWlU+Aztv3jzi\n8Thdu3atOFZWVsabb77JhAkTWLZsGRC0Emw/C1tcXEx+fj4ArVu3ZvPmzZSWllaahS0uLqZ169a7\nvf7w4cNp3rx5pWMDBw5k4MCB+/ujSZIk1UhjxwaP+++HCy+ECy+MEolEiMVihEIhotFotddUUFBA\nQUFBpWNr1qypknNnJL5tanQvrVu3juXLl1d8n0gkuOyyy+jYsSM33HADHTt25KijjuLqq69m5MiR\nAJSWlpKdnc0zzzxD3759Wbt2La1bt+bxxx/nnHPOAWDx4sV07NiR9957j86dO+9w3fnz59OtWzfm\nzZtXKTxLkiTVZlOmwMUXw403wp13prqa3auqvFblM7BNmjShU6dOlY41btyYFi1aVBwfMWIEN998\nMx06dCAnJ4cxY8aQk5NDOBwGoGnTpgwZMoSRI0fSokULmjZtyrBhw+jdu/dOw6skSVJd9PLLcNll\nEInAHXekuprqk5SbuL4pIyOjUn/r0KFD2bRpE6NGjSIej5Ofn8/MmTMrjbnnnnto0KABkUiE9evX\n06dPHyZMmFAd5UqSJNV4b78drDhwxhnw8MNQl24lqvIWglSxhUCSJNUVRUUQCkGHDjB9OjRunOqK\n9kxV5bVatKmYJElS7ffZZ9CnD2RlwQsvpE94rUrV0kIgSZKk/ffVV0HLwNdfw6xZcOihqa4oNQyw\nkiRJaWDjRjj7bFi+HGbPhrZtU11R6hhgJUmSariyMhg0CObOhddeg2OOSXVFqWWAlSRJqsESCRg6\nFJ57Lnj8/75PdZoBVpIkqQb71a/goYdg4kTo1y/V1dQMrkIgSZJUQ91zD9x1V7BNbCSS6mpqDgOs\nJElSDfTII3DDDfDrX8MHH0TIy8sjYooFDLCSJEk1ztNPw89/HvS+rlgRobCwkKKiIgoLCw2xGGAl\nSZKqXSSy6xnVl14KVhy46CL4/e8hFosRj8cBiMfjxGKx6i63xjHASpIkVaNIZNczqm++CeeeC2ee\nCdEo1KsHoVCIrKwsALKysgiFQqkqvcYwwEqSJFWjXc2ovvsuhMPQvTs88ww0bBiMj0ajhMNhcnNz\nCYfDRKPRVJVeY7iMliRJUjUKhUKUlJQQj8crZlQXL4Y+fSA3F55/Hg48sPJ7DK2VOQMrSZJUjb45\no3rrrVFOOw2ysoL+16ZNU11hzecMrCRJUjXbOqP6+edw8slQvz68+iq0bJniwtKEAVaSJCkFvvoK\nzjgjeJ49G1q3TnVF6cMAK0mSVM3Wrw9u2Fq2DP76VzjqqFRXlF4MsJIkSdVo82Y477xg1YHp06Fz\n51RXlH4MsJIkSdXk66/hJz+B11+HwkLo0SPVFaUnA6wkSVI1KCuDwYPhhRfgf/8XTjst1RWlLwOs\nJElSkpWXwxVXwLPPwtNPQ9++qa4ovRlgJUmSkiiRgKuvhieegClTgq1itX8MsJIkSUmSSMDIkfDQ\nQzBxIvz0p6muqHZwJy5JkqQkSCTgpptg/HiYMAEikVRXVHsYYCVJkpLg9tvhd7+DsWPhqqtSXU3t\nYoCVJEmqYvfeCzffDHfcEbQQqGoZYCVJkqrQAw/AqFHw61/Dr36V6mpqJwOsJElSFXn0UbjmGrju\nOvjtb1NdTe1lgJUkSaoCU6bAz34WLJl1772QkZHqimovA6wkSdJ+evZZuOQSuPxyuP9+w2uyGWAl\nSZL2w9SpwfquAwcG673WM10lnX/EkiRJ++j55+H882HAAHj8cahfP9UV1Q0GWEmSpH3w/PNw3nlw\n9tnwxz9CA/c3rTYGWEmSpL20fXht0iTCscfmEXGrrWpjgJUkSdoL3wyvL75YSFFREYWFhYbYauJk\ntyRJ0h7aPrz+z//AscfGiMfjAMTjcWKxWIorrBucgZUkSdoD3wyvDRtCKBQiKysLgKysLEKhUIqr\nrBsMsJIkSd9iZ+EVIBqNEg6Hyc3NJRwOE41GU1toHWELgSRJ0m7sKrxuZWitfs7ASpIk7cK3hVel\nhgFWkiRpJwyvNZcBVpIk6RsMrzWbAVaSJGk7hteazwArSZL0/557Dvr3j3DAAXk0aRIxvNZQBlhJ\nkiSgoADOOSdCo0aFrFtXxIsvurNWTWWAlSRJdd6kSXDRRZCZGWPTJnfWqukMsJIkqU578EGIRGDI\nEDj3XHfWSgcGWEmSVGtFIhHy8vJ22QowbhxcdRVce20QZN1ZKz24E5ckSaqVIpEIhYWFxONxSkpK\niEQilQLpnXfCTTfB6NHB1xkZwXFDa83nDKwkSaqVYrEY8fiO/ayJBNx8cxBef/ObyuFV6cEAK0mS\naqVQaMd+1kQCRo2C226Du+8OgqzhNf0YYCVJUq30zX7Wxx6Lcs018F//BfffHwRZpSd7YCVJUq21\ntZ+1rAx+9jOYOBEeeQSuvDLFhWm/GGAlSVKttmULXHZZsC3sE0/AxRenuiLtr6S0EDz44IMcd9xx\nNGvWjGbNmtGzZ09efvnlSmPGjh1Lp06daNmyJf3792fVqlWVXi8rK2P06NG0b9+eVq1aMXjwYNat\nW5eMciVJUi21eTMMHAhPPRXstGV4rR2SEmDbtm3L3Xffzfz583n11Vfp3Lkz/fr1Y9GiRQA88MAD\n3H777dx9993MmDEDgF69elFeXl5xjlGjRlFQUMDEiROZNm0aS5YsYcCAAckoV5Ik1UIbNsC558Lz\nz8Of/gQXXJDqilRVktJCEA6HK75u3749Xbp0YfLkybz33nt06tSJcePGMWbMGPr27QvA5MmTyc7O\nprCwkH79+rF27Voee+wxJk2aRK9evQCYNGkSHTt2ZOHChXTp0iUZZUuSpFqitBT69oV33gkCbJ8+\nqa5IVSnpqxCUlJTw4IMP0rBhQ04//XSKi4tZtmwZvXv3rhiTmZlJ9+7dmTNnDgCLFi1i7dq1lcbk\n5eVxxBFHVIyRJEnamXgcfvADWLgQXnvN8FobJe0mrvfff5+TTjqJDRs2cMghh/DOO+/QsmVL5s2b\nB0B2dnal8dnZ2axYsQKAFStW0KhRIzIzM3cYs3LlymSVLEmS0twnn8Bpp8GaNfDXv4K/tK2dkhZg\njz76aBYuXMhHH33Es88+yymnnMKsWbN2OT6RSJBRBSsJDx8+nObNm1c6NnDgQAYOHLjf55YkSTVX\nURH07g3168Ps2XDUUamuqG4rKCigoKCg0rE1a9ZUybmTFmAbNmzId7/7Xb773e9y2mmnMXv2bJ54\n4gmuueYaAIqLiyvNwhYXF5Ofnw9A69at2bx5M6WlpZVmYYuLi2nduvVurzt+/Hi6du2ahJ9IkiTV\nVO++G7QKZGXBq6/Ct8QFVYOdTSDOnz+fbt267fe5q20nrlatWrF27Vqys7Np164d06dPr3ittLSU\nt956ix49egBwzDHH0KRJk0pjFi9ezPLlyyvGSJIkAbz5JvTqBTk5MGuW4bUuSMoM7I033shZZ51F\nmzZtWLx4MS+++CKzZ8/mjjvuAGDEiBHcfPPNdOjQgZycHMaMGUNOTk7F6gVNmzZlyJAhjBw5khYt\nWtC0aVOGDRtG79696dy5czJKliRJaWjatGCprJ494S9/gaZNU12RqkNSAmw8Hmfw4MF89tlnNGvW\njOOOO45XXnmFk046CYChQ4eyadMmRo0aRTweJz8/n5kzZ1bqgb3nnnto0KABkUiE9evX06dPHyZM\nmJCMciVJUhoqKIDBgyEcDr4+8MBUV6TqkpFIJBKpLqIqbO2pmDdvnj2wkiTVcg8+CFdfHQTYxx6D\nBkm7q0dVqaryWrX1wEqSJO2vRALuvBOuugquuQaiUcNrXeRHLkmS0kIiAV26RPjggxjHHx9i3Lgo\nVbACp9KQM7CSJKnG+/pryM2N8MEHhUARn35ayOWXR1JdllLEACtJkmq0deugb19YsiQGxIHghvFY\nLJbawpQyBlhJklRjff45/OAH8Le/wRlnhMjKygIgKyuLUCiU4uqUKgZYSZJUI330EYRC8OmnwQYF\nL70UJRwOk5ubSzgcJhqNprpEpYg3cUmSpBpn3jw46yxo1iyYfW3XLjhuaBU4AytJkmqY117btjVs\nLLYtvEpbGWAlSVKNMWVKMPN6yinwxhvw/y2vUiUGWEmSlHKJBPzXf8HFFwePv/wFDj441VWppjLA\nSpKklCovh+uug1/+Em66CSZOhIYNU12VajJv4pIkSSmzaRNceik8/TRMmBBsESt9GwOsJElKidJS\nGDAguFHr2Wfh3HNTXZHShS0EkiSp2n36KeTkRJg5M48f/ShieNVeMcBKkqRqtWAB5OZG+OqrQsrL\ni3j77UIikUiqy1IaMcBKkqRqM20a5OdDeXmM8vI4APF4nFgsluLKlE4MsJIkqVr84Q/Qty/86Edw\nwQUhsv5/kdesrCxCoVCKq1M68SYuSZKUVOXlMGoUjB0L114bPNevHyUSiRCLxQiFQm4Rq71igJUk\nSUmzfv22jQnuvx+GDdv2mqFV+8oAK0mSkqK4GPr1gw8+CAJs376prki1hQFWkiRVuX/+E846CzZu\nhFmzoFu3VFek2sSbuCRJUpWaMQN69oQmTWDuXMOrqp4BVpIkVZnJk6FPHzjhBJg9G444ItUVqTYy\nwEqSpP2WSMCtt8IllwSPF1+EZs1SXZVqK3tgJUnSftmwASIReOopuPNOGD0aMjJSXZVqMwOsJEna\nZytXQv/+wUoDzz4L552X6opUFxhgJUnSPnnnHTj77GC2dfZs6No11RWprrAHVpIk7bVnnoFTToE2\nbeDtt+G//ztCXl4ekUgk1aWpDjDASpKkPVZeHtysdeGFMGAAzJwJN90UobCwkKKiIgoLCw2xSjpb\nCCRJ0h5Zvx4uvTTodb3jDrjxxqB9IBaLEY/HAYjH48RisdQWqlrPGVhJkrSDSKRyS8Cnn8LJJwfL\nY/3v/8KvfrVtpYFQKERWVhYAWVlZhEKhVJWtOsIZWEmSVEkkErQExONxSkpK6Ns3wjvvRGnYEGIx\n+N73Ko+PRqNEIhFisRihUIhoNJqawlVnGGAlSVIl32wJKCyMcdJJ8NxzkJ298/cYWlWdbCGQJEmV\nbN8SAFkcdVSIGTN2HV6l6maAlSRJlfz+91EOOigM5PL974cpKopywAGprkraxhYCSZJUYfHiYHms\nkpIozz8PffumuiJpR87ASpIkAF54AU48ERIJeOstw6tqLgOsJEl1XHk5/Pa30K8f/OAHMHcuHH10\nqquSds0WAkmS6rDSUhg8GJ5/PgixN90E9ZzeUg1ngJUkqY7617+gf3/47LMgwIbDqa5I2jP+N5Yk\nSbXcN3fVgiCwnnhiMNv69tuGV6UXZ2AlSarFvrmrViQS4YgjovzmN8FqA088AU2bprpKae8YYCVJ\nqsW+uavWM8/EWL8e7rgDRo+231XpyQArSVItFgqFKCkpIR6PU79+Fps3hygshLPOSnVl0r7zv7sk\nSarFotEonTuHycjIpUmTMIsWRQ2vSnvOwEqSVEtt3gw33ABvvBHl/PNh4kT7XVU7GGAlSaqFPv0U\nLrgA3nkH7r8fhg6FjIxUVyVVDQOsJEm1zGuvwU9/CgcdBLNmQY8eqa5Iqlr2wEqSlGZ2tq4rbNsS\ntk8f6NoV5s83vKp2MsBKkpRGtq7rWlRURGFhYUWI/eKLYGWBW28NHtOmQcuWKS1VShpbCCRJSiPf\nXNc1FosxZw6cfz5s3AivvAKnnZbiIqUkcwZWkqQ0EgqFyMrKAiArK4tDDglx8snQti28+67hVXWD\nAVaSpDQSjUYJh8McdVQuBx8cZu7cKMOGwV//Cm3apLo6qXokJcD+7ne/44QTTiAzM5Ps7GwGDBhA\nUVHRDuPGjh1Lp06daNmyJf3792fVqlWVXi8rK2P06NG0b9+eVq1aMXjwYNatW5eMkiVJShsjRkSp\nV28xq1dH+dOf4L77oGHDVFclVZ+kBNhZs2YxbNgw5s6dy+TJkykpKeH0009n/fr1FWMeeOABbr/9\ndu6++25mzJgBQK9evSgvL68YM2rUKAoKCpg4cSLTpk1jyZIlDBgwIBklS5JU4yUS8MgjcOKJcMAB\nwRqv556b6qqk6peUm7heeumliq87duxI27ZtOfbYY5k/fz75+fkkEgnGjRvHmDFj6Nu3LwCTJ08m\nOzubwsJC+vXrx9q1a3nssceYNGkSvXr1AmDSpEl07NiRhQsX0qVLl2SULklSjbRmDQwZAs8+Cz/7\nWTDr2rhxqquSUqNaemC3zqq2aNECgOLiYpYtW0bv3r0rxmRmZtK9e3fmzJkDwKJFi1i7dm2lMXl5\neRxxxBEVYyRJqgvmzoXjjw9WGHjmGXjoIcOr6rakB9jy8nKuvfZaTj/9dDp16gTAihUrAMjOzq40\nNjs7u+K1FStW0KhRIzIzM3cYs3LlymSXLUlSypWXwz33QH4+ZGfDggXBcllSXZf0dWCvvvpqli5d\nSiwW+9axiUSCDDdqliSJ4mK45JJg1vWGG+C227xRS9oqqQF26NChTJs2jVmzZnH44YdXHG/dujUQ\ntBJsPwtbXFxMfn5+xZjNmzdTWlpaaRa2uLi44v07M3z4cJo3b17p2MCBAxk4cGCV/EySJCXb9Olw\n8cXBDOzLLwdbw0rppqCggIKCgkrH1qxZUyXnTlqAHTp0KFOnTmXmzJkceeSRlV7Lzs6mXbt2TJ8+\nveJmrNLSUt566y2uv/56AI455hiaNGnC9OnTOeeccwBYvHgxy5cvp8duNnYeP348Xbt2TdJPJUlS\n8nz9dbAN7O9+Bz/6ETz5JLRqleqqpH2zswnE+fPn061bt/0+d1IC7FVXXUVBQQFTp07l4IMPrljf\ntXnz5hx44IFkZGQwYsQIbr75Zjp06EBOTg5jxowhJyeHcDgMQNOmTRkyZAgjR46kRYsWNG3alGHD\nhtG7d286d+6cjLIlSdpvkUiEWCxGKBQiGo3u8fs+/hh++tPghq0774RRo6Ce2w1JO5WUAPvQQw+R\nkZFRsfzVVo8//jiDBw8GghnaTZs2MWrUKOLxOPn5+cycObNSD+w999xDgwYNiEQirF+/nj59+jBh\nwoRklCxJ0n6LRCIUFhYSj8cpKSkhEonsUYj93/+Fyy+HZs1g1izo2bMaipXSWEYikUikuoiqsHVK\net68ebYQSJJSIi8vr9LOk7m5uSxevHiX4//zHxg5Mtic4Nxz4dFH4ZBDqqNSKTWqKq/5ywlJkqpI\nKBQiKysLgKysLEKh0C7HvvVWsLbrlCnBuq7PPmt4lfaUAVaSpCoSjUYJh8Pk5uYSDod32j6wZUuw\nJFbPntCvGE1EAAAgAElEQVS8OZx5ZoT77svj8ssjKahYSk9JXwdWkqS6ZHc9rx99FCyPNXcu3HQT\nfPJJhBdf3PueWamuM8BKkpRkiQQ8/jhccw1kZcGbbwYzsHl5MeLxOADxeHyPNv2RZAuBJElJtXo1\nnHceRCLBNrDvvbdtlYG96ZmVtI0BVpKkJHn1VejcGWbOhD/9CaJRaNp02+t70jMraUe2EEiSVMU2\nbIDRo+H+++G004L2ge98Z+djDa3S3jPASpJUhd57Dy66CJYsgd//HoYOdUctqar5PylJkqrA11/D\n7bfDCSdAgwYwb15w05bhVap6zsBKkrSfPvgALr0UFiwIWgfGjIEDDkh1VVLt5X8XSpK0j7Zsgbvu\ngm7dgr7Xv/89mIU1vErJZYCVJGkf/OtfkJ8fbEgwYkTQMnDCCamuSqobDLCSJO2FsjIYOxa+9z0o\nKYHZs4NZ2AMPTHVlUt1hgJUkaQ8VFcEpp8AvfwlXXx30vJ50UqqrkuoeA6wkSd+ivDxYEut734PP\nP4dZs4JZ2IMOSnVlUt1kgJUkaTc++gh69YLhw+HKK4NZ1/z8VFcl1W0GWEmSdqKsLNhJq0sX+PTT\nYDvY3/8eDj441ZVJMsBKkvQNH3wAoVAw63rZZbBwIZx6aqqrkrSVAVaSpP+3aRPccgt07QqlpfDm\nm/Df/w1NmqS6MknbcycuSZKAv/0NrrgCliyBG2+EX/3KDQmkmsoZWElSWopEIuTl5RGJRPbrPGvX\nwtChwY1ZmZkwfz785jeGV6kmM8BKktJOJBKhsLCQoqIiCgsL9znEvvgidOoEjz8O48dDLAbHHlv5\nOlURkiVVLQOsJCntxGIx4vE4APF4nFgstlfv//xzGDgQwuEgsC5aBNdcA/XrbxtTVSFZUtUzwEqS\n0k4oFCIrKwuArKwsQqHQHr0vEolw+OF5tG0b4bXXYMoUmDYNjjxyx7H7G5IlJY8BVpKUdqLRKOFw\nmNzcXMLhMNFo9Fvfc955EaZMKWTVqiIyMgo5/fQIF10EGRk7H7+vIVlS8rkKgSQpLe1JaAXYuBHu\nugv+/OcYEMyobtoUZ9683c+oRqNRIpEIsViMUCi0x9eTlHwGWElSrfXqq3D11fDxx9ClS4iVK0v4\n4ov4Hs+oGlqlmskWAklSrbNiBVxwAfTpA23bBjtpvfdelL59967tQFLN5AysJKnW2LIl2DlrzBg4\n+ODgJq2f/nRbn6uhVaodnIGVJNUI+7vm6t//Dt//PowcCZdcAv/6F7u9SUtS+jLASpJSbn/WXF29\nGoYMgZ49oWFDeOutYBa2efMkFiwppWwhkCSl3L6suZpIBDtojRoFX38NEybAz35WeTMCSbWTM7CS\npJTb2zVX33kHQiGIROCMM4J2gauuMrxKdYUBVpKUcnu6MUFxMVx+OZx4IqxbBzNmwJNPQqtW1Vyw\npJSyhUCSVCPsboWAzZvhgQfgt7+FBg2CdoErrwy+llT3+D99SVKN9vLLMHw4fPgh/OIXQYht0SLV\nVUlKJVsIJEk10pIl0LcvnHkmHH44vPtusLqA4VWSAVaSVKOsXQs33ACdOgU7aD37LLzxBnTpkurK\nJNUUthBIkmqE8vJg56wbboCvvoJf/xp++Us46KBUVyappnEGVpKUcrFYsBHBJZfAqacGy2LdfLPh\nVdLOGWAlSSmzZAmcdx7k5wcrDcycCU89BUcckerKJNVkBlhJUrX74gu49lro2DHY+vXJJ4PNCU49\nNdWVSUoHBlhJUpWLRCLk5eURiUQqHd+4Ee69F446CiZNgttug8WLYdAgqOf/I0naQ/5zIUn6VrsK\npLsaW1hYSFFREYWFhUQiEcrL4X/+B44+Gm68MQisH30Eo0fb5ypp77kKgSRpt7YG0ng8TklJCZFI\nZLe7ZsViMeLxOADxeJzXXovRvXvQItC/P7zyCuTlVVf1kmojA6wkabe+GUhjsdhux4dCIUpKSojH\n4zRqlMWnn4Y4/HCYNQtOPrk6KpZU29lCIEnarVAoRFZWFgBZWVmEQqHdjr/ttigtWoSBXBo2DFNQ\nEGXOHMOrpKpjgJUk7VY0GiUcDpObm0s4HN5l+8Dq1cHGA0cdBfF4lHvvXcwXX0T5yU+8QUtS1bKF\nQJL0rXbX87p2LYwbB//1X5BIwKhRMHIkNGtWjQVKqlMMsJKkfbJxIzz4INx5ZxBir7oqWGHg/7sN\nJClpDLCSpL2yZQs8/jj85jfw2Wdw2WXBtq9t26a6Mkl1hV1JkqQ9Ul4OTz8NnTrBlVdCKAT/+Ac8\n+qjhVVL1MsBKknYrkYBp06BbN/jJT6BDB5g/H556CnJzU12dpLrIACtJ2qmtwbVHD/jxj6FJk2At\n1xdfhOOPT3V1kuqypATYWbNm0bdvX1q3bk29evWYOnXqDmPGjh1Lp06daNmyJf3792fVqlWVXi8r\nK2P06NG0b9+eVq1aMXjwYNatW5eMciWpTvm2bWETiSCkdu8eBNcGDeDVV92IQFLNkZQAu379eo4/\n/ngmTJgAQEZGRqXXH3jgAW6//XbuvvtuZsyYAUCvXr0oLy+vGDNq1CgKCgqYOHEi06ZNY8mSJQwY\nMCAZ5UpSnbF1W9iioiIKCwsrhdhEAgoL4cQTIRyGAw6A116D2bPhtNPgG/+US1LKJGUVgjPOOIMz\nzjhjp68lEgnGjRvHmDFj6Nu3LwCTJ08mOzubwsJC+vXrx9q1a3nssceYNGkSvXr1AmDSpEl07NiR\nhQsX0qVLl2SULUm13s62hU0k4IUX4Le/hXnzglnW11+HH/zA0CqpZqr2Htji4mKWLVtG7969K45l\nZmbSvXt35syZA8CiRYtYu3ZtpTF5eXkcccQRFWMkSXvvm9vCtm0bols3OPtsOPhgeOMN+Otf4Yc/\nNLxKqrmqPcCuWLECgOzs7ErHs7OzK15bsWIFjRo1IjMzc4cxK1eurJ5CJSlNfFtP6/a2bgv7ne/k\nUlYW5vXXozRrBjNmBMHVWVdJ6aDGbGSQSCR26JXdF8OHD6d58+aVjg0cOJCBAwfu97klqabZ2tMa\nj8cpKSkhEonsctvXLVuCdVzfeSfKypVBWL3lFjj11GouWlKdUFBQQEFBQaVja9asqZJzV3uAbd26\nNRC0Emw/C1tcXEx+fn7FmM2bN1NaWlppFra4uLji/bsyfvx4unbtmoTKJanm2VlP6zdt2ACTJsG9\n98KyZXDmmTBhgisKSEqunU0gzp8/n27duu33uau9hSA7O5t27doxffr0imOlpaW89dZb9OjRA4Bj\njjmGJk2aVBqzePFili9fXjFGkrRjT2soFKp4bc0auPNOOPJIGDYMTjoJFiwI1nY1vEpKZ0mZgf3P\nf/7Dhx9+WPH9v//9bxYsWMChhx5K27ZtGTFiBDfffDMdOnQgJyeHMWPGkJOTQzgcBqBp06YMGTKE\nkSNH0qJFC5o2bcqwYcPo3bs3nTt3TkbJkpSWotEokUiEWCxGKBQiGo3y2Wcwfjw8+CBs3gyXXQbX\nXw/t26e6WkmqGkkJsG+//TY//OEPgWAN2JEjRwJw6aWXEo1GGTp0KJs2bWLUqFHE43Hy8/OZOXNm\npR7Ye+65hwYNGhCJRFi/fj19+vSpWFdWkrTN1p7Xjz6Cn/8cHn8cGjWCq66Ca6+Fww9PbX2SVNUy\nEolEItVFVIWtPRXz5s2zB1ZSnbJgAdx9NzzzDLRsCcOHwy9+Ad+4n1WSUq6q8lqNWYVAkrTnysvh\npZfgvvuCtVtzcuCBB4J2gYMOSnV1kpRc1X4TlyRp175tTdf16+Ghh6BTp2C717VroaAAPvwwaBkw\nvEqqC5yBlaQaYndruq5cGSx99dBDweoCAwbAxInQs6cbD0iqewywklRD7GxN13ffhXHj4Kmn4IAD\n4Ior4JproF27FBcrSSlkgJWkGiIUClFSUkI8HiczM4vS0hBdu8IRR8Bdd8Hll0OzZqmuUpJSzwAr\nSTXEuHFR/vGPCGvWxCgtDdGpU5T77w/aBRr4r7UkVfCfRElKsfffD/pbp0yBjRujnHMOjBgR7Jwl\nSdqRAVaSUmDzZnjuuSC4vvlmsNnA9dfDkCHwne+kujpJqtkMsJJUjVasgIcfhkcfhVWr4NRT4emn\ngzaBhg1TXZ0kpQcDrCQlWSIBM2cGs61/+UuwVuvFFwfrth57bKqrk6T0Y4CVpCRZsyboa/3DH+Cf\n/4SOHeH3vw/Ca2ZmqquTpPTlTlyStIe+bZcsCGZbZ82CwYODvtbhw4Nds954AxYtgquvNrxK0v4y\nwEqqs/YkkG4/trCwkKKiIgoLC3d4T3Ex3HMPHH100Nf6t7/BLbfA+edHeP/9PJ58MuKOWZJURQyw\nkuqkbwuk37SzXbLKyuCll+Dcc6FNG7j5ZjjhBJgxA4qKoKgowuuv7/k1JEl7xh5YSXXSzgLp7my/\nS1aLFlk0bhwiJwc+/RQ6d4b77oOLLoIWLfb9GpKkPeMMrKQ6KRQKkZWVBUBWVhahUGi34ydMiHLM\nMWEaN87lyy/DLFkS5ayz4K234L33YNiwyuF1X64hSdozzsBKqpOi0SiRSIRYLEYoFCIaje4wprwc\nYjGYPBmeeQZKS6OcdBJccQVccAE0abL/15Ak7T0DrKQ6a1eB8sMP4ckng8eyZZCTA9dcEyx/lZtb\nNdeQJO07A6ykpEuHWcgvvwx2xJo8GebMCZa6uuCCILTm50M9G64kqcbwn2RJSbW3d/vvz3X2dEms\nrTZvDnbGOuccaNVqWx/rU08F27w++iiccorhVZJqGmdgJSVVddyJvzUkx+NxSkpKiEQiu5zpLSuD\nv/41CKl//nMw83r88cEargMHQnZ2lZcnSapiBlhJSbX98lPJuhP/20JyeXmwscBTT8Gf/hRsOpCT\nA1deCYMGwbHHVnlJkqQkMsBKSqrquBN/ZyE5kYC33w76Wp95JlivtXXrYK3WCy8MNhxwZyxJSk8G\nWElJl+wbt7YPyR07hsjOjtK+PSxdGrQEnH9+EFp79rSfVZJqAwOspLSWSMCCBdC6dZSMDJg6Fd58\nE847Lwitp54K9eunukpJUlUywEraKzVhSayysmCDgeeeCx4ffwzNm8PZZ8P48fCjH0HDhikpTZJU\nDQywkvbY3tztX9U2bYLXXw8C69SpEI/Dd74D/fvDgAHBTKuhVZLqBgOsVMftzYxqdSyJtb21a2Ha\ntCC0TpsWfN+hA1x2WbB26wkn2NMqSXWRAVaqw/Z2RrU6lsT65BN48UUoLITp04OZ1+OPh1GjgpnW\nTp1cPUCS6joDrFSH7e2MajKWxCorC7ZuffHF4LFwIUCEgw6KcdxxIZ5+OkpOzn5fRpJUixhgpTps\nX2ZUqyK0fvklvPxyEFhffjn4vmVLOPNMaNEiwvvvF7J6dZylS0v47W+rr89WkpQeDLBSHVYdmwxA\nsNTV++9vm2X9+9+D3bG+9z34xS8gHA76WevXh7y8GKtXV1+frSQp/RhgpTouWaE1Hg96WF97DV59\nFVasgMaN4bTT4KGH4Kyzgp2xvqk6+mwlSenNACupSmzcGKzN+uqrQWh9993g+DHHwAUXQJ8+wVJX\nBx64+/NU16ywJCl9GWAl7ZOtbQFbZ1hnzQpCbHZ2MMs6fDj07h2s1bq3DK2SpN0xwEraI4kELF0K\nM2fCjBlBcC0uDmZUTzkFbr89CK6dO7vMlSQpuQywUjWpjl+LV+U1Egn46KMgsP71r8Hzp58G4fT4\n4+GSS+D00yEU+va2AEmSqpIBVqoG1bEF6/5eI5GAJUuCoLo1tK5YEex01bUrXHgh9OoF+fnQvHmV\nli5J0l4xwErVoDq2YN3ba5SVwaJF8Le/Bf2rM2fCZ58FgbVbN/jpT4ObrvLzoVmzKi9XkqR9ZoCV\nqkF1LA31bdcoLYW5c4PAGosFu1+tXRusvdqtG1x8cTDDGgpBZmaVlydJUpUxwErVoDqWhvrmNW66\nKcqTTwaB9W9/C1YMSCSgRQvo2RNuvDF4/v734eCDq7wcSZKSxgArVZNkLg21Zg288w506BClpCTY\n7WrSpOC1jh2DoHrttcFzXp6rBEiS0psBVkoz//lPsEnA229veyxZErzWtGnQDnDFFUErQI8ewYyr\nJEm1iQFWqsE2bQp+9b99WP3HP6C8PFi66vjj4cwz4YQTgkdubnATliRJtZkBVqohVq+G996DBQuC\nx3vvBWF1yxZo0CDYIKBnT7jmmiCsHnMMNGyY6qolSap+BlipmpWXBxsEbA2pW58//TR4/aCDgrDa\nowf87GdBS0CXLsFxSZJkgJWSJpEI1lVdtCiYSV20CD74ABYuDPpYAQ4/HL73PRg0KHg+7jjo0CFY\n2kqSJO2cAVY1XnVswbo/EglYuXJbSN0aWP/xj2B1AAj6VY8+Ovi1/znnBEH1uOPgsMNSW7skSemo\n1gfYmh5+tHvVsQXrntq4MfjV/4cfQlFR8NgaVL/6Khhz4IHBslWdOkE4HATWTp2gXbt9m1X1768k\nSTuq1QG2JoUf7Zvq2IJ1e1u2wMcfVw6pW7/++ONgthWC5apyc4Ow2rdvEFSPOQZycqru1//+/ZUk\naedqdYCt7vCjqpeMLVi/+gqWLoV//zt43vr497+DGdavvw7GHXAAHHVUEFQvvDDoTc3NDR6HHZb8\nzQD8+ytJ0s7V6gBbHfvPK7n2ZQvWdevgk09g2bLKAXXro6Rk29jGjYNf77drB6efvi2g5uZCmzap\nvZnKv7+SJO1crQ6w1bH/vJJv+89tw4YgnH76afC89bH991tvnIJg/dQjjwwCarducN552wJru3aQ\nlVVzt1X1768kSTtX4wPslClTuPfee1m+fDndunVjwoQJ5OXl7fH79+X/9A0NybWzP9/162HVqmDZ\nqZ09r1wZhNPVqyufKysrmClt2xZOOWXb123bBv2orVun95JU/v2TJGlHNTrAvvDCC1xxxRU8/PDD\ndO/enXHjxpGfn89HH31EZmZmUq5ZXTfO1PaQXFYGX34J8Th88cW250ceifDPfxayYUOcpUtL+POf\nIyQSUdaurfz+Ro2gVatgndRWrYJF/c8/PwimW0NqmzbBXf+SJKluqdEBduzYsQwZMoRLLrkEgIce\neogXX3yRxx9/nGuuuSYp16yOG2fSKSSXlQU3PZWUBL+aLynZ8fHll5VDajweHNt6x/5W9epBRkaM\nsrLgz/frr+M0aRLjV7/aFlS3Ph9ySM391b4kSUqtGh1g33rrLUaOHFnxfUZGBr1792bOnDlJC7DV\nceNMskNyIgGXXhrhxRcLWb06TjxeQjweYdiwYKZz7VooLWWnX8+dG6GkJEbDhiHq149SWrpjEIUg\nXDZrBlu2RPj66xgtW4b4wQ+inHBC8Gv9li13fD7kELjiihCFhdv+fMPhENdfX6U/viRJquVqbIBd\nvXo1GzduJDs7u9Lxww47jLlz5ybtuvty40wiEexvv2VLsATT1sf232//dW5uiM8/L2HNmjjNmmXR\ntm2Ip5+GTZuCxfI3bdr2+Ob369dve/znP5W/3/5RXh4DgpBcUhKnsDBGYeG2mg88MFjLNDMzeG7a\nFJYujVBSUsimTXHq1y/h6KMjDBkS5ZBD2OGRmQlXXBHMJK9bF2fz5hIaNoxw3327//OqqTcm7UtN\nNfHnkCSpLqixAbaqLFgAAwcGIXPPH1ESCXjpJcjODn6NXl5e+Xn7r3c2Q7l7USACxPjqqxCvvx7l\n9deDVzIygvVHtz4OPLDy940bw8EHB8+HHho8b//Y+tof/xhiwYISSkvjNG+exQ9+EGLcuG1htWHD\nHavKy4uxaVMQetevj1NaGuPKK3f9U+zrTHJNC3v70tLhJgOSJKVOjQ2whx56KAceeCDFxcWVjhcX\nF9OmTZtdvm/48OE0b9684vv16+G73x1Ix44DK3oqMzL27FG/fvCoV2/3X299btgwWLapYcNtj+2/\nr/x1lEaNdgyoDRtWTe/nkCF7P9O5t+0TNXmd0r352fcliLvJgCRJu1dQUEBBQUGlY2u2X+tyP9TY\nAAvQvXt3pk+fTr9+/QAoLy/n9ddf54Ybbtjle8aPH0/Xrl2rq8QabW9nBPf21/s1uR1gb2ZH9yWI\n1+TwLklSTTBw4EAGDhxY6dj8+fPp1q3bfp+7RgfY6667jvPPP5/vf//7nHDCCYwfP55NmzZx6aWX\nprq0HdTEILcv9iX01jR7Ozu6L0G8poZ3SZLqghodYMPhMI8++ij33nsvH3/8Md///veZPXs2TZs2\nTXVpldgPWbPsy+zovnxefsaSJKVGvVQX8G0GDRrEe++9x5o1a5g+ffpe7cJVXaqrHzISiZCXl0ck\nEknK+WuLaDRKOBwmNzeXcDhs0JQkqZap0TOw6aI6+iGd5d07/tlIklR71fgZ2HRQHTN+3vUuSZIU\ncAa2iiR7xs+73iVJkgLOwKYJ+zolSZICzsCmEUOrJEmSM7CSJElKMwZYSZIkpRUDrCRJktKKAVaS\nJElpxQArSZKktGKAlSRJUloxwEqSJCmtGGAlSZKUVgywkiRJSisGWEmSJKUVA6wkSZLSigFWkiRJ\nacUAK0mSpLRigJUkSVJaMcBKkiQprRhgJUmSlFYMsJIkSUorBlhJkiSlFQOsJEmS0ooBVpIkSWnF\nACtJkqS0YoCVJElSWjHASpIkKa0YYCVJkpRWDLCSJElKKwZYSZIkpRUDrCRJktKKAVaSJElpxQAr\nSZKktGKAlSRJUloxwEqSJCmtGGAlSZKUVgywkiRJSisGWEmSJKUVA6wkSZLSigFWkiRJacUAK0mS\npLRigJUkSVJaMcBKkiQprRhgJUmSlFYMsJIkSUorBlhJkiSlFQOsJEmS0ooBVpIkSWnFACtJkqS0\nYoCVJElSWjHASpIkKa0YYCVJkpRWDLBKWwUFBakuQdXIz7tu8fOuW/y8tbeSEmDvuOMOevbsSePG\njTnkkEN2Omb16tWcf/75HHbYYeTm5nLbbbftMGbp0qWcccYZtGjRgs6dO/Pwww8no1ylKf/Bq1v8\nvOsWP++6xc9be6tBMk769ddfc+GFF9KzZ08mTpy40zF9+vTh0EMPZfr06axcuZLBgwdTr149brrp\nJgA2btzIySefzA9/+ENisRgLFy4kEonQpEkTLrroomSULUmSpDSQlAB76623AvD444/v9PWZM2ey\nYMECPvvsM7KysujSpQu33XYbt9xyCzfccAMNGjTgqaeeYsOGDUSjURo0aEDHjh1ZsGABY8eONcBK\nkiTVYSnpgZ0zZw5dunQhKyur4tjpp5/O559/ztKlSyvGnHrqqTRo0KDSmAULFrB58+Zqr1mSJEk1\nQ1JmYL/NihUrOOywwyody87OrnitQ4cOrFixgjZt2ux0zMqVK8nJyan02saNGwH45z//maSqVdOs\nWbOG+fPnp7oMVRM/77rFz7tu8fOuO7bmtA0bNuzXefY4wI4ePZp77rlnt2P+9a9/kZubu18FbZWR\nkbFX47fO3A4aNKhKrq/00K1bt1SXoGrk5123+HnXLX7edcuyZcsIhUL7/P49DrDXX389kUhkt2Pa\ntWu3R+dq06YNs2fPrnSsuLgYgNatW1c8r1q1aqdjvvOd7+xwzj59+jBlyhRycnI46KCD9qgOSZIk\nVZ+NGzeydOlS+vTps1/n2eMA27JlS1q2bLlfF9uqR48e3HTTTcTj8Yo+2Ndee43s7OyKENyjRw9G\njhzJli1bKvpgX3vtNY4//ngaNWq00/q8uUuSJKlm69mz536fIyk3cS1fvpwFCxawfPlyysrKeO+9\n91iwYAH/+c9/ADj11FM5/vjjufjii1m4cCGvvPIKY8aMYdiwYRVh9Sc/+QmNGzfm8ssv5x//+AdP\nP/00999/P9ddd10ySpYkSVKayEgkEomqPumll17K5MmTgwtkZJBIJMjIyGDGjBmccsopAHz55Zf8\n/Oc/Z+bMmTRr1oxLLrmEX//615XOs2zZMn7xi18wd+5cWrduzbBhwxgyZEhVlytJkqQ0kpQAK0mS\nJCVLStaBrWpTpkzhuOOO45BDDqF3794sXrw41SUpSX73u99xwgknkJmZSXZ2NgMGDKCoqCjVZaka\n3HXXXdSrV48RI0akuhQlyZo1a7jyyis56qijaNy4MV26dGHevHmpLktJsGXLFu677z5OP/10WrZs\nyY9//GP+8Ic/pLosVZFZs2bRt29fWrduTb169Zg6deoOY8aOHUunTp1o2bIl/fv33+HG/W+T9gH2\nhRde4IorrmDkyJH8/e9/p3379uTn51NaWprq0pQEs2bNYtiwYcydO5fJkydTUlLC6aefzvr161Nd\nmpLo7bff/r/27i+kqTYAA/iz0cT+l4NGNGvRH0JkoGlqU1g1vJKUUrwJmYE3c2hLsC6ym1QITIYi\natiF7iKDCL2JDNvQEnQRTBAVJBVDUKQbUWkk5+0iPHzix/cp7Phy9PnBLs4fdp6rneecvbwvXr58\nCbvdvuMp9kgfVldXkZ6eDkVR0N3djYmJCTQ2NuLkyZOyo5EG6uvr8eTJE5SUlODLly/Iz89HRUUF\nmpubZUejGFhbW0NKSgpaWloAbJ0atbm5GbW1tXj+/DlCoRAAwOl0QlGUbV9D90MInE4n7HY7mpqa\nAABCCCQmJqK6uhoVFRWS05HWxsfHkZycjMHBQWRnZ8uOQxpYWVnB1atX0draimfPniElJQWNjY2y\nY1GM1dXV4ePHjxgYGJAdhXZBUVERhBB4+/atuu/GjRu4fPky2tvbJSajWDMajejp6cHt27cB/O1p\nFy5cgNfrxcOHDwEAy8vLsFgsePPmjXre/36vZol3STgchsvlUrcNBgNcLheGh4clpqLdsvG0lpCQ\nIDkJaaW8vBx5eXm4efMmdP68Tf+hp6cH2dnZcLvdOHv2LFJTU9HR0SE7FmmksLAQwWAQw8PDiEaj\nCAaDCIfDuHv3ruxopLHFxUXMzs5u6m7Hjh1DRkbGjrqblKVkY+Xnz5/49euXusTshlOnTmFkZERS\nKjynQxsAAANWSURBVNotiqKgsrISubm5SEpKkh2HNNDd3Y1IJIKvX78C2PkKfaQf379/h9/vR2Fh\nIQKBAD58+ACv14u4uDiUlJTIjkcxVlxcjGg0iuvXr8No/Psu7d27d8jNzZWcjLQ2Pz8PAFu6m8Vi\nUY9th64LLO1v5eXlmJmZwdDQkOwopIEfP36gsrIS/f396uIlQgi+hd2j1tfXYTab0dnZCeDvfOHj\n4+Noa2tjgd2Durq68PjxY7x48QIOhwOhUAhlZWVQFAUFBQWy45EEG1OubpeuhxCYzWbEx8erS8xu\nWFxchNVqlZSKdoPX68X79+8RCoVw+vRp2XFIA9++fcPS0hJSU1NhMplgMpkwODiIpqYmxMXFscju\nMVarFTk5OZv25eTkYG5uTlIi0lJDQwPcbjd8Ph+uXbuGR48e4c6dO/D7/bKjkcbOnDkDAP/a3TaO\nbYeuCywAZGRkoL+/X91WFAWfPn1CZmamxFSkJa/Xi97eXgSDQZw7d052HNKIy+XC2NgYRkdH1dX8\n0tLScO/ePUQiEQ4n2GMcDseWf1OGhoZgs9nkBCJNLSwswGQybdp34MCBHU+lRPpjsVhw/vz5Td1t\neXkZ4XB4R91N90MIqqqqUFRUhLS0NKSnp8Pv9yMajcLtdsuORhrweDx4/fo1ent7cfjwYfXH7sSJ\nE4iPj5ecjmLpyJEjW8Y2Hzp0CAkJCRzzvAc9ePAAgUAAHo8H9+/fR19fH/r6+vDq1SvZ0UgDBQUF\naG1thdVqRVZWFgYGBtDV1QWPxyM7GsXA6uoqpqam1O3p6WlEIhGYzWYkJibC5/Ph6dOnuHTpEmw2\nG2pqamCz2ZCXl7f9i4g9IBAICLvdLo4fPy5u3bolJicnZUcijRgMBmE0GoXBYNj06ezslB2NdoHT\n6RQ+n092DNLI58+fhcPhEEePHhVJSUmio6NDdiTSyMrKiqiqqhI2m00cPHhQXLx4UdTU1Ijfv3/L\njkYxEAqF1PvzP+/ZpaWl6jkNDQ3iypUrwmw2i/z8fLGwsLCja+h+HlgiIiIi2l90PwaWiIiIiPYX\nFlgiIiIi0hUWWCIiIiLSFRZYIiIiItIVFlgiIiIi0hUWWCIiIiLSFRZYIiIiItIVFlgiIiIi0hUW\nWCIiIiLSlT8hewy+zrEoegAAAABJRU5ErkJggg==\n"
}
],
"prompt_number": 24
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"noisy_y = np.log(noisy_z)\n",
"pl.clf()\n",
"pl.plot(x,y)\n",
"pl.plot(x,noisy_y,'k.')\n",
"pl.ylabel(\"log(z)\")\n",
"pl.xlabel(\"log(t)\")"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 25,
"text": [
"<matplotlib.text.Text at 0x105a9aed0>"
]
},
{
"output_type": "display_data",
"png": "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\nEp3Xzz77DICRI0cyfPhw2rVrxz333EO3bt0oKCigcePGP3jNxo0bAViwYEGF1qqSWb16NXl5eWGX\nod3w2iQ3r0/y8tokL69N8tqW0zZs2FDyFyVCdN111yVisdhPPvLz8xPPP/98IhaLJW6++ebtry0s\nLExUq1YtMW7cuN2+94QJExKADx8+fPjw4cOHjyR/TJgwocT5MdTO6zXXXEM8Hv/Jcw4//HBWrVoF\nwEknnbT9eGpqKm3atGHJkiW7fV2fPn2YMGECzZs3p3bt2mVXtCRJksrExo0b+eKLL+jTp0+JXxNq\neE1NTSU1NXWP5x199NE0bNiQ6dOn06tXLwBWrlzJwoULOeyww370vV2NQJIkKbl16dKlVOdHYua1\nXr16XHnllTz88MM0adKEY445hrvuuovU1FTOPffcsMuTJElSBYlEeAX405/+RI0aNbj33ntZvnw5\nJ5xwApMnT6Zhw4ZhlyZJkqQKEkskEomwi5AkSZJKIhLrvO6LM888k8MOO4zatWvTpEkTLrroIr79\n9tuwyxKwePFiLrnkEo444gjq1KlDixYtuO2229iyZUvYpQm4/fbb6dKlC3Xq1NntcnSqWBMmTODY\nY4+lcePG9OzZk/z8/LBLqvKmTZvGGWecwSGHHEJKSgoTJ04MuyTt4M9//jOdO3emQYMGHHTQQfTr\n14+CgoKwyxLw4IMPcuyxx9KwYUMaNmxIly5deP3110v8+kofXnv06MFzzz3HwoULefDBB8nLy+Os\ns84KuywB+fn5JBIJHn74YebOnctvf/tb/vrXv3LjjTeGXZqALVu2cP755zNkyJCwS6nyXn75ZS69\n9FJGjRrFP//5T4488ki6du3KmjVrwi6tSlu/fj3HHXccDzzwAACxWCzkirSjadOmMWzYMGbNmsWT\nTz7JqlWr6N27N+vXrw+7tCqvWbNm/OUvfyEvL48333yTdu3aceaZZ5Z486kqNzbw2GOPMWTIENav\nX+83miR07bXX8vzzz2/fmELhe/zxxxk5cuT2JetU8bp160b79u25//77AUgkEjRr1oxrr72Wq666\nKuTqBJCSksKLL77ImWeeGXYp+hGffPIJxxxzDNOmTaNr165hl6MdbNiwgf33359HH32U/v377/H8\nSt953VF+fj5PPfUUffv2NbgmqeLiYg444ICwy5CSyuzZs+nZs+f257FYjJ49ezJz5swQq5Kipbi4\n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\n"
}
],
"prompt_number": 25
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note how different this looks from the \"noisy line\" we plotted earlier. Power laws are much more sensitive to noise! In fact, there are some data points that don't even show up on this plot because you can't take the log of a negative number. Any points where the random noise was negative enough that the curve dropped below zero ended up being \"NAN\", or \"Not a Number\". Luckily, our plotter knows to ignore those numbers, but `polyfit` doesnt."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print noisy_y"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[ 2.64567168 1.77226366 nan 1.49412348 nan 1.28855427\n",
" 0.58257979 -0.50719229 1.84461177 2.72918637 nan -1.02747374\n",
" -0.65048639 3.4827123 2.60910913 3.48086587 3.84495668 3.90751514\n",
" 4.10072678 3.76322421 4.06432005 4.23511474 4.26996586 4.25153639\n",
" 4.4608377 4.5945862 4.66004888 4.8084364 4.81659305 4.97216304\n",
" 5.05915226 5.02661678 5.05308181 5.26753675 5.23242563 5.36407125\n",
" 5.41827503 5.486903 5.50263105 5.59005234 5.6588601 5.7546482\n",
" 5.77382726 5.82299095 5.92653466 5.93264584 5.99879722 6.07711596\n",
" 6.13466015 6.12248799]\n"
]
}
],
"prompt_number": 26
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# try to polyfit a line\n",
"pars = np.polyfit(x,noisy_y,1)\n",
"print pars"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[ nan nan]\n"
]
}
],
"prompt_number": 27
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In order to get around this problem, we need to *mask the data*. That means we have to tell the code to ignore all the data points where `noisy_y` is `nan`.\n",
"\n",
"My favorite way to do this is to take advantage of a curious fact: $1=1$, but `nan`!=`nan`"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print 1 == 1\n",
"print np.nan == np.nan"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"True\n",
"False\n"
]
}
],
"prompt_number": 28
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So if we find all the places were `noisy_y` != `noisy_y`, we can get rid of them. Or we can just use the places where `noisy_y` equals itself."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"OK = noisy_y == noisy_y\n",
"print OK"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[ True True False True False True True True True True False True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True True True True True True True True True True True\n",
" True True]\n"
]
}
],
"prompt_number": 29
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This `OK` array is a \"boolean mask\". We can use it as an \"index array\", which is pretty neat. "
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print \"There are %i OK values\" % (OK.sum())\n",
"masked_noisy_y = noisy_y[OK]\n",
"masked_x = x[OK]\n",
"print \"masked_noisy_y has length\",len(masked_noisy_y)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"There are 47 OK values\n",
"masked_noisy_y has length 47\n"
]
}
],
"prompt_number": 30
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# now polyfit again\n",
"pars = np.polyfit(masked_x,masked_noisy_y,1)\n",
"print pars"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[ 1.50239281 1.9907672 ]\n"
]
}
],
"prompt_number": 31
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# cool, it worked. But the fit looks a little weird!\n",
"fitted_y = polyval(pars,x)\n",
"pl.plot(x, fitted_y, 'r--')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 32,
"text": [
"[<matplotlib.lines.Line2D at 0x10368e1d0>]"
]
},
{
"output_type": "display_data",
"png": "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\nCnutm6QY8J8nSakrLc3gWooWLw7jw3/7W+iyTp0KffsaXCWltmJ1XuvXr7/mMIJkMglAWloaaWlp\n1K1bl2bNmtG7d29OOOGEkq9UUvnxyy/w5JPw2GPhmKZttom6ogpn3LjQbZ0zB4YMMbRKio9i/VN1\n0003UbVqVVq3bs35559P//79ad26NdWqVeO8886jadOm9OjRg/vvv7+06pUUZ59+Cv37Q6NG0LNn\n2NX6009RV1WhLFkC550XTsdt3Dh0W/v1M7hKio9idV7fe+89rr32Ws4555w1t1177bUMHTqUCRMm\n8Mgjj7DtttsyZMgQevfuXeLFSoqhZcvg6afDlUDjx0N6eti7dNZZ0Lx51NVVKG+/HY5z/fFH+M9/\nDK2S4qlY/2y9+OKLdO7c+Xe3d+rUiZdffhmA7t2788UXX5RMdZLi7x//gFNPhapV4fHH4bvv4JZb\nDK5laOlSGDAADj00rMn96CM4/3yDq6R4KtY/XfXr1+eFF1743e05OTlst912AFSrVo3atWuXTHWS\n4u9f/4IZM8Il7SedtPHjXFXixo+HvfcOje/bbw8rsHbbLeqqJGnLFWts4JprrqFHjx4MHz6cjh07\nkkwmGTduHB9//DEjRowA4LXXXuPQQw8tjVolxdH++0ddQYW0dClceSUMHgx//Svk5ITTsiQp7ooV\nXrOysth5550ZMmQIb775JmlpabRq1Yq7776bAw88EICBAweWSqGSUsyKFfD882Ec4Jhjoq5Ga5kw\nIcy2fv013HZbGBmoXDnqqiSpZBT7qJqMjAwyMjJKoxZJcfDll/DAA5CdHTYF9OxpeE0Rv/wCV18d\nxgP22y+8tmjVassfL5FIkJubS0ZGBtnZ2SVXqCRthWKH11WrVvH8888zffp0APbYYw+6du1KZV/W\nS+XXypXheNb774dXX4W6deG008LWgL32iro6ARMnhtcRs2bBzTfDRRdtXbc1kUiQk5NDfn4+BQUF\nJBIJA6yklFCs8Pr999/TsWNHPv/8c5o0aQLAt99+y2677cabb75Jo0aNSqVISRGaNg06d4bZs8Pw\n5EMPwYknQq1aUVcmwiaya66BQYOgfXuYMgX22GPrHzc3N5f8/HwA8vPzyc3N3foHlaQSUKxtA+ed\ndx7NmjXj008/5euvv+brr7/mk08+Ydddd+W8884rrRolRWm33aB797Bf6d13Q3vP4JoS3nsP2rUL\n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\nIiLV+AsHwBTZNw7+5AAAAABJRU5ErkJggg==\n"
}
],
"prompt_number": 32
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The noise seems to have affected our fit. "
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Convert bag to linear-space to see what it \"really\" looks like\n",
"fitted_z = np.exp(fitted_y)\n",
"pl.clf()\n",
"pl.plot(t,z)\n",
"pl.plot(t,noisy_z,'k.')\n",
"pl.plot(t,fitted_z,'r--')\n",
"pl.xlabel('t')\n",
"pl.ylabel('z')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 33,
"text": [
"<matplotlib.text.Text at 0x10761fb50>"
]
},
{
"output_type": "display_data",
"png": "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\nKjo6Wm3atJHdbteLL76oX3/91eqy0Aw++ugj2Ww2paamWl0K3KS0tFQTJ05U9+7dFRgYqKioKB08\neNDqsuAGVVVVWrp0qRISEhQaGqrnnntOn332mdVloYnk5ubq+eefV6dOnWSz2bR169a79klPT1fP\nnj0VGhqqkSNH3jXRwf0YHX6/+eYbvfHGG5o1a5Z++ukndevWTYMHD1ZZWZnVpcENcnNzNW3aNO3b\nt09ZWVkqKSlRQkKCrl+/bnVpcKMDBw7o888/V1RUVKOmQoTnu3btmqKjo1VdXa1Nmzbp2LFjWrp0\nqYKDg60uDW7wwQcfaMGCBRo3bpz27t2rESNGaPr06Vq+fLnVpaEJXL9+Xb1799ann34q6e4pbJcv\nX673339fH3/8sXJyciRJcXFxqq6urvdnGD3sIS4uTlFRUVq2bJkkyeFwqHPnzpozZ46mT59ucXVw\nt6NHj+qJJ55Qbm6uBg8ebHU5cIOrV6+qb9++WrFihRYtWqTevXtr6dKlVpeFJrZ48WL98MMP2rNn\nj9WloBmMHj1aDodDX375pWvbP/7xD0VGRmrVqlUWVoamZrPZtGXLFr3wwguSnDmtW7dumjp1qmbN\nmiVJKisrk91u1+bNm1373fe4bqv4AbB//37Fx8e71n18fBQfH6/8/HwLq0JzqfkvsX379hZXAneZ\nMmWKEhMTNWzYMBn8f77X27JliwYPHqzk5GR16dJFffr00erVq60uC24yatQo7dq1S/n5+aqoqNCu\nXbu0f/9+vfzyy1aXBjcrKipSYWFhrezWpk0bDRgwoEHZ7YG6vXFTunTpksrLy123Pq4RFhamffv2\nWVQVmkt1dbVmzJihhIQE9ezZ0+py4AabNm1SQUGBDhw4IKlxd3/Eg+HkyZPKyMjQqFGjtH79em3b\ntk1Tp06Vv7+/xo0bZ3V5aGJjxoxRRUWFBg0aJJvN2Yf31VdfKSEhweLK4G5nz56VpLuym91ud71W\nH8aGX5htypQpOnXqlPLy8qwuBW5w5swZzZgxQ9nZ2a6b2zgcDnp/vVRVVZVCQkK0bt06Sc454Y8e\nPaqVK1cSfr1QVlaW5s2bp/T0dMXGxionJ0cTJ05UdXW1Ro4caXV5sEDN1Lj1Zeywh5CQEAUEBLhu\nfVyjqKhI4eHhFlWF5jB16lR9//33ysnJUceOHa0uB25w8OBBFRcXq0+fPvLz85Ofn59yc3O1bNky\n+fv7E4K9THh4uIYMGVJr25AhQ3T69GmLKoI7LVmyRMnJyUpNTVX//v01d+5cvfTSS8rIyLC6NLhZ\np06dJKnO7FbzWn0YG34lacCAAcrOznatV1dXa+fOnYqJibGwKrjT1KlTtXXrVu3atUuPPPKI1eXA\nTeLj4/Xzzz/r8OHDrjtF9uvXT0lJSSooKGAIhJeJjY2961ucvLw8RUREWFMQ3OrChQvy8/Ortc3X\n17fB013hwWO329W1a9da2a2srEz79+9vUHYzethDWlqaRo8erX79+ik6OloZGRmqqKhQcnKy1aXB\nDSZPnqyNGzdq69ateuihh1y/KNu1a6eAgACLq0NTCgoKumssd2BgoNq3b88Yby80c+ZMrV+/XpMn\nT1ZKSoq2b9+u7du3a82aNVaXBjcYOXKkVqxYofDwcA0cOFB79uxRVlaWJk+ebHVpaALXrl3Tb7/9\n5lr//fffVVBQoJCQEHXu3Fmpqal6++231aNHD0VERGjhwoWKiIhQYmJi/T/EYbj169c7oqKiHG3b\ntnU8/fTTjuPHj1tdEtzEx8fHYbPZHD4+PrWWdevWWV0amkFcXJwjNTXV6jLgJj/++KMjNjbW0bp1\na0fPnj0dq1evtrokuMnVq1cdaWlpjoiICEerVq0c3bt3dyxcuNBRWVlpdWloAjk5Oa6/z3f+zX79\n9ddd+yxZssTx2GOPOUJCQhwjRoxwXLhwoUGfYfQ8vwAAADCL0WN+AQAAYBbCLwAAAIxB+AUAAIAx\nCL8AAAAwBuEXAAAAxiD8AoCXiYuLU2pqqtVlAIBHIvwCAADAGMzzCwBeJDk5WVlZWbW2FRYWqkuX\nLhZVBACehfALAF6krKxMzz77rHr16qX33ntPkhQaGiqbjS/6AECSfK0uAADQdNq0aSN/f38FBgYq\nLCzM6nIAwOPQFQAAAABjEH4BAABgDMIvAHgZf39/VVVVWV0GAHgkwi8AeJmIiAjl5+frl19+0cWL\nF8V1zQBwG+EXALzM7Nmz5evrq/79+8tut+vMmTNWlwQAHoOpzgAAAGAMen4BAABgDMIvAAAAjEH4\nBQAAgDEIvwAAADAG4RcAAADGIPwCAADAGIRfAAAAGIPwCwAAAGMQfgEAAGCM/weCdY+t7HFlygAA\nAABJRU5ErkJggg==\n"
}
],
"prompt_number": 33
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"That's pretty bad. A \"least-squares\" approach, as with `curve_fit`, is probably going to be the better choice. However, in the absence of noise (i.e., on your homework), this approach *should* work"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def powerlaw(x,a,b):\n",
" return a*(x**b)\n",
"pars,covar = curve_fit(powerlaw,t,noisy_z)\n",
"pl.clf()\n",
"pl.plot(t,z)\n",
"pl.plot(t,noisy_z,'k.')\n",
"pl.plot(t,powerlaw(t,*pars),'r--')\n",
"pl.xlabel('t')\n",
"pl.ylabel('z')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 34,
"text": [
"<matplotlib.text.Text at 0x107451e10>"
]
},
{
"output_type": "display_data",
"png": "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\n"
}
],
"prompt_number": 34
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Tricks with Arrays\n",
"==================\n",
"\n",
"We need to cover a few syntactic things comparing IDL and python.\n",
"\n",
"In IDL, if you wanted the maximum value in an array, you would do: \n",
"`maxval = max(array, location_of_max)`\n",
"\n",
"\n",
"In python, it's more straightforward: \n",
"`location_of_max = array.argmax()` \n",
"or \n",
"`location_of_max = np.argmax(array)` \n",
"\n",
"Now, say we want to determine the location of the maximum of a number of different functions. The functions we'll use are: \n",
"`sin(x)` \n",
"`sin`$^2$`(x)` \n",
"`sin`$^3$`(x)` \n",
"`sin(x)cos(x)` \n",
"\n",
"We'll define these functions, then loop over them. "
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# sin(x) is already defined\n",
"def sin2x(x):\n",
" \"\"\" sin^2 of x \"\"\"\n",
" return np.sin(x)**2\n",
"def sin3x(x):\n",
" \"\"\" sin^3 of x \"\"\"\n",
" return np.sin(x)**3\n",
"def sincos(x):\n",
" \"\"\" sin(x)*cos(x) \"\"\"\n",
" return np.sin(x)*np.cos(x)\n",
"list_of_functions = [np.sin, sin2x, sin3x, sincos]"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 35
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# we want 0-2pi for these functions\n",
"t = np.linspace(0,2*np.pi)\n",
"# this is the cool part: we can make a variable function\n",
"for fun in list_of_functions:\n",
" # the functions know their own names (in a \"secret hidden variable\" called __name__)\n",
" print \"The maximum of \",fun.__name__,\" is \", fun(t).max()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The maximum of sin is 0.999486216201\n",
"The maximum of sin2x is 0.998972696375\n",
"The maximum of sin3x is 0.998459440388\n",
"The maximum of sincos is 0.4997431081\n"
]
}
],
"prompt_number": 36
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# OK, but we wanted the location of the maximum....\n",
"for fun in list_of_functions:\n",
" print \"The location of the maximum of \",fun.__name__,\" is \", fun(t).argmax()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The location of the maximum of sin is 12\n",
"The location of the maximum of sin2x is 12\n",
"The location of the maximum of sin3x is 12\n",
"The location of the maximum of sincos is 6\n"
]
}
],
"prompt_number": 37
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# well, that's not QUITE what we want, but it's close\n",
"# We want to know the value of t, not the index!\n",
"for fun in list_of_functions:\n",
" print \"The location of the maximum of \",fun.__name__,\" is \", t[fun(t).argmax()]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The location of the maximum of sin is 1.5387392589\n",
"The location of the maximum of sin2x is 1.5387392589\n",
"The location of the maximum of sin3x is 1.5387392589\n",
"The location of the maximum of sincos is 0.769369629451\n"
]
}
],
"prompt_number": 38
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Finally, what if we want to store all that in an array?\n",
"# Well, here's a cool trick: you can sort of invert the for loop\n",
"# This is called a \"list comprehension\":\n",
"maxlocs = [ t[fun(t).argmax()] for fun in list_of_functions ]\n",
"print maxlocs"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[1.5387392589011231, 1.5387392589011231, 1.5387392589011231, 0.76936962945056153]\n"
]
}
],
"prompt_number": 39
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Confused? OK. Try this one:\n",
"print range(6)\n",
"print [ii**2 for ii in range(6)]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[0, 1, 2, 3, 4, 5]\n",
"[0, 1, 4, 9, 16, 25]\n"
]
}
],
"prompt_number": 40
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Recursion\n",
"=========\n",
"\n",
"The next big programming topic is called *recursion*.\n",
"\n",
"*Recursion*\n",
"-----------\n",
"The next little programming topic is called recursion.\n",
"\n",
"<img src=\"http://i.qkme.me/35tnta.jpg\">\n",
"\n",
"For better or worse, you must visit <a href=\"http://en.wikipedia.org/wiki/Recursion#Recursive_humor\">the wiki page on recursion</a>\n",
"\n",
"Recursion is when a function calls itself. But, a recursive function *must* have an \"end condition\" to avoid an infinite loop.\n",
"If you try to make an infinite loop, you will get a \"stack overflow\" (python will give you an error)."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def fail(x):\n",
" \"\"\" an infinite recursion. Will fail \"\"\"\n",
" return fail(x)\n",
"# WARNING: this will definitely fail, but it may take a long time! \n",
"# print fail(1)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 41
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Recursion is a useful mathematical tool. There are some problems that are best solved via recursion. The most commonly used example is the fibonacci sequence: \n",
"0 1 1 2 3 5 8 13 21 .... \n",
"this sequence is defined by the recursive relation \n",
"$$F_n = F_{n-1} + F_{n-2}$$ \n",
"or $$f(n) = f(n-1) + f(n-2)$$\n",
"\n",
"It has the base conditions:\n",
"$$f(0) = 0$$\n",
"$$f(1) = 1$$\n",
"\n",
"This one is pretty easy to define in code. But I'll leave it as an exercise.\n",
"\n",
"The following code shows a hierarchy of what will happen if you call `fibonacci(5)`. Don't worry about trying to understand the 'digraph' code, it's just a graph visualization tool."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%install_ext https://raw.github.com/tkf/ipython-hierarchymagic/master/hierarchymagic.py"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Installed hierarchymagic.py. To use it, type:\n",
" %load_ext hierarchymagic\n"
]
}
],
"prompt_number": 42
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%load_ext hierarchymagic"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 43
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%dot --format svg -- \n",
"digraph G { \n",
" f5 [label=\"f(5)\"];\n",
" Lf1 [label=\"f(1)\"];\n",
"LLf0 [label=\"f(0)\"];\n",
"Lf2 [label=\"f(2)\"];\n",
"Lf3 [label=\"f(3)\"];\n",
"RRf1 [label=\"f(1)\"];\n",
"RRMf1 [label=\"f(1)\"];\n",
"RRf0 [label=\"f(0)\"];\n",
"LLf1 [label=\"f(1)\"];\n",
"RMf0 [label=\"f(0)\"];\n",
"RMf1 [label=\"f(1)\"];\n",
"Rf2 [label=\"f(2)\"];\n",
"RMf2 [label=\"f(2)\"];\n",
"Rf3 [label=\"f(3)\"];\n",
"Rf4 [label=\"f(4)\"];\n",
" f5->Lf3; f5->Rf4; \n",
" Lf3->Lf2; Lf3->Lf1;\n",
" Rf4->Rf3; Rf4->Rf2;\n",
" Rf2->RRf1; Rf2->RRf0;\n",
" Lf2->LLf1; Lf2->LLf0;\n",
" Rf3->RMf2; Rf3->RMf1;\n",
" RMf2->RMf0; RMf2->RRMf1;\n",
"}"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"svg": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.28.0 (20110509.1545)\n",
" -->\n",
"<!-- Title: G Pages: 1 -->\n",
"<svg width=\"458pt\" height=\"332pt\"\n",
" viewBox=\"0.00 0.00 458.00 332.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph1\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 328)\">\n",
"<title>G</title>\n",
"<polygon fill=\"white\" stroke=\"white\" points=\"-4,5 -4,-328 455,-328 455,5 -4,5\"/>\n",
"<!-- f5 -->\n",
"<g id=\"node1\" class=\"node\"><title>f5</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"153\" cy=\"-306\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"153\" y=\"-300.4\" font-family=\"Times,serif\" font-size=\"14.00\">f(5)</text>\n",
"</g>\n",
"<!-- Lf3 -->\n",
"<g id=\"node5\" class=\"node\"><title>Lf3</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"99\" cy=\"-234\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"99\" y=\"-228.4\" font-family=\"Times,serif\" font-size=\"14.00\">f(3)</text>\n",
"</g>\n",
"<!-- f5&#45;&gt;Lf3 -->\n",
"<g id=\"edge2\" class=\"edge\"><title>f5&#45;&gt;Lf3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M141.016,-289.465C134.024,-280.402 125.064,-268.786 117.215,-258.612\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"119.83,-256.272 110.951,-250.492 114.288,-260.548 119.83,-256.272\"/>\n",
"</g>\n",
"<!-- Rf4 -->\n",
"<g id=\"node15\" class=\"node\"><title>Rf4</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"207\" cy=\"-234\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"207\" y=\"-228.4\" font-family=\"Times,serif\" font-size=\"14.00\">f(4)</text>\n",
"</g>\n",
"<!-- f5&#45;&gt;Rf4 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>f5&#45;&gt;Rf4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M164.984,-289.465C171.976,-280.402 180.936,-268.786 188.785,-258.612\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"191.712,-260.548 195.049,-250.492 186.17,-256.272 191.712,-260.548\"/>\n",
"</g>\n",
"<!-- Lf1 -->\n",
"<g id=\"node2\" class=\"node\"><title>Lf1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"27\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"27\" y=\"-156.4\" font-family=\"Times,serif\" font-size=\"14.00\">f(1)</text>\n",
"</g>\n",
"<!-- LLf0 -->\n",
"<g id=\"node3\" class=\"node\"><title>LLf0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"27\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"27\" y=\"-84.4\" font-family=\"Times,serif\" font-size=\"14.00\">f(0)</text>\n",
"</g>\n",
"<!-- Lf2 -->\n",
"<g id=\"node4\" class=\"node\"><title>Lf2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"99\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"99\" y=\"-156.4\" font-family=\"Times,serif\" font-size=\"14.00\">f(2)</text>\n",
"</g>\n",
"<!-- Lf2&#45;&gt;LLf0 -->\n",
"<g id=\"edge20\" class=\"edge\"><title>Lf2&#45;&gt;LLf0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M84.4297,-146.834C74.2501,-136.938 60.4761,-123.546 48.9694,-112.359\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"51.4055,-109.846 41.7957,-105.385 46.5259,-114.865 51.4055,-109.846\"/>\n",
"</g>\n",
"<!-- LLf1 -->\n",
"<g id=\"node9\" class=\"node\"><title>LLf1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"99\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"99\" y=\"-84.4\" font-family=\"Times,serif\" font-size=\"14.00\">f(1)</text>\n",
"</g>\n",
"<!-- Lf2&#45;&gt;LLf1 -->\n",
"<g id=\"edge18\" class=\"edge\"><title>Lf2&#45;&gt;LLf1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M99,-143.697C99,-135.983 99,-126.712 99,-118.112\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"102.5,-118.104 99,-108.104 95.5001,-118.104 102.5,-118.104\"/>\n",
"</g>\n",
"<!-- Lf3&#45;&gt;Lf1 -->\n",
"<g id=\"edge8\" class=\"edge\"><title>Lf3&#45;&gt;Lf1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M84.4297,-218.834C74.2501,-208.938 60.4761,-195.546 48.9694,-184.359\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"51.4055,-181.846 41.7957,-177.385 46.5259,-186.865 51.4055,-181.846\"/>\n",
"</g>\n",
"<!-- Lf3&#45;&gt;Lf2 -->\n",
"<g id=\"edge6\" class=\"edge\"><title>Lf3&#45;&gt;Lf2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M99,-215.697C99,-207.983 99,-198.712 99,-190.112\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"102.5,-190.104 99,-180.104 95.5001,-190.104 102.5,-190.104\"/>\n",
"</g>\n",
"<!-- RRf1 -->\n",
"<g id=\"node6\" class=\"node\"><title>RRf1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"171\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"171\" y=\"-84.4\" font-family=\"Times,serif\" font-size=\"14.00\">f(1)</text>\n",
"</g>\n",
"<!-- RRMf1 -->\n",
"<g id=\"node7\" class=\"node\"><title>RRMf1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"351\" cy=\"-18\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"351\" y=\"-12.4\" font-family=\"Times,serif\" font-size=\"14.00\">f(1)</text>\n",
"</g>\n",
"<!-- RRf0 -->\n",
"<g id=\"node8\" class=\"node\"><title>RRf0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"243\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"243\" y=\"-84.4\" font-family=\"Times,serif\" font-size=\"14.00\">f(0)</text>\n",
"</g>\n",
"<!-- RMf0 -->\n",
"<g id=\"node10\" class=\"node\"><title>RMf0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"423\" cy=\"-18\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"423\" y=\"-12.4\" font-family=\"Times,serif\" font-size=\"14.00\">f(0)</text>\n",
"</g>\n",
"<!-- RMf1 -->\n",
"<g id=\"node11\" class=\"node\"><title>RMf1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"315\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"315\" y=\"-84.4\" font-family=\"Times,serif\" font-size=\"14.00\">f(1)</text>\n",
"</g>\n",
"<!-- Rf2 -->\n",
"<g id=\"node12\" class=\"node\"><title>Rf2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"207\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"207\" y=\"-156.4\" font-family=\"Times,serif\" font-size=\"14.00\">f(2)</text>\n",
"</g>\n",
"<!-- Rf2&#45;&gt;RRf1 -->\n",
"<g id=\"edge14\" class=\"edge\"><title>Rf2&#45;&gt;RRf1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M198.65,-144.765C194.288,-136.283 188.853,-125.714 183.959,-116.197\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"186.99,-114.439 179.304,-107.147 180.765,-117.641 186.99,-114.439\"/>\n",
"</g>\n",
"<!-- Rf2&#45;&gt;RRf0 -->\n",
"<g id=\"edge16\" class=\"edge\"><title>Rf2&#45;&gt;RRf0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M215.35,-144.765C219.712,-136.283 225.147,-125.714 230.041,-116.197\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"233.235,-117.641 234.696,-107.147 227.01,-114.439 233.235,-117.641\"/>\n",
"</g>\n",
"<!-- RMf2 -->\n",
"<g id=\"node13\" class=\"node\"><title>RMf2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"387\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"387\" y=\"-84.4\" font-family=\"Times,serif\" font-size=\"14.00\">f(2)</text>\n",
"</g>\n",
"<!-- RMf2&#45;&gt;RRMf1 -->\n",
"<g id=\"edge28\" class=\"edge\"><title>RMf2&#45;&gt;RRMf1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M378.65,-72.7646C374.288,-64.2831 368.853,-53.7144 363.959,-44.1974\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"366.99,-42.4395 359.304,-35.1473 360.765,-45.6409 366.99,-42.4395\"/>\n",
"</g>\n",
"<!-- RMf2&#45;&gt;RMf0 -->\n",
"<g id=\"edge26\" class=\"edge\"><title>RMf2&#45;&gt;RMf0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M395.35,-72.7646C399.712,-64.2831 405.147,-53.7144 410.041,-44.1974\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"413.235,-45.6409 414.696,-35.1473 407.01,-42.4395 413.235,-45.6409\"/>\n",
"</g>\n",
"<!-- Rf3 -->\n",
"<g id=\"node14\" class=\"node\"><title>Rf3</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"315\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"315\" y=\"-156.4\" font-family=\"Times,serif\" font-size=\"14.00\">f(3)</text>\n",
"</g>\n",
"<!-- Rf3&#45;&gt;RMf1 -->\n",
"<g id=\"edge24\" class=\"edge\"><title>Rf3&#45;&gt;RMf1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M315,-143.697C315,-135.983 315,-126.712 315,-118.112\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"318.5,-118.104 315,-108.104 311.5,-118.104 318.5,-118.104\"/>\n",
"</g>\n",
"<!-- Rf3&#45;&gt;RMf2 -->\n",
"<g id=\"edge22\" class=\"edge\"><title>Rf3&#45;&gt;RMf2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M329.57,-146.834C339.75,-136.938 353.524,-123.546 365.031,-112.359\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"367.474,-114.865 372.204,-105.385 362.595,-109.846 367.474,-114.865\"/>\n",
"</g>\n",
"<!-- Rf4&#45;&gt;Rf2 -->\n",
"<g id=\"edge12\" class=\"edge\"><title>Rf4&#45;&gt;Rf2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M207,-215.697C207,-207.983 207,-198.712 207,-190.112\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"210.5,-190.104 207,-180.104 203.5,-190.104 210.5,-190.104\"/>\n",
"</g>\n",
"<!-- Rf4&#45;&gt;Rf3 -->\n",
"<g id=\"edge10\" class=\"edge\"><title>Rf4&#45;&gt;Rf3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M225.812,-220.807C243.002,-209.665 268.618,-193.062 287.993,-180.504\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"289.916,-183.429 296.403,-175.053 286.108,-177.555 289.916,-183.429\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
]
}
],
"prompt_number": 44
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# EXERCISE: Write a recursive Fibonacci function!\n",
"def fibonacci(n):\n",
" return\n",
" # put your code here!"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 45
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# EXERCISE: Write a recursive factorial function\n",
"# Recall: factorial(x) = factorial(x-1) * x\n",
"# factorial(1) = 1\n",
"def factorial(x):\n",
" return"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 46
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# This is the test for the fibonacci code. \n",
"# Run this after you've written your fibonnacci sequence code\n",
"# it will fail if your code is wrong!\n",
"for ii,ff in zip(range(9),[0,1,1,2,3,5,8,13,21]):\n",
" assert fibonacci(ii) == ff\n",
"print \"Success!\""
],
"language": "python",
"metadata": {},
"outputs": [
{
"ename": "AssertionError",
"evalue": "",
"output_type": "pyerr",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-47-02b5a0d0ea36>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;31m# it will fail if your code is wrong!\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mii\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mff\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mzip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m9\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m8\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m13\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m21\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0;32massert\u001b[0m \u001b[0mfibonacci\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mii\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mff\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;32mprint\u001b[0m \u001b[0;34m\"Success!\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mAssertionError\u001b[0m: "
]
}
],
"prompt_number": 47
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# This is the test for the factorial code. \n",
"# Run this after you've written your factorial code\n",
"# it will fail if your code is wrong!\n",
"for ii,ff in zip(range(1,9),[1,2,6,24,120,720,5040,40320]):\n",
" assert factorial(ii) == ff\n",
"print \"Success!\""
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment