{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "#Intro into IPython notebooks" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " <iframe\n", " width=\"600\"\n", " height=\"400\"\n", " src=\"https://www.youtube.com/embed/qb7FT68tcA8?color=blue&theme=light\"\n", " frameborder=\"0\"\n", " allowfullscreen\n", " ></iframe>\n", " " ], "text/plain": [ "<IPython.lib.display.YouTubeVideo at 0x111fd5310>" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo(\"qb7FT68tcA8\", width=600, height=400, theme=\"light\", color=\"blue\")" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# You can ignore this, it's just for aesthetic purposes\n", "matplotlib.rcParams['figure.figsize'] = (8,5)\n", "rcParams['savefig.dpi'] = 100" ] }, { "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", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# 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)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# y = m x + b\n", "y = 2.5 * x + 1.2" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[<matplotlib.lines.Line2D at 0x112081210>]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAApwAAAGyCAYAAABJBRR+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3XuUVOWd7/83kBMgLU6HNSiOnh9GhrsB7CakDeBBZJAM\nMAGyBBGJEI2EIKSPqCFANEEEuSgXQVRgjpAsmoyyJkAGyAARmBH019wCCK2QERciIwzQw2q1Bek6\nfzztATqCdHdV77q8X2vVgt5VVH2SSvTD3vv5PiBJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\nkiRJkiRJkiRJkiRJkiR9qRHAn4D/Ln9sAXpWeM1E4APgY2Ad8Lc1GVCSJEmprTehYDYlFMlJwBmg\nTfnzPwNOAX2AbwK/A/4M1K3xpJIkSUobJ4BhQC3gKPDwBc9dDXwCDIwglyRJklJcHeBuoIRwtvMm\noAxoW+F1G4FZNZpMkiRJSeUrlXz9N4GthMvknwADgIPAd8qf/7DC6z8EGlcnoCRJklJbZQtnEeEs\n5l8BdwHLgK6XeX0twpnPS7mu/CFJkqTkdLT8UWWVLZxngf8o//1O4FuE1euTy49dy8VnOa8Fdlzi\nva77m7/5mw8++OCDSkaQJElSDTpC6HxVLp2VLZwV1QFqA+8C/wl0B3aXP3c10BGYd4k/e90HH3zA\nb37zG1q1alXNGEoF+fn5zJrlLb2Zwu87s/h9Zxa/78yxf/9+7r333usJV6RrpHBOAVYDh4EGwD3A\nbYTxSBAWB00ADgCHgCcJjfh3l3vTVq1akZOTU6nQSk3Z2dl+1xnE7zuz+H1nFr9vVVZlCmcjYAmh\n4f43YQj8ncAfy5+fBmQBLwHZwL8R5naeiVdYSZIkpZ7KFM4HruA1T5Q/JEmSJCDcfylJkiQljIVT\nNWbQoEFRR1AN8vvOLH7fmcXvW5VVK8LPzgG2b9++3RuPJUmSktCOHTvIzc0FyOXSoy6/lGc4JUmS\nlFAWTkmSJCWUhVOSJEkJZeGUJElSQlk4JUmSlFAWTkmSJCWUhVOSJEkJZeGUJElSQlk4JUmSlFAW\nTkmSJCWUhVOSJEkJZeGUJElSQlk4JUmSlFAWTkmSJCWUhVOSJEkJZeGUJElSQlk4JUmSlFAWTkmS\nJCWUhVOSJEkJZeGUJElSQlk4JUmSlFAWTkmSJCWUhVOSJEkJZeGUJElSQlk4JUmSlFAWTkmSJCWU\nhVOSJEkJZeGUJElSQlk4JUmSlFAWTkmSJCWUhVOSJEkJZeGUJElSQlk4JUmSlFAWTkmSJCWUhVOS\nJEkJZeGUJElSQlk4JUmSlFAWTkmSJCWUhVOSJEkJZeGUJElSQlk4JUmS9Bc++wxWrYrPe30lPm8j\nSZKkdFBWBsuXw+OPQ1FRfN7TM5ySJEkiFoPVq6FDBxgwAJo0gV//Oj7vbeGUJEnKcJs2QZcu0KsX\nZGXB5s2wdi20bh2f97dwSpIkZajCQujRA7p2hdJSWLMmlM0uXeL7ORZOSZKkDLN3L/TrBx07wvvv\nh3s2CwuhZ0+oVSv+n2fhlCRJyhAHD8K990LbtrB7NyxZAnv2QP/+iSman7NwSpIkpbn334fhw6Fl\nS3jtNXj+edi/H4YMgTp1Ev/5jkWSJElKU8eOwZQpMH8+NGgAU6fCT34C9evXbA4LpyRJUpopLoYZ\nM2DWrHAGc/x4yM8PpTMKFk5JkqQ0UVICc+bA9Onw6acwejQ89hg0bBhtrsrcw/lzoBA4DXwI/DPQ\nvMJrXgbKKjxWVzulJEmSLqm0FGbPhqZN4Ze/DPdm/sd/wNNPR182oXKF8zbgOeDbwN8B/wP4V+Br\nF7wmBqwBGl/wGBSXpJIkSbrI2bOwcCE0bw4PPwy9e8OBA+EsZ+PGUac7rzKX1L9b4eehwDEgB/j3\n8mO1gDPlxyVJkpQAZWXw29+G/c4PHoSBA+FXv4IWLaJO9sWqMxYpu/zXkxcciwFdCZfci4DngSQ4\nkStJkpT6YjFYsQLat4d77gljjnbuhGXLkrdsQtULZ21gFuHM5r4Ljq8FhgDdgJ8B/4twid15n5Ik\nSVUUi8H69ZCXB337QqNGsHUrrFoVymeyq+oq9XlAa6BzheO/veD3bwG7gT8Tznr+sYqfJUmSlLG2\nbAljjTZuhG9/OxTPO+6IOlXlVKVwzgX+nrCI6IMvee27wH8BTblE4czPzyc7O/uiY4MGDWLQINca\nSZKkzLVrF0yYAP/yL2ErypUrw6KgRG1BWVBQQEFBwUXHiouL4/LelYlci7BK/XuEM5Z/voI/cwPw\nXvmf+X2F53KA7du3bycnJ6cSMSRJktJXURE88QT80z9Bs2YwcSIMGAC1I7hBcceOHeTm5gLkAjuq\n+j6ViT4PGFz++IjzY4/qlT+fBUwnjE26EbgDWAEcAP5Q1YCSJEmZ4NAhGDYM2rQJ92cuWgT79sHd\nd0dTNuOpMvF/DFwNbCRcSv/8MaD8+XPAN4GVwNvAQsKg+C7A2fjElSRJSi9Hj8JDD4VZmmvWhO0o\nDxyAH/4QvpIme0JW5j/Gl5XTUqBnNbJIkiRljBMnYOpUmDsX6tULl85HjYKsrKiTxV+a9GZJkqTU\ncPo0zJwJzzwTxh2NGRMeFdZQpxULpyRJUg345BOYNy/sb15SAiNHwtixYaZmurNwSpIkJdCZM2G/\n80mT4PhxeOCBMO7o+uujTlZzUnzNkyRJUnI6dw4WLw5bTj70EHTvHkYezZ+fWWUTLJySJElxVVYG\nr74KN98MQ4dCTg7s2QNLlkDTplGni4aFU5IkKQ5iMVi9Gjp0gLvugiZNoLAQli8PszUzmYVTkiSp\nmjZtgi5doFevMNZo0yZYuzaUT1k4JUmSqqywEHr0gK5dobQ0DG7fvBluuy3qZMnFwilJklRJe/dC\nv37QsSMcORIumxcWQs+eUKtW1OmSj4VTkiTpCh08CPfeC23bwu7dYSHQ7t3Qv79F83IsnJIkSV/i\n8GF48EFo2RJeey2MNioqgiFDoE6dqNMlPwe/S5IkXcKxYzBlSiiYDRrAtGkwYgTUrx91stRi4ZQk\nSarg1CmYMQNmzw5nMMePh/z8UDpVeRZOSZKkciUlMGcOTJ8etqQcPRoefRQaNow6WWqzcEqSpIxX\nWgovvgiTJ0NxMQwfDuPGQePGUSdLDxZOSZKUsc6ehZdfhokT4ehRuO8+ePzxsEuQ4sdV6pIkKeOU\nlcHSpdC6dVh93rkz7NsHixZZNhPBwilJkjJGLAYrVkD79jB4MLRqBbt2QUEBNG8edbr0ZeGUJElp\nLxaDdesgLw/69oVGjWDrVli5Etq1izpd+rNwSpKktLZlC3TrFvY8r10bNmwIj7y8qJNlDgunJElK\nSzt3Qq9e0KkTnDwJq1adL5+qWRZOSZKUVoqKYMAAyMkJe58vWxbKZ+/e7nceFQunJElKC4cOwbBh\n0KYNvPlmWHH+1lswcGC4lK7oOIdTkiSltKNHYdIkWLAg7Ag0a1YYdVS3btTJ9DkLpyRJSkknTsDU\nqTB3LtSrB08+CQ89BFlZUSdTRRZOSZKUUk6fhpkz4ZlnwrijRx6Bhx+G7Oyok+lSLJySJCklfPwx\nzJsXzmqWlMDIkTB2bJipqeRm4ZQkSUntzBlYuDDcp3n8ODzwAEyYANdfH3UyXSnXbEmSpKR07hws\nXgwtWoR7M7t3h7ffhvnzLZupxsIpSZKSSlkZvPIK3HwzDB0a5mnu2QNLlsBNN0WdTlVh4ZQkSUkh\nFoPVq6FDhzC4/cYbYds2WL48zNZU6rJwSpKkyG3aBF26hK0or7oKNm+GNWsgNzfqZIoHC6ckSYpM\nYSH06AFdu0JpaSiZn5dPpQ8LpyRJqnF790K/ftCxIxw5Ei6bFxZCz57ud56OLJySJKnGHDwIgwdD\n27awe3dYCLR7N/Tvb9FMZxZOSZKUcIcPh/3NW7aEjRvDaKOiIhgyBOrUiTqdEs3B75IkKWGOHYPJ\nk0PBvPpqmDYNRoyA+vWjTqaaZOGUJElxd+oUzJgBs2eHM5i/+AX89KfQoEHUyRQFC6ckSYqbkhKY\nMwemT4dPPw0l89FHoWHDqJMpShZOSZJUbaWl8MILMGUKFBfD8OEwbhw0bhx1MiUDFw1JkqQqO3sW\nFiyAZs1gzBjo3RveeSec5bRs6nMWTkmSVGllZbB0KbRuHVafd+oE+/bBokXQpEnU6ZRsLJySJOmK\nxWKwYgW0axfmabZsCTt3wrJl0KJF1OmUrCyckiTpS8VisG4d5OVB375wzTWwZQusWgXt20edTsnO\nwilJki5ryxbo1i3seV6rFqxfDxs2wK23Rp1MqcLCKUmSvtDOndCrV7g/88SJcCl961a4446okynV\nWDglSdJFiopgwADIyYEDB6CgAHbtgn/4B/c7V9VYOCVJEgDvvgtDh0KbNvDGG7BwYVh5fvfdUNvG\noGpw8LskSRnu6FGYNCnM0/z612HWrDDqqG7dqJMpXVg4JUnKUCdOwNSpMHcu1KsHEyfCqFGQlRV1\nMqUbC6ckSRnm9GmYOROeeSaMOxozJjyys6NOpnRl4ZQkKUN8/DHMmxfOapaUwMiRMHYsNGoUdTKl\nOwunJElp7syZcH/mU0/B8eNw//0wYQLccEPUyZQpKrPm7OdAIXAa+BD4Z6D5F7xuIvAB8DGwDvjb\namaUJElV8Nln8PLLYcvJUaOge/cw8uiFFyybqlmVKZy3Ac8B3wb+DvgfwL8CX7vgNT8DRgHDy1/3\nEfAHwHVukiTVkLIyeOUV+OY3YdiwME9zzx5YsgSaNo06nTJRZS6pf7fCz0OBY0AO8O9ALSAfeBJY\nVf6aHxDOhvYFfludoJIk6fJiMVizBsaPD4Pa77wTfv1r6NAh6mTKdNUZ4/r5WraT5b9+A7gWWH/B\na04DbwLutipJUgJt3AidO4etKK+6CjZtgrVrLZtKDlUtnLWBWYQzm/vKjzUu//XDCq/98ILnJElS\nHBUWQo8ecPvtUFoaznBu3gy33RZ1Mum8qhbOeUBr4O4reG0tIFbFz5EkSV9gzx7o2xc6doT334dX\nX4Vt26BnT/c7V/KpylikucDfExYRfXDB8f8s//VaLj7LeS2w41Jvlp+fT3aFSbODBg1i0KBBVYgm\nSVJ6O3gQnngCCgrgxhvDQqB77oE6daJOplRXUFBAQUHBRceKi4vj8t6V+TtQLcIq9e8BXYE/f8Hz\nR4AZwLPlx64mlM/7gH+q8PocYPv27dvJycmpXGpJkjLM4cPw5JPwj/8I114Lv/gF/PCH8NWvRp1M\n6WzHjh3k5uYC5HKZE4hfpjJnOOcBgwiF8yPO35dZDJQSLpvPAiYAB4BDhBXrR4DfVTWgJEmZ7Ngx\nmDwZ5s+HBg1g2jQYMQLq1486mXTlKlM4f0wolRsrHB8KLCn//TQgC3iJsIr934CewJnqhJQkKdOc\nOgUzZsDs2eFy+YQJkJ8fSqeUaipTOK90gdET5Q9JklRJJSUwZw5Mnw6ffgqjR8Njj0HDhlEnk6rO\nvdQlSUoCpaVhy8kpU8LZzeHDYdw4uO66qJNJ1Vedwe+SJKmazp6FBQugWTMYMwZ694YDB+C55yyb\nSh8WTkmSIlBWBkuXQuvW8OCD0KkT7NsHixZBkyZRp5Piy8IpSVINisVgxQpo1w4GD4ZWrcK+58uW\nQYsWUaeTEsPCKUlSDYjFYN06yMsLOwRdcw1s3QorV4byKaUzC6ckSQn2+uthr/MePcK2k+vXw4YN\noXxKmcDCKUlSguzcCb16QefOYeX5ypXhrOYdd0SdTKpZFk5JkuKsqAgGDICcnLDivKAglM8+fcIZ\nTinTWDglSYqTQ4dg2DBo0wbeeCOsON+3D+6+G2r7b1xlMAe/S5JUTUePwqRJYZ5mw4Ywa1YYdVS3\nbtTJpORg4ZQkqYpOnICpU2HuXKhXDyZOhFGjICsr6mRScrFwSpJUSadPw8yZ8MwzYdzRmDHhkZ0d\ndTIpOVk4JUm6Qh9/DPPmhbOaJSUwciSMHQuNGkWdTEpuFk5Jkr7EmTOwcGG4T/P4cbj/fpgwAW64\nIepkUmpwzZwkSZdw7hwsXhy2nHzooTA/s6gIXnjBsilVhoVTkqQKysrg1Vfh5pth6NAwT3PPHvj1\nr6Fp06jTSanHwilJUrlYDFavhg4d4K67oEkTKCyE5cvDbE1JVWPhlCQJ2LQJunQJW1FmZcHmzbB2\nbSifkqrHwilJymiFhdCjB3TtCqWlsGZNKJtdukSdTEofFk5JUkbauxf69YOOHeHIkXDZvLAQevZ0\nv3Mp3iyckqSMcvAg3HsvtG0Lu3fDkiXh1/79LZpSolg4JUkZ4fDhsL95y5bw2mvw/POwfz8MGQJ1\n6kSdTkpvDn6XJKW1Y8dgyhSYPx8aNIBp02DECKhfP+pkUuawcEqS0tKpUzBjBsyeHc5gjh8P+fmh\ndEqqWRZOSVJaKSmBOXNg+nT49FP46U/h0UehYcOok0mZy8IpSUoLpaXw4osweTIUF8Pw4TBuHDRu\nHHUySS4akiSltLNnYeFCaNYMHn4YeveGd94JZzktm1JysHBKklJSWRksXQqtW8OPfgSdOsG+fbBo\nUdiSUlLysHBKklJKLAYrVkD79jB4MLRqBbt2wbJl0KJF1OkkfRELpyQpJcRisG4d5OVB377QqBFs\n3QorV0K7dlGnk3Q5Fk5JUtLbsgW6dQt7nteuDRs2hEdeXtTJJF0JC6ckKWnt2hUWAXXqBCdPhrOZ\nn5dPSanDwilJSjpFRTBgANxyS1hxvmwZ7NwJffq437mUiiyckqSkcegQDBsGbdrAm2+GFef79sHA\ngeFSuqTU5OB3SVLkjh6Fp56Cl14KOwLNmgUPPgh160adTFI8WDglSZE5cQKmToW5c6FePZg4EUaN\ngqysqJNJiicLpySpxp0+DTNnwjPPhHFHjzwSdgnKzo46maREsHBKkmrMJ5/AvHnw9NNQUgIjR8LY\nsWGmpqT0ZeGUJCXcmTNhv/NJk+D4cXjgAZgwAa6/PupkkmqCa/4kSQlz7hwsXhy2nHzoIejeHd5+\nG+bPt2xKmcTCKUmKu7IyeOUVuPlmGDoUcnJgzx5YsgRuuinqdJJqmoVTkhQ3sRisXg0dOoTB7Tfe\nCNu2wfLlYbampMxk4ZQkxcWmTdClC/TqBVddBZs3w5o1kJsbdTJJUbNwSpKqpbAQevSArl2htBTW\nrj1fPiUJLJySpCrauxf69YOOHeHIkXDZvLAQ7rzT/c4lXczCKUmqlIMHYfBgaNsWdu8OC4F274b+\n/S2akr6YhVOSdEUOHw77m7dsCRs3htFGRUUwZAjUqRN1OknJzMHvkqTLOnYMpkwJBbNBg7D3+U9+\nAvXrR51MUqqwcEqSvtCpUzBjBsyeHc5gjh8P+fmhdEpSZVg4JUkXKSmBOXNg+vSwJeXo0fDoo9Cw\nYdTJJKUqC6ckCQgjjV58ESZPhuJiGD4cxo2Dxo2jTiYp1Vk4JSnDnT0LL78MEyfC0aNw333w+OPQ\npEnUySSlC1epS1KGKiuDpUuhdeuw+rxzZ9i3DxYtsmxKii8LpyRlmFgMVqyAdu3CPM1WrWDXLigo\ngObNo04nKR1VtnDeBqwCjgBlwPcqPP9y+fELH6urF1GSFA+xGKxbB3l50LcvXHstbN0KK1eG8ilJ\niVLZwvk1YCcwsvznWIXnY8AaoPEFj0HVCShJqr7XX4fbbw97nteuDRs2wPr1oXxKUqJVdtHQ2vLH\npdQCzgDHqpxIkhQ3O3fChAmwenXYinLVKujVyy0oJdWseN/DGQO6Ah8CRcDzgJPbJKmGFRXBgAGQ\nkxP2Pl+2LJTP3r0tm5JqXrwL51pgCNAN+BnwvwiX2F2cJEk14N13YehQaNMG3nwzrDh/6y0YODBc\nSpekKMR7DudvL/j9W8Bu4M+Es55/jPNnSZLKHT0KkybBggVhR6DZs+FHP4K6daNOJkmJH/z+LvBf\nQFMuUTjz8/PJzs6+6NigQYMYNMi1RpL0ZU6cgKlTYe5cqFcPnnwSHnoIsrKiTiYp1RQUFFBQUHDR\nseLi4ri8d3Xu5CkD+gIrL/OaG4D3COOTfl/huRxg+/bt28nJyalGDEnKPKdPw8yZ8MwzYdzR//7f\nMGYM/NVfRZ1MUjrZsWMHubm5ALnAjqq+T2XPcGYBzS74+SagPXACOAn8EniVsGioKTANOAD8oaoB\nJUnnffwxzJsXzmqWlMDIkTB2LDRqFHUySbq0yhbOb3H+0ngMeLb89y8DPwG+CfwAyAY+IBTNXwBn\nqxtUkjLZmTOwcGG4T/P4cXjggTDu6Prro04mSV+usoVzI5dfcd6z6lEkSRV99hn85jfwq1/Be+/B\nvffCE09A06ZRJ5OkK5foRUOSpCooK4Ply+Hxx8NMzf794fe/D+OOJCnVOJVNkpJILBZ2BerQIQxu\nb9IECgtD+bRsSkpVFk5JShKbNkHnzmHryays8PPataF8SlIqs3BKUsQKC6FHD+jaFUpLYc0a2LwZ\nbrst6mSSFB8WTkmKyN690K8fdOwI778Pr74K27ZBz57udy4pvVg4JamGHTwIgwdD27bwpz/BkiWw\nZw98//sWTUnpycIpSTXk8GF48EFo2RI2boTnnw8r0IcMgTp1ok4nSYnjWCRJSrBjx2DKFJg/H666\nCqZNgxEjoH79qJNJUs2wcEpSgpw6BTNmwOzZ4Qzm+PGQnw8NGkSdTJJqloVTkuKspATmzIHp0+HT\nT2H0aHjsMWjYMOpkkhQNC6ckxUlpKbz4IkyeHM5uDh8O48bBdddFnUySouWiIUmqprNnYcECaNYM\nHn4YeveGAwfguecsm5IEFk5JqrKyMli6FFq3DqvPO3WCfftg0aKwJaUkKbBwSlIlxWKwYgW0axfm\nabZsCTt3wrJl0KJF1OkkKflYOCXpCsVisG4d5OVB375wzTWwZQusWgXt20edTpKSl4VTkq7A66/D\n7beHPc9r1YL162HDBrj11qiTSVLys3BK0mXs3Am9ekHnzmHl+cqVsHUr3HFH1MkkKXVYOCXpCxQV\nwYABkJMTVpwXFITy2aeP+51LUmVZOCXpAu++C0OHQps28MYbsHBhWHl+991Q239iSlKVOPhdkoAP\nPoCnngrzNL/+dZg1K4w6qls36mSSlPosnJIy2okTMHVqGNJevz5MnAijRkFWVtTJJCl9WDglZaTT\np+HZZ8OjrAweeQTGjIHs7KiTSVL6sXBKyigffwzz5sHTT8NHH8HIkTB2LDRqFHUySUpfFk5JGeHM\nmXB/5lNPwfHjcP/9MGEC3HBD1MkkKf255lJSWvvsM3j55bDl5KhR0L17GHn0wguWTUmqKZ7hlJSW\nyspg+XL4xS/g7behf3/4/e/DuCNJUs3yDKektBKLwb/8C+TmhsHtN94IhYWhfFo2JSkaFk5JaWPj\nxrAFZe/ecNVVsHkzrF0LHTpEnUySMpuFU1LKKyyEHj3g9tuhtBTWrAlls0uXqJNJksDCKSmF7d0L\n/fpBx47w/vvhsvm2bdCzp/udS1IysXBKSjkHD8LgwdC2LezeDUuWwJ49YWGQRVOSko+FU1LKOHw4\n7G/esmW4X/P552H/fhgyBOrUiTqdJOlSHIskKekdOwZTpsD8+dCgAUybBiNGhL3PJUnJz8IpKWkV\nF8OMGTBrVjiDOX485OeH0ilJSh0WTklJp6QE5syB6dPh009h9Gh47DFo2DDqZJKkqrBwSkoapaXw\n4osweTKcOgU//jGMGweNG0edTJJUHS4akhS5s2dh4UJo3hwefjgMbj9wIJzltGxKUuqzcEqKTFkZ\nFBRA69bwox/Bd74D+/bBokXQpEnU6SRJ8WLhlFTjYjFYsQLat4d77oFWrWDXLli2DFq0iDqdJCne\nLJySakwsBuvXQ14e9O0LjRrB1q2wciW0axd1OklSolg4JdWIrVuhWzf4u7+D2rVhw4bwyMuLOpkk\nKdEsnJISateusAjoO9+BkyfD2cwtW0L5lCRlBgunpIQoKoKBA+GWW+Cdd8L9mTt3Qp8+7ncuSZnG\nwikprg4dgmHDoE0beOONsOJ8375QPmv7TxxJykgOfpcUF0ePwlNPwUsvhR2BZs2CBx+EunWjTiZJ\nipqFU1K1nDgB06bBc89BvXowcSKMGgVZWVEnkyQlCwunpCo5fRpmzoRnnw0D3B95JOwSlJ0ddTJJ\nUrKxcEqqlE8+gXnz4OmnoaQERo6EsWPDTE1Jkr6IhVPSFTlzJux3PmkSHD8O998PEybADTdEnUyS\nlOxcMyrpss6dg8WLw5aTDz0E3buHkUcvvGDZlCRdGQunpC9UVgavvAI33wxDh0JODuzZA0uWQNOm\nUaeTJKUSC6eki8RisHo1dOgAAwZAkyZQWAjLl4fZmpIkVZaFU9L/s2kTdOkCvXqFsUabN8PataF8\nSpJUVZUtnLcBq4AjQBnwvS94zUTgA+BjYB3wt9UJKCnxCguhRw/o2hVKS2HNmlA2u3SJOpkkKR1U\ntnB+DdgJjCz/OVbh+Z8Bo4DhwLeBj4A/AO41IiWhvXuhXz/o2BHefz9cNi8shJ493e9ckhQ/lR2L\ntLb88UVqAfnAk4SzoAA/AD4E+gK/rUpASfF38CA88QQUFMA3vhEWAt1zD9SpE3UySVI6iuc9nN8A\nrgXWX3DsNPAmcGscP0dSFR0+HPY3b9kSNm6E+fPDiKMhQyybkqTEiefg98blv35Y4fiHFzwnKQLH\njsGUKaFgNmgQ9j4fMQLq1486mSQpE9TETkO1CAuMJNWwU6dgxgyYPTucwRw/HvLzQ+mUJKmmxLNw\n/mf5r9dy8VnOa4Edl/pD+fn5ZGdnX3Rs0KBBDBo0KI7RpMxSUgJz5sD06WFLytGj4dFHoWHDqJNJ\nkpJVQUEBBQUFFx0rLi6Oy3tXZx1qGWEx0MoL3usIMAN4tvzY1YTyeR/wTxX+fA6wffv27eTk5FQj\nhqTPlZbCiy/C5MlQXAzDh8O4cdDYm1okSVWwY8cOcnNzAXK5zAnEL1PZM5xZQLMLfr4JaA+cAA4D\ns4AJwAHgEGHF+hHgd1UNKOnLnT0LL78MEyfC0aNw333w+ONhlyBJkqJW2cL5LeCP5b+Pcf5M5svA\nD4FphFIBSqGpAAASRklEQVT6EpAN/BvQEzhT3aCS/lJZGSxbFkYcHTwId98Nv/oVNG8edTJJks6r\nbOHcyJePUnqi/CEpQWIxWLkSJkwIw9v79IFXX4V27aJOJknSX3IvdSmFxGKwbh3k5UHfvnDNNbB1\nayiflk1JUrKycEopYssW6NYt7HleuzZs2BAeeXlRJ5Mk6fIsnFKS27kTevWCTp3g5ElYtep8+ZQk\nKRVYOKUkVVQEAwZATk5YELRsWSifvXtDreoMNJMkqYZZOKUkc+gQDBsGbdrAm2/CokXw1lswcGC4\nlC5JUqqpia0tJV2Bo0dh0iRYsCDsCDRrFjz4INStG3UySZKqx8IpRezECZg6FebOhXr14Mkn4aGH\nICsr6mSSJMWHhVOKyOnTMHMmPPNMGHf0yCPw8MOQnR11MkmS4svCKdWwjz+GefPCWc2SEhg5EsaO\nhUaNok4mSVJiWDilGnLmDCxcGO7TPH4cHngg7BR0/fVRJ5MkKbFc8yol2LlzsHgxtGgR7s3s3h3e\nfhvmz7dsSpIyg4VTSpCyMnjlFbj5Zhg6NMzT3LMHliyBm26KOp0kSTXHwinFWSwGq1dDhw5hcPuN\nN8K2bbB8eZitKUlSprFwSnG0aRN06RK2orzqKti8GdasgdzcqJNJkhQdC6cUB4WF0KMHdO0KpaWw\ndu358ilJUqazcErVsHcv9OsHHTvCkSPhsnlhIdx5p/udS5L0OQunVAUHD8LgwdC2LezeHRYC7d4N\n/ftbNCVJqsjCKVXC4cNhf/OWLWHjRnj+eSgqgiFDoE6dqNNJkpScHPwuXYFjx2DKlDA7s0EDmDYN\nRoyA+vWjTiZJUvKzcEqXceoUzJgBs2eHM5gTJsBPfxpKpyRJujIWTukLlJTAnDkwfXrYknL0aHj0\nUWjYMOpkkiSlHgundIHSUnjhhXD5vLgYhg+HceOgceOok0mSlLosnBJw9iy8/DJMnAhHj8J998Hj\nj0OTJlEnkyQp9blKXRmtrAyWLoXWrcPq806dYN8+WLTIsilJUrxYOJWRYjFYsQLatQvzNFu1gl27\nYNkyaN486nSSJKUXC6cySiwG69ZBXh707QvXXANbt8LKlaF8SpKk+LNwKmO8/jrcfnvY87x2bdiw\nITzy8qJOJklSerNwKu3t3Am9ekHnzmGu5sqVsGULdOsWdTJJkjKDhVNpa/9+uOsuyMmBAwegoCCU\nzz593O9ckqSaZOFU2nn3XRg6FG6+Gd58ExYuDCvP7747XEqXJEk1yzmcShsffABPPQULFsDXvw4z\nZ4bB7XXrRp1MkqTMZuFUyjtxAqZOheeeg/r1w/D2UaMgKyvqZJIkCSycSmGnT8Ozz4ZHWRk88giM\nGQPZ2VEnkyRJF7JwKuV8/DHMmwdPPw0ffQQjR8LYsdCoUdTJJEnSF7FwKmWcORPuz3zqKTh+HO6/\nHyZMgBtuiDqZJEm6HNfsKumdOweLF0OLFuHezO7doagIXnjBsilJUiqwcCpplZXBK6+E8UZDh4Z5\nmnv2wJIl0LRp1OkkSdKVsnAq6cRisHo15ObCgAHQpAkUFsLy5dCmTdTpJElSZVk4lVQ2bgxbUPbq\nBVddBZs2wdq10KFD1MkkSVJVWTiVFAoLoUcPuP12KC2FNWtg82a47baok0mSpOqycCpSe/ZA377Q\nsSO8/z68+ips2wY9e7rfuSRJ6cLCqUgcPAiDB0O7ducXAu3ZA9//vkVTkqR0Y+FUjTp8GB58EFq2\nDPdrPv887N8PQ4ZAnTpRp5MkSYng4HfViGPHYPJkmD8frr467H3+k5+Evc8lSVJ6s3AqoU6dghkz\nYPbscAZzwgTIz4cGDaJOJkmSaoqFUwlRUgJz5sD06fDppzB6NDz2GDRsGHUySZJU0yyciqvS0rDl\n5JQp4ezmj38M48ZB48ZRJ5MkSVFx0ZDi4uxZWLAAmjWDMWOgd284cCCc5bRsSpKU2SycqpayMli6\nFFq3DqvPO3WCfftg0aKwJaUkSZKFU1USi8GKFWGO5uDB0KoV7NoFy5ZBixZRp5MkScnEwqlKicVg\n3TrIyws7BF1zDWzZAitXhvIpSZJUkYVTV2zLFujWLex5XqsWrF8PGzbArbdGnUySJCUzC6e+1K5d\nYRFQp05w8mQ4m7l1K9xxR9TJJElSKrBw6pKKimDAALjlFnjnHSgogJ07oU8f9zuXJElXLt6F85dA\nWYXHvjh/hhLs0CEYNgzatIE33ggrzvftg7vvhtr+FUWSJFVSIga/7wW6X/DzZwn4DCXA0aPw1FPw\n0kthR6BZs8Koo7p1o04mSZJSWSIK5zngWALeVwly4gRMmwbPPQf16sHEiTBqFGRlRZ1MkiSlg0QU\nzmbAEaAU2Ar8HDicgM9RNZ0+DTNnwrPPhgHuY8aER3Z21MkkSVI6iXfhfAO4D3gb+BvgCeDfgJuB\nkjh/lqrok09g3jx4+mkoKYGRI2HsWGjUKOpkkiQpHcW7cK694Pd7gTeB94ABwD/G+bNUSWfOwMKF\nMGkSHD8O998PEybADTdEnUySJKWzRFxSv9B/A+8ATS/1gvz8fLIrXMMdNGgQgwYNSnC0zHHuHPzm\nN/DLX8J778G998ITT0DTS34rkiQp0xQUFFBQUHDRseLi4ri8d6KnKV5FuH/zF8DcCs/lANu3b99O\nTk5OgmNkprIyWL4cHn88zNTs3z8sCGrTJupkkiQpFezYsYPc3FyAXGBHVd8n3lMVZwC3ATcC3wH+\nGTgDFFzmzyjOYjFYvRo6dAiD25s0gcLCUD4tm5IkqabFu3BeTyiXRcBvgeNAHnAizp+jS9i0Cbp0\ngV69wlijTZtg7dpQPiVJkqIQ73s4vfEyIoWFMH48rFsHubmwZg3ceadbUEqSpOi5UWGK27sX+vWD\njh3h/ffDZfPCQujZ07IpSZKSg4UzRR08GFabt20Lu3fDkiWwZ09YGGTRlCRJycTCmWIOHw77m7ds\nCa+9BvPnhxXoQ4ZAnTpRp5MkSfpLiZ7DqTg5dgymTAkFs0GDsPf5iBFQv37UySRJki7PwpnkTp2C\nGTNg9uxwBnP8eMjPD6VTkiQpFVg4k1RJCcyZA9Onw6efwujR8Nhj0LBh1MkkSZIqx8KZZEpL4cUX\nYfJkKC6G4cNh3Dho3DjqZJIkSVXjoqEkcfYsLFwIzZrBww9D797wzjvhLKdlU5IkpTILZ8TKymDp\nUmjdGn70I+jcGfbvh0WLwpaUkiRJqc7CGZFYDFasgPbtYfBgaNUKdu2CggJo3jzqdJIkSfFj4axh\nsVjYfjIvD/r2hUaNYOtWWLkS2rWLOp0kSVL8WThr0JYt0K0b9OgRdgNavx42bAjlU5IkKV1ZOGvA\nrl1hEVCnTnDyZDibuXUr3HFH1MkkSZISz8KZQEVFMGAA3HILHDgAy5bBzp3Qp4/7nUuSpMxh4UyA\nQ4dg2DBo0wbefDOsOH/rLRg4EGr737gkScowDn6Po6NH4amn4KWXwo5As2bBgw9C3bpRJ5MkSYqO\nhTMOTpyAadPgueegXj148kl46CHIyoo6mSRJUvQsnNVw+jTMnAnPPBPGHT3ySNglKDs76mSSJEnJ\nw8JZBZ98AvPmwdNPQ0kJjBwJY8eGmZqSJEm6mIWzEs6cCfudT5oEx4/DAw/AhAlw/fVRJ5MkSUpe\nrpm+AufOweLF0KJFuDeze3d4+22YP9+yKUmS9GUsnJdRVgavvgo33wxDh0JODuzZA0uWwE03RZ1O\nkiQpNVg4v0AsBqtXQ4cOcNddcOONsG0bLF8eZmtKkiTpylk4K9i0Cbp0gV694KqrYPNmWLMGcnOj\nTiZJkpSaLJzlCguhRw/o2jWsQl+79nz5lCRJUtVlfOHcuxf69YOOHeHIkXDZfNs2uPNO9zuXJEmK\nh4wtnAcPwuDB0LYt7N4dFgLt3g39+1s0JUmS4injCufhw2F/85YtYePGMNqoqAiGDIE6daJOJ0mS\nlH4yZvD7sWMwZUoomA0ahL3PR4yA+vWjTiZJkpTe0r5wnjoFM2bA7NnhDOb48ZCfH0qnJEmSEi9t\nC2dJCcyZA9Onw6efwk9/Co8+Cg0bRp1MkiQps6Rd4SwthRdeCJfPi4th+HAYNw4aN446mSRJUmZK\nm0VDZ8/CggXQrBmMGQO9e8M774SznJZNSZKk6KR84Swrg6VLoXXrsPq8c2fYvx8WLYImTaJOJ0mS\npJQtnLEYrFgB7dqFeZqtWsGuXVBQAM2bR51OkiRJn0u5whmLwbp1kJcHffvCNdfA1q2wcmUon5Ik\nSUouKVU4t2yBbt3Cnue1a8OGDeGRlxd1MkmSJF1KShTOnTuhVy/o1AlOngxnMz8vn5IkSUpuSV04\ni4pgwADIyYEDB2DZslA++/Rxv3NJkqRUkZSF89AhGDYM2rSBN98MK8737YOBA8OldEmSJKWOpBr8\nfvQoTJoU5mk2bAizZoVRR3XrRp1MkiRJVZUUhfPECZg6FebOhXr1YOJEGDUKsrKiTiZJkqTqirxw\nvvhimJ0Zi4UdgsaMgezsqFNJkiQpXiIvnP/n/4SzmWPHQqNGUaeRJElSvEVeOFesgO9+N+oUkiRJ\nSpTI13xfe23UCSRJkpRIkRdOSZIkpTcLpyRJkhLKwilJkqSEsnBKkiQpoSyckiRJSigLpyRJkhLK\nwilJkqSESlThHAkcAj4B3gC+laDPUQopKCiIOoJqkN93ZvH7zix+36qsRBTOgcAzwBPALcCfgD8A\nblyZ4fwHVGbx+84sft+Zxe9blZWIwvkw8BKwGCgCfgx8DPwwAZ8lSZKkJBfvwvlVIAdYf8GxWPnP\nt8b5syRJkpQC4l04/xqoA3xY4fgxoHGcP0uSJEkp4CtRB9i/f3/UEVRDiouL2bFjR9QxVEP8vjOL\n33dm8fvOHPHqabXi8i7nfRX4CPg+sPKC44uBq4F+Fxy7DigEro9zBkmSJMXPEcLEoaNVfYN4n+E8\nA2wHunO+cNYG7gDmVHjtUUL46+KcQZIkSfFzlGqUzUQZQJi/+QOgFfAicALHIkmSJCmOPh/8Xgps\nxcHvkiRJkiRJkiRJkiRJkiRJyeLz+zw/Ad7A+zzT1c8J469OEzYE+GegeaSJVJPGAmXAzKiDKGGu\nB34D/BdhG+PdQG6kiZQoXwGmAO8SvuuDwIRIEymebgNWEUYglQHf+4LXTAQ+IHz/64C/rbF0VTSQ\nsKDoPqAlYSX7SVzJno7WcH5iQVvg94S/aHwtwkyqGd8C/gPYBTwbcRYlxtcJ/39eBHQAmhDG4t0U\nYSYlzuPAceC7wP9HmLl9GhgVZSjFTU9CoexLKJz/UOH5nwGngD7AN4HfAX8G6tZgxkp7k4vnctYC\n3if8h1F6+2vC/5A7Rx1ECXUV8DbQDXgNC2e6ehrYFHUI1ZhVwIIKx5YDSyLIosSqWDhrEeZwPnzB\nsasJV6kHXskbxnsv9SvxVSAHWH/BsVj5z7dGkEc1K7v815ORplCizSOczf4j8d/RTMnjHwibfbxC\nuGVmB/BApImUSGsIZ7Cblf/cDuhUflzp7RvAtVzc3U4TTiBeUXeLYi/1vwbqEP7hdKFjhMvrSl+1\ngVnAvwP7Is6ixLkbaM/5+7JjEWZRYt0EjACeASYBHQlXr87gWa909DzhUvrbwGeEf5ePAwqiDKUa\n0bj814rd7cMLnrusKAqnMtc8oDVeTk9n/xOYTTgLcqb8WC08y5muagP/P+cXjvwJuBn4MRbOdDSa\nsPbibuAt4BbCSYSj+H1nqlqEy+9J6avAWf7yZtTFhBXMSk9zgfcIiwqUvj6/2fzsBY8y4ByhgFo8\n08sh4KUKx0YQ7slX+vkQ+EmFY+OB/RFkUWJVvIfzpvJjbSu8bhNXOIUkins4zxDu+eleIccdhG0w\nlV5qEcrm9wgLSN6LNo4SbD3hDFe78kd7YBthbE57vLyebl7nL2+Fak4ooko/tQh/ebxQGf5FMhO8\nC/wnF3e3qwm30SR1dxtAWNn0+bicF4ETOBYpHT1PGKNwG+E+j88f9aIMpRq1EedwpqsOhJMIPyfM\n47sHKAEGRRlKCfMScBj4e+BGoB9h/cWUCDMpfrIIJwbaE/4ikV/++/9Z/vxjhAW/F45FOki4cp3U\nPh/8Xkpoxw5+T0+fX04tq/D4QZShVKMci5TeehGGvX9CuK/v/mjjKIGygBlcPPh9Iq4HSRddOf/v\n6Av/vf2PF7zmV4R7dj8B/pUUGPwuSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\nSZIkSZIkSZIkSZIkSVKV/V/Q1zTxLlVUwQAAAABJRU5ErkJggg==\n", "text/plain": [ "<matplotlib.figure.Figure at 0x111fd5550>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# let's plot that\n", "pl.clf()\n", "pl.plot(x,y)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[<matplotlib.lines.Line2D at 0x112428ad0>]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nj/1/a11EzW+wKu0AAAAASUVORK5CYII=\n", "text/plain": [ "<matplotlib.figure.Figure at 0x1120345d0>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# looks like a simple line. But we want to see the individual data points\n", "pl.plot(x,y,marker='s')" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "50\n", "50\n" ] } ], "source": [ "# 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)" ] }, { "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", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "<matplotlib.text.Text at 0x112486610>" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n/H+F3dSYTBrO0AAAAABJRU5ErkJggg==\n", "text/plain": [ "<matplotlib.figure.Figure at 0x1123d6810>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 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" ] }, { "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", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# 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" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 2.61883038 0.70830956]\n", "<type 'numpy.ndarray'>\n" ] } ], "source": [ "# 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" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "<matplotlib.text.Text at 0x112657f90>" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nUl74f6zW3ByqG2/dAAAAAElFTkSuQmCC\n", "text/plain": [ "<matplotlib.figure.Figure at 0x112629cd0>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 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\")" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "<matplotlib.text.Text at 0x1127fbf50>" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nUl74f6zW3ByqG2/dAAAAAElFTkSuQmCC\n", "text/plain": [ "<matplotlib.figure.Figure at 0x112833410>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 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\")" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# help(polyval) if you want to find out more" ] }, { "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", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 3.68830376 -3.71690442]\n" ] } ], "source": [ "noisy_flux = y+noise*10\n", "p = polyfit(x,noisy_flux,1)\n", "print p" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "<matplotlib.text.Text at 0x112664dd0>" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAHHCAYAAABdt4vcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3Xl4lOX59vFvwr4JqCEsVVkTCbKYsEcQRNmM7LwatGpH\nW8UWC7VqFYugVqs/sbhXa1NrrWgTZYsoigvFsKjElaVBBUTZBk3Yl5DM+8eVMElMQpaZeWY5P8eR\nA/LkycwVI3Dmnuu+bhARERERERERERERERERERERERERERERERERERERERERERERERERERERERER\nERERERERERERERERERERESnXbKCwzNuGMvfcA+wADgNvA50DWJ+IiIiISK3MBj4HWpV4O73Ex28H\ncoHLgO7AQuBroEFAqxQRERERqaHZwCcVfCwK2An8rsS104AjwOX+LUtEREREglm00wVUUxfge2zl\n9kXgrKLrHYBYYHmJe/cDa4EBgSxQRERERIJLKAXeNcA1wAhgKhZyVwJNgdZF9+wu8zm7S3xMRERE\nRCJQXacLqIY3S/z+S2z1dhvw/4BNFXxOFLa5rSJtit5EREREJDjtLHqrsVAKvGXtA3KATsB7Rddi\nKb3KGwtkV/D5bdq2bbtjx44d/qtQRERERGrre6APtQi9oRx4m2I9vS8AW4BdwMXYJAewTWt9gScr\n+Pw2O3bs4MUXX6Rr167+rlWCwPTp05k3b57TZUiA6PsdWfT9jiz6fkeOjRs3ctVVV7XDXpGPiMD7\nMLAY+BZoC8wBjgPziz4+D7gL2AxsBe7FfiJYWNmDdu3alcTERP9ULEGlRYsW+l5HEH2/I4u+35FF\n32+prlAKvO2wcHsG4MY2rPUHfij6+ENAE+BZoEXRx0dioVhEREREIlQoBd7UKtxzd9GbiIiIiAgQ\nWmPJRERERESqTYFXIkZqalVeJJBwoe93ZNH3O7Lo+y3VFeV0AQ5KBNatW7eu0sb3zZs3c+DAgcBV\nJQHRrFkzunTp4nQZIiIiUons7GySkpIAkqh41OwphVIPb8Bt3ryZuLg4p8sQP8nJyVHoFRERiQAK\nvJUoXtnVrN7wUjTTTyv3IiIiEUKBtwo0q1dEREQkdGnTmoiIiIiENQVeEREREQlrCrwiIiIiEtYU\neEVEREQkrCnwStDbvHkzw4cPp3nz5kRHR7No0SKef/55oqOj+fbbb50uT0RERIKcAm+EKg6MJd9i\nY2O56KKLePPNN/32vEeOHGH27NmsWLGiyp9zzTXXsH79eh544AFefPFFevfuTVRUFFFRpc9Neeqp\np/jnP//p65JFREQkxGksWYS799576dChAx6Ph127dvH8888zevRolixZwqWXXurz5zt06BD33HMP\n0dHRXHjhhae8/8iRI6xZs4a77rqLm2666eT1n//856SmplK/fv2T15566iliYmK45pprfF63iIiI\nhC4F3gg3atSoUjOGr7vuOmJjY3n55Zf9EniLeTyeKt3ndrsBaN68eanr0dHRpcKuiIiISEXU0iCl\nNG/enIYNG1K3bumfhQoLC5k3bx7dunWjUaNGtG7dmhtvvJG8vLxS93388ceMGDGCmJgYGjduTMeO\nHbnuuusA2Lp1K61atQJgzpw5J1sp5syZU24ts2fPpn379gDceuutREdH06FDB4Cf9PC2b9+eDRs2\nsGLFipOPO3ToUJ/9dxEREZHQpRXeCJeXl8fevXvxeDzs2bOHxx9/nMOHD3PVVVeVuu+GG27gn//8\nJy6Xi+nTp/PNN9/wxBNP8Mknn5CVlUXdunXZs2cPw4cPJzY2ljvuuIMWLVqwZcsWFixYAECrVq14\n+umnmTp1KhMmTGDChAkA9OjRo9zaJk6cSMuWLZkxYwZTpkxh9OjRNG3atNx7H330UaZNm0azZs2Y\nOXMmALGxsb76zyQiIiIhTIE3wl188cWl3m/QoAFpaWkMGzbs5LUPPviAv//978yfP5/LL7/85PWh\nQ4cycuRI0tPTSU1NZdWqVeTl5bF8+fJSbRL33nsvAI0bN2bixIlMnTqVHj16MGXKlEpr6969O82a\nNWPGjBkkJiZWev/YsWOZOXMmrVq1OuXjioiISGRR4PWVw4dh0yb/P8+550Ljxj57uKeeeoq4uDgA\ndu/ezb/+9S+uu+46mjZtyvjx4wFIT0+nefPmDBs2jL1795783MTERJo0acJ7771HamoqLVq0AGDJ\nkiX06NHjJ20RIiIiIk5QIvGVTZsgKcn/z7NuHZRYPa2tvn37llqNveKKKzj//PP5zW9+w2WXXUbd\nunXZvHkz+/btO9l/W1bxxrIhQ4YwceJE5syZw1/+8heGDBnCuHHjmDJlijaYiYiIiGMUeH3l3HMt\njAbiefwoKiqKIUOG8Nhjj7F582a6du1KYWEhrVq14qWXXir3c2JiYk7+Pj09nbVr17JkyRKWLVuG\n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\nfDz8+tfWrtCjh0KuiIiIiA9FfOAdNGhQlVZqa3UowpEj8OabFnKXLIEDByAhAaZPt5DbrZtCroiI\niM0OmnMAAA0ZSURBVIifRHzgnT17dpXuq/ahCIcOwRtvWMjNzLT3u3eHW2+1EWIJCbUvXkRERERO\nKeIDb3WcMuQePAivv24hd+lSOHwYevWCO++0kBsfH5hCRUREROQkBd7a2r/fVnAzMmxF9+hRSEqC\nWbMs5Hbu7HSFIiIiIhFNgbcm8vKsFzc93UaJHT8O/frBvfdayO3QwekKRURERKSIAm9V/fijTVXI\nyLApC/n5dsrZn/9sIffss52uUERERETKocBbmb17bT5uejq88w4UFEBysh0AMWEC/OxnTlcoIiIi\nIqegwFvWnj12nG9GBrz3Hng8MHgwzJsH48dD27ZOVygiIiIi1aDAC7BrF7z2moXcFSvs2tCh8MQT\nFnJjY52tT0RERERqTIH3+uvh008hOhqGDYO//hXGjYOYGKcrExEREREfUOBt1Aieew7GjoUzznC6\nGhERERHxMQXexx+HxESnqxARERERP4l2ugAREREREX9S4BURERGRsKbAKyIiIiJhTYFXRERERMKa\nAq+IiIiIhDUFXhEREREJawq8IiIiIhLWFHhFREREJKwp8IqIiIhIWFPgFREREZGwpsArIiIiImFN\ngVdEREREwpoCr4iIiIiENQVeEREREQlrCrwiIiIiEtYUeEVEREQkrCnwBhmXy0V8fDwul8vpUkRE\nRETCggJvEHG5XGRmZpKTk0NmZqZCr4iID2ghQUQUeINIVlYWbrcbALfbTVZWlsMViYiENi0kiAgo\n8AaV5ORkYmJiAIiJiSE5OdnhikREQpsWEkQEFHiDSlpaGikpKcTFxZGSkkJaWprTJYmIhDQtJIgI\nQF2nC5DSwinkulwusrKySE5ODquvS0RCR1pamv4uEhEFXvGP4r45t9tNbm4uLpdL/9CIiCP0d4+I\nqKUhQvl717L65kRERCRYKPBGoEDsWlbfnIiIiAQLBd4IFIjVV23AExERkWChHt4IlJycTG5uLm63\n26+rrwq51aONNSIiIv4RSiu8M4FVwGEgt4J7zgZeBw4Bu4GHgDoBqS6EaPU1+Gg4voiIiP+E0gpv\nPeAVLPReV87H62BhdwcwAGgLvADkY2FZSlDIDS7a5CciIuI/obTCOxt4FPiygo8PB7oCVwGfA28C\n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\ngFTWK+FFhgAAAABJRU5ErkJggg==\n", "text/plain": [ "<matplotlib.figure.Figure at 0x112a01bd0>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 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\")" ] }, { "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", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "<matplotlib.text.Text at 0x112bf6a50>" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAHHCAYAAABdt4vcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3XlY1WX+//EnuIKSUCmpGeKCG2iCW+ICZtkylenMmGZm\nWJo2fkdbNZtwabWprGmZnLJlKrSaX2VNY9ngguR+3NMRN8osRAVFRWU5vz9udtk5+3k9rosLz+d8\nzjn3EZEX9+d9v28QERERERERERERERERERERERERERERERERERERERERERERERERERERERERERER\nERERERERERERERERERGpUGvgQ+AYcBbYDkSVOWcucKTg/uVAB0cOUERERESktoKAQ8A7QC8gBBgK\ntCtxzmNABnALEAF8AewHGjlyoCIiIiIitfEcsKqS+32AX4EHSxy7BMgGRtlxXCIiIiLiwnydPYAa\nuBXYDHwKpAEW4N4S94cCwcD3JY6dAtYD1zhojCIiIiIitXYOM1v7FNADuA9Tpzuu4P7+QD4m9Ja0\nBFjsoDGKiIiIiIup7+wB1IAvsAF4ouD2NiAcuB/4oJLH+WCCcHlaFnyIiIiIiGv6teCj1twp8B4B\nfixzbA8wsuDPvxV8DsaUPFDitqWc52vZqlWrI0eOHLHpIEVERETEpn4BelOH0OtOgTcZ6FzmWBim\ncwPAQUzoHYppVwZm0Vof4PVynq/lkSNH+PDDD+nSpYvtRysuZ9q0aSxYsMDZwxAH0dfbu+jr7V30\n9fYeu3fvZuzYsa0xV+S9IvC+DPwAzMQsXOuDqeO9r+B+K7AAU/KQggnC8zC/FXxR0ZN26dKFyMhI\nuw1aXEdgYKC+1l5EX2/voq+3d9HXW2rKnQLvJuB24FngSeAA8GcgocQ584EmwEIgEEgCbgAuOHSk\nIiIiIuIy3CnwAvy74KMy8QUfIiIiIiJu1YdXRERERKTGFHjFa4wePdrZQxAH0tfbu+jr7V309Zaa\n8nH2AJwoEti8efPmSgvfU1JSyMrKctyoxCECAgLo2LGjs4chIiIilbBYLERFRQFEUX6b2Wpxtxpe\nh0pJSSEsLMzZwxA72bt3r0KviIiIF1DgrUThzK569XqWgp5+mrkXERHxEgq81aBevSIiIiLuS4vW\nRERERMSjKfCKiIiIiEdT4BURERERj6bAKyIiIiIeTYFXXF5KSgrXX389zZo1w9fXly+//JL33nsP\n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\n", "text/plain": [ "<matplotlib.figure.Figure at 0x112c1be90>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "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\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#Curve Fitting\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", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[<matplotlib.lines.Line2D at 0x11300f290>]" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "<matplotlib.figure.Figure at 0x112c23090>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 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)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[<matplotlib.lines.Line2D at 0x1131dd9d0>]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nRbO8q9LerP9714X0zDOS/GWSL6UdC/vibsvpnZenHbb0qIOvtWierRem3Rnv7yZ5Qdou3rvTtiJz\nNj6fdp7HTyZ5ZpIfTDtO8/u7LKqnXpb2s/gJXRdyHILmbAma5f1Ckj9N+7PN2bk2yVPTjuP+qbRh\nc73TivrjSWlbgJ5x6Nh7YjJQSV+VZD9J3XUhPfLFJO+95NjPpp08yNm6Pcl/7rqI43pU2lR8afj5\ntbQzdzlbgmZZb0nysSRf23UhS+B3k/xS10X0xHel/Wz40qHH/Um+nPbmrRu9jD9I8m+7LqJH7k7y\ntkuOvTrtnA/Oztcm+ask3zHNi7oco/nFtGMqvvXQsauSPC/J73VSEUzvXNqQ+ZK0Eyk+1m05S+Hq\ndL9iRl+8M22X7jMPHjcm+WDacYQ3xuzzEh6bdszmvV0X0iOTJN9wybHVtAGUs/OqtD0g/6XrQqbx\nsrTjKr4/7XIEv5h2Rqnljc7GY9LeLG5M20px/uDvBqKfnZ9Pu4TGzbl4+Ye/0WVRPfK6JDcleUra\n7t3Xpf2N+ls6rKnv3hNd52fpjWk/H56S5B+mbZH/ZJK/3WFNffP30zZevTbJ05N8X9px3ZtdFtUz\nV6VtSPmprgs5iQcXbP982pZMC7afnefmrxdW/fKhvy/EbLEFcem1ffBhEPrZ+OUkH037+fDJtGuU\nPq/TivrPZKCztZV2xvnn064L+x+SfF2nFfXTt6ddA/ZzSf5nkn/SbTm984K097qnd10IAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS+z/A37OMfz2CFciAAAAAElFTkSuQmCC\n", "text/plain": [ "<matplotlib.figure.Figure at 0x113047b90>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 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" ] }, { "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", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on function curve_fit in module scipy.optimize.minpack:\n", "\n", "curve_fit(f, xdata, ydata, p0=None, sigma=None, absolute_sigma=False, check_finite=True, **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 M-length sequence or an (k,M)-shaped array\n", " for functions with k predictors.\n", " The independent variable where the data is measured.\n", " ydata : M-length sequence\n", " The dependent data --- nominally f(xdata, ...)\n", " p0 : None, scalar, or N-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 M-length sequence, optional\n", " If not None, the uncertainties in the ydata array. These are used as\n", " weights in the least-squares problem\n", " i.e. minimising ``np.sum( ((f(xdata, *popt) - ydata) / sigma)**2 )``\n", " If None, the uncertainties are assumed to be 1.\n", " absolute_sigma : bool, optional\n", " If False, `sigma` denotes relative weights of the data points.\n", " The returned covariance matrix `pcov` is based on *estimated*\n", " errors in the data, and is not affected by the overall\n", " magnitude of the values in `sigma`. Only the relative\n", " magnitudes of the `sigma` values matter.\n", " \n", " If True, `sigma` describes one standard deviation errors of\n", " the input data points. The estimated covariance in `pcov` is\n", " based on these values.\n", " check_finite : bool, optional\n", " If True, check that the input arrays do not contain nans of infs,\n", " and raise a ValueError if they do. Setting this parameter to\n", " False may silently produce nonsensical results if the input arrays\n", " do contain nans.\n", " Default is True.\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. To compute one standard deviation errors\n", " on the parameters use ``perr = np.sqrt(np.diag(pcov))``.\n", " \n", " How the `sigma` parameter affects the estimated covariance\n", " depends on `absolute_sigma` argument, as described above.\n", " \n", " Raises\n", " ------\n", " OptimizeWarning\n", " if covariance of the parameters can not be estimated.\n", " \n", " ValueError\n", " if ydata and xdata contain NaNs.\n", " \n", " See Also\n", " --------\n", " leastsq\n", " \n", " Notes\n", " -----\n", " The algorithm uses the Levenberg-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", " >>> xdata = np.linspace(0, 4, 50)\n", " >>> y = func(xdata, 2.5, 1.3, 0.5)\n", " >>> ydata = y + 0.2 * np.random.normal(size=len(xdata))\n", " \n", " >>> popt, pcov = curve_fit(func, xdata, ydata)\n", "\n" ] } ], "source": [ "# 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)" ] }, { "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", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 1.11841127 -0.29237962] [ 0.19677394 0.17303136]\n" ] } ], "source": [ "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" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[<matplotlib.lines.Line2D at 0x114077e90>]" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<matplotlib.figure.Figure at 0x114077fd0>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 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-')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Again, this is pretty good despite the noisiness." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#Fitting a Power Law\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", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [], "source": [ "t = np.linspace(0.1,10) \n", "a = 1.5\n", "b = 2.5\n", "z = a*t**b " ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[<matplotlib.lines.Line2D at 0x1143aeb50>]" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<matplotlib.figure.Figure at 0x114077910>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pl.clf()\n", "pl.plot(t,z)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "<matplotlib.text.Text at 0x1141df510>" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<matplotlib.figure.Figure at 0x11423be90>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 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)\")" ] }, { "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", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[<matplotlib.lines.Line2D at 0x1145a06d0>]" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArAAAAGyCAYAAAAcZPcgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3XucnOP9//FXEpGQNEnVimPRskurStIoRtGiDl3HpGKp\n062ldUxVnb8oqqUtQWnLzzhUu4KiDFLUIYxzEoe2ZFGnJMSIjYQkctj9/XHNNrObbLK7mZl7Dq/n\n43E/Zueee2Y+ax547zXX9blAkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\nkiRJklSmzgNaOhz/6XDN+cB0YC7wILBJh8f7A1cBHwJzgNuBtQpWsSRJkqraecBLhMDZdqyR8/hp\nQDOwN/A14C7gDaBfzjV/AN4GdgaGAU8CTxS2bEmSJFWr84DJnTzWC3gPODnn3CBgHjA6e38w8Blw\nQM41dYSR3G/ms1BJkiSVl94FfO1NgWmEkdWbgQ2y5zcGhgIP5Vw7G3gG2C57fzjQt8M1U4B3cq6R\nJElSFSpUgH0aOBzYHfgJIbQ+DgwE1s5eM6PDc2YQgi3ZaxYQgm1n10iSJKkKrVKg1x2f8/O/CKOr\nbwMHAq928pxeeXjfdbKHJEmSStN72aPHChVgO/oYaAK+DDySPTeU9qOwQ4FJ2Z/fB1YlzI2d3eGa\n9zt5j3XWXXfd6dOnT89XzZIkScq/acAIViLEFivADiTMib0JeJMQQncldCqAEFS3IbTNApgILMxe\nc0f2XB3wReCpTt5jnenTp3PzzTez+eab5/0XUOkZM2YMY8eOjbsMFYmfd3Xx864uft7V45VXXuEH\nP/jBeoRvzEsuwP4WuJuw6Gpd4BeEOa2N2cfHAmcDrwFvARcQ0vhd2cc/Bq4DLgU+IvSBvZLQSuvZ\n5b3x5ptvzrBhw/L3m6hkDRkyxM+6ivh5Vxc/7+ri563uKlSAXY8QVr8AZAgLuLYFZmYfvwQYAFwD\nDMk+vgch5Lb5KaFt1t8I/WHHA8cWqF5JkiSViUIF2IYuXHNu9ujMZ8Dx2UOSJEkCCtsHVpIkSco7\nA6zKVkNDVwb6VSn8vKuLn3d18fNWd+Wj92qpGAZMnDhxohPBJUmSStCkSZMYPnw4hF1XJ63g8k45\nAitJkqSyYoCVJElSUZx33nl5eR0DrCRJkgouiiIef/zxvLyWAVaSJEkFl06nmTVrVl5eywArSZKk\ngkskEgwZMiQvr2WAlSRJUsElk0m+9a1v5eW1DLCSJEkqChdxSZIkqawsWJCf1zHASpIkqeBaW+Gi\ni/LzWgZYSZIkFdzll8M99+TntQywkiRJKqh//AN+9jM47LD8vJ4BVpIkSQXT1ASjR8Mee8Dxx+fn\nNQ2wkiRJKohZs2CffWCddeCvf4U+ffLzugZYSZIk9UgURdTV1RFF0VKPLV4MDQ0wYwbcfTcMHpy/\n9zXASpIkqduiKCKVStHU1EQqlVoqxJ52Gjz4INx6K2y6aX7fe5X8vpwkSZKqQTqdJpPJAJDJZEin\n0/977MYb4Xe/C50Hdtst/+/tCKwkSZK6LZFIUFNTA0BNTQ2JRAKAp56Co4+Go46CE04ozHsbYCVJ\nktRtyWSS+vp6amtrqa+vJ5lMMnUq7L8/bLMNXH019OpVmPd2CoEkSZJ6JJlM/u/nuXNh332hXz/4\n299g1VUL974GWEmSJK2U1laIInj1VUinYa21Cvt+BlhJkiStlIsugnHj4PbbYautCv9+zoGVJElS\nj/3973D22XDuuTByZHHe0wArSZKkHnn5ZTjkkBBczzmneO9rgJUkSVK3ffBB2CZ2k01C39feRUyV\nzoGVJElSt8yfD/vtB/PmwaOPwoABxX1/A6wkSZK6rK3jwOTJIbxuuGHxazDASpIkqcvOPx8aG0PX\ngW9+M54anAMrSZKkLmlshPPOgwsugAMPjK8OA6wkSZJW6Mkn4cgj4dBD4ayz4q3FACtJkqTlevPN\nsGhrxAi49lro1SveegywkiRJ6tTHH0N9PQwaBHfeCf36xV2Ri7gkSZLUiUWLwlzX6dPhqadgzTXj\nrigwwEqSJGkpra1w0knw8MMwfjxstlncFS1hgJUkSdJSrrwSrr4arrkGdtkl7mracw6sJEmS2rn3\nXvjpT+FnP4Mf/SjuapZmgJUkSdL/vPQSHHRQWLh18cVxV7NsBlhJkiQB8P77Ibhusgn85S/Qp0/c\nFS2bAVaSJEnMmwf77guLF8M998DAgXFX1DkXcUmSJFW5lpaww9bLL8Pjj8P668dd0fIZYCVJkqrc\nz38eNim4804YPjzualbMACtJklTFrrgCLr0Ufv972GefuKvpGufASpIkVam77oIxY+CUU+C44+Ku\npusMsJIkSVXo6aehoQFGjSrddlmdMcBKkiRVmTfegL33DvNdb7oJepdZIiyzciVJkrQyPvwQ9twT\n1lgD/v536N8/nI+iiLq6OqIoirfALjDASpIkVYm2Xq+zZsH998MXvhDOR1FEKpWiqamJVCpV8iHW\nLgSSJElVoK3X6+TJ8Oij8KUvLXksnU6TyWQAyGQypNPpeIrsIkdgJUmSqkBbr9dbboFttmn/WCKR\noKamBoCamhoSiUQMFXadI7CSJEkVKIoi0uk0iUSCrbZKLrfXazKZbHd9MpksfsHdYICVJEmqMG1z\nWjOZDO+/38z110ecckpyub1eSz205nIKgSRJUoXJndM6e3aGgQPTZdfrdXmKFWBPB1qAyzqcPx+Y\nDswFHgQ26fB4f+Aq4ENgDnA7sFZBK5UkSSpziUSCNdYIc1pXWaWGAw5IlF2v1+Upxq8yAjgaeAlo\nzTl/GnACcAzwTeBT4B9Av5xrLgPqgVHATsC6wB2FL1mSJKl8XXxxkkWL6unbt5YDD6znxhvLZ3pA\nVxR6DuxA4Gbgh8D/5ZzvBYwBLgDuyZ47DJgB7AeMAwYDEdAAPJq95kjgFULgfaawpUuSJJWfTz6B\n730P+vdPMmkSfPnLcVeUf4Uegb0KSAEPE0Jrm42BocBDOedmE0Lpdtn7w4G+Ha6ZAryTc40kSZKy\nFiyAUaPg1Vdh/PjKDK9Q2BHYg4CtCFMIoP30gbWztzM6PGcGIdi2XbOAEGw7u0aSJEmEjQqOOgoe\nfjiE1623jruiwilUgN0AuBzYlRBCIYzA9ur0GUuukSRJUjedeir85S/Q2Ajf+U7c1RRWoQLscKAG\nmJRzrg/wLeA4YLPsuaG0H4UdmvOc94FVgUG0H4Udmn1smcaMGcOQIUPanWtoaKChoaHbv4QkSVI5\n+N3vwnHFFTB6dNzVBI2NjTQ2NrY7N2vWrLy8dqFGPAcCX+zwPtcTFmBdnL2dBvwWuDR7zSBCmD0c\nuJWwiOsDwiKuts4Dddnnbgs82+E9hwETJ06cyLBhw/L860iSJJWmm2+GQw+FM86Aiy6Ku5rlmzRp\nEsOHD4cw2DlpBZd3qlAjsJ8A/+lwbi7wUc75scDZwGvAW4SOBNOAu7KPfwxcRwi4HxH6wF4JPMnS\n4VWSJKnqjB8PRx4JUQS//GXc1RRPMbeSbaX9Qq5LgAHANcAQ4HFgD5bMmQX4KWEDhL8R+sOOB44t\nRrGSJEml7LnnQseBPfaAP/0JelXRSqJiBthvL+PcudmjM58Bx2cPSZIkAU1NsNdesOWWMG4crFLM\nRFcCKmhTMUmSpMr33nuw++5QUwP33AOrrx53RcVXZXldkiSpfH38cZgysHAhTJgAX/hC3BXFwwAr\nSZJUBubPh333hXfegSeegA02iLui+BhgJUmSStzixfCDH8Azz8CDD8JXvxp3RfEywEqSJJWw1lY4\n/ni4885w7LBD3BXFzwArSZJUws48E/74R7juOthnn7irKQ12IZAkSSpRl1wCv/512CY2iuKupnQY\nYCVJkkrQNdfAaafB2WfDv/4VUVdXR2SKBQywkiRJJWfcOPjxj8Pc12nTIlKpFE1NTaRSKUMszoGV\nJEkqKfffHzoOHHIIXH45bL55mkwmA0AmkyGdTsdcYfwcgZUkSSoRjz8OI0fCnntCMgm9e0MikaCm\npgaAmpoaEolEzFXGzwArSZJUAiZPhvp6+OY34dZboW/fcD6ZTFJfX09tbS319fUkk8l4Cy0BTiGQ\nJEmK2ZQpsPvuUFsLd98N/fu3f9zQ2p4jsJIkSTF65x3YbTeoqQnzXz/3ubgrKn0GWEmSpJh88EEI\nr336wAMPwJprxl1ReXAKgSRJUgw+/hj22CPcPvEErLde3BWVD0dgJUmSiuywwyLWXruOf/874sEH\nYZNN4q6ovBhgJUmSiuiIIyLGjUsxf34Tq6+e4rLL3JiguwywkiRJRbJwIdx+e5oFC8LGBLNmuTFB\nTxhgJUmSimDxYjjsMJg7N8GgQW5MsDIMsJIkSQXW0gI//CHcdhvcdluSkSPdmGBl2IVAkiSpgFpb\n4bjj4MYb4eabw1axI0caWleGAVaSJKlAWlvh5JPhj3+E666Dgw+Ou6LK4BQCSZKkAmhthbPOgrFj\n4aqrILLZQN4YYCVJkgrgwgvhV7+C3/0Ojj027moqiwFWkiQpz37zGzjnHPjlL8MUAuWXAVaSJCmP\nrrwSTj0Vzj4bzjwz7moqk4u4JEmSVkIURaTTaRKJBNttl+TEE+FnP4Pzz4+7ssplgJUkSeqhKIpI\npVJkMhnee6+Z66+POO64JL/5DfTqFXd1lcspBJIkST2UTqfJZMK2sHPmZBg0KM0VVxheC80AK0mS\n1EOJxJJtYfv1q+GAAxL0Nl0VnP+IJUmSemi//ZLMmVPPwIG1HHRQPddf7w5bxeAcWEmSpB64+24Y\nNSpsC/vXv0LfvnFXVD0cgZUkSeqmtvC6774YXmNggJUkSeoGw2v8DLCSJEldZHgtDQZYSZKkLjC8\nlg4DrCRJ0goYXkuLAVaSJClHFEXU1dURRRFgeC1FttGSJEnKyt0atrm5mV13jZgwIWl4LTGOwEqS\nJGXlbg2byWT45z/ThtcSZICVJEnKSiQS1NTUZO/VsOGGCcNrCTLASpIkZSWTSbbcsh6oZcMN63nt\ntaThtQQ5B1aSJCnrzjthwoQko0Y5baCUOQIrSZIENDbC978PBxxgeC11BlhJklT1rr8eDjkEfvAD\n+MtfDK+lzgArSZKq2h/+AFEERx8NyST06RN3RVoRA6wkSapal10Gxx4LJ50Ugmxvk1FZ8GOSJElV\n6aKL4OST4fTTQ5Dt1SvuitRVBlhJklRVWlvhnHPgrLPgF78IQdbwWl4MsJIkqWJFUURdXR1RFAEh\nvJ56KlxwAVx8cQiyhtfyYx9YSZJUkaIoIpVKkclkaG5u5sgjIwYOTPL738MVV8AJJ8RdoXrKACtJ\nkipSOp0mk8kAkMlkuOOONHPmwDXXwI9+FHNxWimFmkLwE+BF4OPs8SSwR4drzgemA3OBB4FNOjze\nH7gK+BCYA9wOrFWgeiVJUoVJJBLU1NQA0K9fDbNnJ7jxRsNrJShUgH0XOA0YBgwHHgbuBr6affw0\n4ATgGOCbwKfAP4B+Oa9xGVAPjAJ2AtYF7ihQvZIkqcIkk0n22quegQNrWbCgnnHjkhx6aNxVKR8K\nNYUg1eH+2YRR2W2A/wBjgAuAe7KPHwbMAPYDxgGDgQhoAB7NXnMk8Aoh8D5ToLolSVKFmDcPZs5M\nsmAB3Hkn7Ltv3BUpX4rRhaAPcBBhdPVxYGNgKPBQzjWzCaF0u+z94UDfDtdMAd7JuUaSJGmZZs+G\nPfaAhx+Gu+82vFaaQi7i+hrwFCG4zgMOBF4Hts8+PqPD9TMIwRZgbWABIdh2do0kSdJSMpkQXv/7\nX3jwQdh++xU/R+WlkAH2VWBLwnSA7wO3ADsv53q7sEmSpJXy7ruw224waxY89hhsuWXcFakQChlg\nFwL/zf48GRhBmAd7UfbcUNqPwg4FJmV/fh9YFRhE+1HYodnHOjVmzBiGDBnS7lxDQwMNDQ3d/w0k\nSVLZaGqCXXeFPn3giSdgk479jVRUjY2NNDY2tjs3a9asvLx2MUc9HwbeBI4itM/6LXBp9rFBhDB7\nOHArYdT2A8IirrbOA3WERVzbAs8u4/WHARMnTpzIsGHDCvQrSJKkUjR5Muy+O9TUwAMPwHrrxV2R\nlmXSpEkMHz4cwnqnSSu4vFOFGoH9FXAfoZ3W54CDgR2BC7OPjyV0JngNeIvQkWAacFf28Y+B6wgB\n9yNCH9grCf1klxVeJUlSlXr8caivh7o6uP9++MIX4q5IhVaoAFsD3ASsQwijLwK7E0ZhAS4BBgDX\nAEMI3Qn2ICzcavNToAX4G2Eh2Hjg2ALVK0mSytB998HIkWGh1l13wec+F3dFKoZCBdgfduGac7NH\nZz4Djs8ekiRJ7TQ2wmGHhdHXxkbo3z/uilQsxegDK0mSlFd/+AMcckg4brvN8FptDLCSJKlstLbC\nRRfBscfCiSdCMgmrFLKnkkqSAVaSJMUiiiLq6uqIoqhL17e2wqmnwllnwfnnw2WXQW+TTFXybxZJ\nklR0URSRSqXIZDI0NzcTRRHJZLLT6xcuhB/+EG66Ca64Ak44oYjFquQYYCVJUtGl02kymQwAmUyG\ndDrd6bWffAKjRsHDD4fFWgcdVKwqVaoMsJIkqegSiQTNzc1kMhlqampIJBLLvO6DD+B734MpU0KP\n1112KXKhKknOHJEkSUWXTCapr6+ntraW+vr6ZU4feOMNSCRg6lSYMMHwqiUcgZUkSbFY3pzXiRNh\nr71g8GB48knYeONwPooi0uk0iURiuc9XZXMEVpIklZQHH4Sdd4aNNoJ0un14TaVSNDU1kUqluty9\nQJXHACtJkkrGzTeHkdcddwyLtmpqljzWnYVfqmwGWEmSFLvWVvjtb+HQQ8Nx110wYED7axKJBDXZ\nRLu8hV+qfAZYSZIUq5YW+NnP4Oc/D5sUXHcd9O279HVdWfil6uAiLkmSFJvPPoMjjoBx4+Cqq8IW\nsctjaBUYYCVJUkxmz4b99w8LtW67DUaOjLsilQsDrCRJKrqpU8MGBW+/DQ88EBZtSV1lgJUkSUX1\nwgshvK6yCjzxBGyxRdwVqdy4iEuSJBXNfffBDjvAOuvA008bXtUzBlhJklQUV18Ne+8dtoR97LEQ\nYqWeMMBKkqSCammBU06B446DE06AO+5Yuser1B3OgZUkSQUzd+6SjQmuuCIEWGllGWAlSVJBzJgB\n++wD//pXCLB77x13RaoUBlhJkpR3r7wCe+0F8+fDhAkwfHjcFamSOAdWkiTl1SOPwPbbw8CB8Mwz\nhlflnwFWkiTlzU03we67w4gRocfrF78Yd0WqRAZYSZK00lpb4bzz4PDDw3HvvTB4cNxVqVI5B1aS\nJK2UefMgiuCWW+Cii+D006FXr7irUiUzwEqSpB6bPh322y90GrjtNhg1Ku6KVA0MsJIkqUeefx72\n3TeMtj7xBAwbFndFqhbOgZUkSd12662w446w/vrw3HOGVxWXAVaSJHVZS0tYrDV6NOy/Pzz6KKyz\nTtxVqdo4hUCSJHXJ3LlwxBFhrusvfwlnnOFiLcXDACtJklZo6tQw3/XVV+GOO8LoqxQXA6wkSVqu\nZ54JnQb69oV0GrbaKu6KVO2cAytJkjr117/CTjvBxhuHxVqGV5UCA6wkSVpKSwucfTYcckhYsPXI\nIzB0aOfXR1FEXV0dURQVr0hVLQOsJElqZ84cGDky7Kp18cVwww3Qr1/n10dRRCqVoqmpiVQqZYhV\nwTkHVpIk/c+UKWGB1tSp8Pe/w957r/g56XSaTCYDQCaTIZ1OF7hKVTtHYCVJEgD33APbbAOtrfDs\ns10LrwCJRIKamhoAampqSCQSBaxSMsBKklT1Wlrg/PNhn33g298OXQc226zrz08mk9TX11NbW0t9\nfT3JZLJwxUo4hUCSpKo2ezYcdhjcfXcIsWedBb17MLxlaFUxGWAlSapSr74a+ru+914IsPX1cVck\ndY1TCCRJqkJ33x3mu/buHfq7Gl5VTgywkiRVuNwerS0tcN55YVvYXXcN811ra+OuUOoepxBIklRm\noiginU6TSCRWOPe0rUdrJpNh5sxmNtooYurUJL/8JZx+es/mu0pxM8BKklRGcgNpc3MzURQtN8Tm\n9midOTNDc3OaVAr22qtYFUv5599dkiSVke5uGpBIJBg0KPRo7dOnhv33TxheVfYMsJIklZHubBqw\nYAEMHpxk9ux6Bg6spaGhnttv71q7q9x5s1KpcQqBJEllJJlMdmkO7NSpcOCB8PzzcMUVSY4/Hnr1\n6tp7dHeaglRsBlhJksrMisLkgw/CwQfDaqvBhAmw7bbde/3uTlOQis0pBJIkVYi2LWF33x2GDYNJ\nk7ofXqF70xSkOBhgJUmqAB9+GDoLnHdeOO67D9Zcs2evlUwmqa+vp7a2lvr6eqcPqOQ4hUCSpDL3\n9NPw/e/D/Pnwj3/Abrut/GsaWlXKHIGVJKlMtbbCFVfAt74FG2wAkyfnJ7xKpc4AK0lSGZo9G0aP\nhpNOghNOgMceg/XXj7sqqTgKFWDPAJ4DZgMzgDuBZe20fD4wHZgLPAhs0uHx/sBVwIfAHOB2YK3C\nlCxJUnl4+WUYMQLGj4fbb4dLL4W+feOuSiqeQgXYHYErgW8CuwF9gQeA1XOuOQ04ATgme92nwD+A\nfjnXXAbUA6OAnYB1gTsKVLMkSSWttRWuuQa22Qb69Qs9XkeOjLsqqfgKtYhrzw73jwA+AIYBTwC9\ngDHABcA92WsOI4zW7geMAwYDEdAAPJq95kjgFULgfaZAtUuSVHJmzYKjj4bbboNjjgmjrquvvuLn\nSZWoWHNgh2RvP8rebgwMBR7KuWY2IZRul70/nDBym3vNFOCdnGskSap4zzwDW28dOgzceiv88Y+G\nV1W3YgTY3sBYwsjrf7Ln1s7ezuhw7QxCsG27ZgEh2HZ2jSRJFaulBS65BHbYAYYOhRdeCO2ypGpX\njD6wVwFfAXbowrVd3KVZkqTKNmMGHH54GHU97TS44AIXakltCh1gfw/sRVjUNT3n/PvZ26G0H4Ud\nCkzKuWZVYBDtR2GH5jx/KWPGjGHIkCHtzjU0NNDQ0NCD8iVJKr6HHoJDDw0jsOPHh61hpXLT2NhI\nY2Nju3OzZs3Ky2sXasSzF6ELwb7AzsAby3h8GvBb4NLsuUGEMHs4cCthEdcHhEVcbZ0H6giLuLYF\nnu3wmsOAiRMnTmTYsGF5/FUkSSqOhQvDNrC/+hXssgv8+c+w9torfJpUNiZNmsTw4cMhrHWatILL\nO1WoEdirCMFzX0J7rLZ//WYB84FWwrzYs4HXgLcIHQmmAXdlr/0YuI4QcD8i9IG9EniSpcOrJEll\n7e234eCDw4Ktiy6CU0+F3m43JC1ToQLsjwkh9dEO548Absr+fAkwALiG0KXgcWAPwsKtNj8FWoC/\nEfrDjgeOLVDNkiTF4o474KijYPBgmDABtt8+7oqk0laoANvVvxnPzR6d+Qw4PntIklRRPv0UTj45\nbE4wciRcey18/vNxVyWVvmJ0IZAkSR08+yz84AcwbVro63r00dDLXjxSlzi7RpKkPIqiiLq6OqIo\nWubjixaFlljbbw9DhsDkyWFnLcOr1HUGWEmS8iSKIlKpFE1NTaRSqaVC7BtvwI47hk4DZ54J6TTU\n1sZTq1TOnEIgSVKepNNpMpkMAJlMhnQ6DUBrK9xwA5x4ItTUwOOPu1BLWhmOwEqSlCeJRIKamhoA\nampqSCQSzJwJo0ZBFIVtYF98sX14XdGUA0lLcwRWkqQ8SSaTRFFEOp0mkUhw0EFJvvY1+OwzuP32\n0GkgV9uUg0wmQ3NzM1EUkUwm4yleKiOOwEqSlEfJZJIXXpjC5z6XZPfdYYst4OWXlw6v0PmUA0nL\nZ4CVJCmPXnwRRoyAP/0JLr8cxo+Hdddd9rXLmnIgacUMsJIk5cHChXDhhSG8rrIKTJwYFm0tbzvY\nZDJJfX09tbW11NfXO31A6iLnwEqStJL+9S844gh44QU4/XT4v/+Dfv269lxDq9R9jsBKktRDixbB\nr38Nw4fDvHnw1FNhFLar4VVSzxhgJUnqgVdfhR12gLPOgp/+NEwZGDEi7qqk6mCAlSSpGxYvht/9\nDrbaCpqb4Yknwihs//5xVyZVDwOsJEld1NQUtoL9+c/huOPCnNfttou7Kqn6GGAlSVqBlpbQEmur\nreCDD2DChDAKu9pqcVcmVSe7EEiS1IkoinjkkTTz5iWYMSPJiSfCRRfBgAFxVyZVNwOsJEnLcOSR\nEbffnuKTTzL07t3MnntGXH65La+kUmCAlSSpg3/9C265Jc38+WGb15aWDG+84TavUqlwDqwkSVmf\nfQbnngvDhkG/fgmGDHGbV6kUGWAlSQKefBK23hp+9Ss44wyYMSPJ/vu7zatUipxCIEmqGlEUkU6n\nSSQS/wukc+aEwHr11bDNNjBpEmyxRbje0CqVJgOsJKkqRFFEKpUik8nQ3NxMFEWMHJnkxz8OGxKM\nHRt6u/bpE3elklbEKQSSpKqQTqfJZMKirEwmw223pamvD6Ot//43nHii4VUqFwZYSVJVSCQS1NSE\nRVm9etWwcGGCm2+G++6DDTeMuThJ3WKAlSRVhTPPTNK3bz1Qy8Yb1/Puu0kOOQR69Yq7MkndZYCV\nJJWlKIqoq6sjiqLlXjd/Ppx3XpgqsOqqSe67bwpvvJEkOxgrqQwZYCVJZadtQVZTUxOpVKrTEPvA\nA/C1r4XtX085Jcx13XPPIhcrKe8MsJKkstNxQVY63X6XrGnT4MADYffdYYMN4KWX4MILYfXV46hW\nUr4ZYCVJZSd3QVbuLlmLFoV2WJttBhMmwM03wz//Ge5LqhwGWElS2Ukmk9TXt98l66mn4BvfgJNP\nhsMPh1dfxUVaUoVyIwNJUllq2yVr5kw4+mi49toQYJ99NtxKqlwGWElSWWpthRtugFNPhYUL4aqr\n4Jhj3IxAqgZOIZAk5V1XW1z11PPPQyIBUQR77BGmCxx7rOFVqhYGWElSXnW1xVVPzJgBRx0F22wD\nn3wCjzwCf/4zrL123t5CUhlwCoEkKa9W1OKqJxYsgCuvhPPPh1VWCdMFfvSj8LOk6uMIrCQprzpr\ncdVT48fgJov2AAAZhUlEQVTDlluGua6HHgqvvQY/+YnhVapmBlhJUl4tq8VVT7z+Ouy9d9g5a511\nYPJk+P3vYY018lywpLLj36+SpLzraWgFmDMn7Jp12WUhuN52G4wcaT9XSUsYYCVJJeHIIyPuvz/N\nxx8n6NUrydlnw89/DqutFndlkkqNAVaSFLvvfS/igQdSLFqUoV+/ZvbZJ+Kcc3o+iiupsjkHVpIU\nm9dfh1Gj4L770ixaFDoXfPZZhhdeWPnOBZIqlwFWklR0H34IJ50Em28etn7dccf8di6QVNkMsJKk\nopk/H37zG9hkE7j+erjgApgyBR57LD+dCyRVB+fASpIKrqUFbrkFzjwTpk6FH/8Yzj0XsoOuwMp1\nLpBUXQywkqSCeuwxOOUUeP552G8/+Mc/oK4u7qoklTOnEEiSCuLVV2HffWHnnUMP1wkT4M47Da+S\nVp4BVpKUV9OmhSkCW2wBL74IjY3w9NPwrW/FXZmkSuEUAklSXsycCb/+ddjudfXVw8/HHw/9+8dd\nmaRKY4CVJK2UOXPCtq+//S20tsKpp8LJJ8PgwXFXJqlSGWAlST0yfz784Q9w0UUhxB57LJxxRvvO\nApJUCAZYSVK3LFoEN9wAv/gFvPceHHkknHMObLBB3JVJqhYu4pIkdUlLC4wbB1/5CvzoR5BIwH/+\nA9dea3iVVFwGWEnScrW2wn33wfDhcNBBsOmmMGlS2Jigtjbu6iRVo0IG2B2Be4BpQAuw7zKuOR+Y\nDswFHgQ26fB4f+Aq4ENgDnA7sFaB6pUk5WgLrttuC9/7HgwcGHq53nsvbL113NVJqmaFDLCrA5OB\n47L3Wzs8fhpwAnAM8E3gU+AfQL+cay4D6oFRwE7AusAdhStZktTaGkLqN78Zgusqq8ADD4Twai9X\nSaWgkIu4xmePZekFjAEuIIzSAhwGzAD2A8YBg4EIaAAezV5zJPAKIfA+U4iiJalatQXXX/wibPu6\nww7w4IOwyy5hJy1JKhVxzYHdGBgKPJRzbjYhlG6XvT8c6NvhminAOznXSJJWUmsr3H03jBgBe+8N\nq60G//xnGHHddVfDq6TSE1eAXTt7O6PD+RmEYNt2zQJCsO3sGklSD7W2wt//HhZn7bsvDBgADz8M\njz0G3/lO++AaRRF1dXVEURRfwZKUVWpdCPw7X5IKrLUV7rorBNf99gs7Zj3ySAiu3/720iOuURSR\nSqVoamoilUoZYiXFLq6NDN7P3g6l/SjsUGBSzjWrAoNoPwo7NOf5SxkzZgxDhgxpd66hoYGGhoaV\nLFmSytuiRaGP6/HHR8yalWbttRM8+miSnXZa/vPS6TSZTAaATCZDOp0uQrWSyl1jYyONjY3tzs2a\nNSsvrx1XgH2TEEJ3BV7KnhsEbENomwUwEViYvaat80Ad8EXgqc5eeOzYsQwbNqwAJUtSeZo3D66/\nHn7zG3jrrYhVV00BGRYvbubGGyN22im53OcnEgmam5vJZDLU1NSQSCSKU7iksrasAcRJkyYxfPjw\nlX7tQgbYAcCmOfe/BGwFzATeBcYCZwOvAW8ROhJMA+7KXv8xcB1wKfARoQ/slcCTwLMFrFuSKsKs\nWXD11TB2LMycCaNHQ0tLmnfe6d5oajKZJIoi0uk0iUSCZHL5gVeSCq2QAXYE8HD251ZCEAW4gdAe\n6xJCyL0GGAI8DuxBWLjV5qeETRD+RugPOx44toA1S1LZe++9EFr/8AdYsACOPBJOOQW+/GWIogSp\nVPdHUw2tkkpJJS2aGgZMnDhxolMIJFWlN94I0wRuuAFWXRWOPRZOOgnWWaf9dY6mSopLzhSC4SxZ\n99Rtcc2BlSTlyQsvwMUXw623wpprwrnnwk9+Ah3Ws/6PoVVSuTPASlIZammB+++HSy8NvVs32giu\nvDJMF1httbirk6TCMsBKUhmZOxduuinMcZ0yJeye1dgIo0bBKv4XXVKVKLWNDCSpqnW249X06XDW\nWbDBBnDccbDFFvDEE/DMM3DQQYZXSdXFACtJJWJZO15NngyHHRamCFxxRfj59dfh9tshkQi7ZrnN\nq6Rq49/sklQiOu54dcstaa6/Hr74Rfj1r+Goo8K2r7naQm8mk6G5uZkoilykJaniGWAlqUSMGJFg\n+vRmPvkkA9QwcGCCG2+E/ffvfIqA27xKqkYGWEmK2csvw1VXwV13Jfn004iBA9PstFOCVGrFI6lu\n8yqpGhlgJSkGCxbAnXeG4Pr442GzgVNOgaOPTrLuul1/Hbd5lVSNDLCSVETTpsGf/gTXXgvvvw87\n7QTjxoVpAn379uw1Da2Sqo0BVpIKrLUVHn20bZpA2Gjg0EPDVq9bbBF3dZJUfgywklQgs2bBzTfD\n1VfDK6/A5pvD5ZeH8DpoUNzVSVL5MsBKUh61toY5rf/v/8Ftt8HChbDffmH0deedQ99WSdLKMcBK\nUh7MmAE33gjXXQdNTfDlL8O558Lhh4cFWpKk/HEnLknqocWL4f77YeRIWH99OOccGDECHnkkhNjT\nT4ezznKXLEnKN0dgJamb3n4bkslwTJ0KX/saXHopHHIIrLHGkuvcJUuSCsMAK0ldMG8e3H13CK0P\nPggDBsDBB8MPfwjf+May57a6S5YkFYYBVpI60dIC6TTcdBPceivMng3bbRcWaB14IAwcuPznu0uW\nJBWGAVaSOnjtNfjzn8Px1luw0UZw4omh/VVtbddfx12yJKkwDLCSBHz0UdgR66ab4OmnQ5/WAw8M\noXWHHaB3D5e8GlolKf8MsJKq1oIFcN99IbSmUmHKwO67wy23wD77hB2zJEmlxwArqaosXgyPPRZC\n6t/+FkZet94aLrkEGhpg6NC4K5QkrYh9YCVVvJYWeOIJOP54WG892GWX0ElgvfUiNtywjq22ihgz\nZsXhNYrs6SpJpcAAK6kitbbCs8/Cz34GG24I3/oW3HVX6NX6zDPw7W9HvP9+irffbiKVSq0wlLb1\ndG1q6tr1kqTCcQqBpIrR2govvhgWY40bB2++GUZVv/99GD0att9+yWKsQw/tXo9We7pKUukwwEoq\na62t8MILcMcdcNttMGVK2A1r1KgQWnfaCfr0Wfp53e3Rak9XSSodBlhJZWfx4rDBwJ13huPtt2HV\nVSP690/z3e8mSKWS9O27/Nfobo9We7pKUukwwEpVrlxC2WefwT//GQLr3/8OmQysuy7stx+88UbE\nxIkpPvwww+TJzRxzTNSl36W7v28p//ORpGpigJWqWNvCpEwmQ3NzM1HUteBXLHPmhD6td94ZbufM\ngU03hSOPhAMOgBEjwpzWuro0H37o/FRJqhYGWKmKleLCpHffhdGjI156Kc28eQlaWpJsvTWceirs\nvz985SvQq1f75zg/VZKqiwFWqmKlEPwWLw5bt957bzheeikCUkCGAQOa2WuviFtvdX6qJGkJA6xU\nxeIKfh99BOPHh8A6fny4v+aasOee8MEHad5/P4wKf/pphhdf7NqosKFVkqqHAVaqcsUIfq2t8PLL\nS0ZZn3oq7I611Vbwk59AfX2Yz9qnD0RRglTK6QCSpM4ZYCUVRCYDDz0Utmx94AGYNg1WXx122w3+\n+EfYa6+wrWtHTgeQJK2IAVZSXsyfH3qzPvBACK2TJ4fzX/0qHHgg7L572FSgf/8Vv5ahVZK0PAZY\nST3SNi2gbYR1woQQYocODaOsY8bArruGXq2SJOWTAVZSl7S2wptvwqOPwiOPhOA6Y0YYUd1xR7jw\nwhBcv/a1pdtcOSVAkpRPBlhJy9TaCm+8EQLrY4+F26lTQzjdems4/HD47nchkVj+tIBS3yxBklR+\nDLCSgBBYX389BNW20DptWtjpatgwGD0adt4ZdtgBhgzp+uuW4mYJkqTyZoCVqtTixfDvf8OTT4b5\nq48+Cu+9FwLr8OFw8MFh0dUOO8DgwUue193pAKWwWYIkqbIYYKUqMXs2PPNMCKzpdNj9as6c0Ht1\n+HA49NAwwppIwKBBy36NnkwHsC2WJCnfDLBSBWpthf/+N4TVtuPll8P5NdaA7beHM84It9/4BgwY\n0LXX7el0AEOrJCmfDLBSD5XSqOKsWfD88/Dcc/DssyGwfvBBeGzzzUNQPemkcFtXt3SXgK5yOoAk\nqRQYYKUeiHNl/aefhk0CnntuyfH66+Gxz30uTAf44Q/DVIBttw0jrvnidABJUikwwEo9UKyV9Z99\nFr76zw2r//kPtLSE1lVbbw177gkjRoSjtjYswiokQ6skKW4GWKkHCvFV+syZ8OKL8MIL4XjxxRBW\nFy2CVVYJGwRsvz2ceGIIq1/9KvTtm4dfRpKkMmOAlXpgZb5Kb2kJGwS0hdS226lTw+OrrRbC6rbb\nwjHHhCkBW24ZzkuSJAOs1GMrCq2traGv6r//HUZS//1v+Ne/4KWXwjxWgHXWga22gh/8INx+/euw\n6aahtRWEubaXX+58U0mSchlgVfJKfdFQaytMn74kpLYF1v/8J3QHgDBfdbPNwtf+BxwQgurXvw5r\nrdX567oFqyRJy2aAVUkrpRA3f3746v+116CpKRxtQfXjj8M1/fuHtlVf+QrU14fA+pWvwMYbLxlV\n7Sq3YJUkadkMsCppxQ5xixbB22+3D6ltP7/9dhhthdCuqrY2hNW99w5B9atfhY026n5Q7Yw9VyVJ\nWjYDrEpaIULcxx/Dm2+GnarefHPJ8d//hhHWhQvDdf36wSabhKA6enSYm1pbG4611ur5ZgBdZc9V\nSZKWzQCrktaTEPfJJ/Duu/DWW+0DatvR3Lzk2tVXD1/vb7wxfPe7SwJqbS2sv37+RlN7ytAqSdLS\nDLAqebkhbt68EE6nTg23bUfu/baFUxD6p264YQiow4fDqFFLAuvGG0NNTeFHUiVJUn6VS4A9Dvg5\nMBR4ETgBeC7WipRXc+fC+++HtlPLup0+PYTTmTPbP6+mJoyUbrAB7Ljjkp832CDMR11vvfhHUYvJ\nKQeSpGpQDgF2NPA74BjgGeCnwD+AOiATY11ajsWL4aOPIJOBDz9sf5vJwIwZ7UPqnDntn7/qqrD2\n2qFP6tprh6b+3/9+CKZtIXX99cOqfwWl1LFBkqRCKocAezJwDXBj9v6Pge8BEXBxXEWVg3yMxi1e\nHBY9NTeHr+abm5c+Pvpo6ZD60UdLVuy36d0b1lwzHGuvHQLoiBHtg2rb7ec/71f73WXbLUlStSj1\nALsqMAz4Zc65VuAhYLtCvWm5fw3b2gpHHBFx770pZs7MkMk0k8lEnHBCkjlzwmjn7Nl0+nNuUJ09\ne+kgCiFcDh4cguYaa4Sv8jfaKATSmpoQUjvefv7zIcSqMGy7JUmqFqUeYNcE+gAzOpz/ANisEG/Y\nk69hW1vD/vaLFoUWTG1H7v1lPbZgAXz2WWiQ/9lnS/+8rPtz5y45Pv20/f3co6UlTdsMi+bmDKlU\nmlRqSc39+4depoMGhdu2Y621oK4uhM3Pfx6GDFnyc+4xaFBph9FS/COk0DXZdkuSVC1KPcCutBde\ngIaGEDK7ckyfnmbRoiVfw954Y5q77w4BdfHiJbe5Py9rhLKnevUK/Ufbjv79299ffXUYMCDcfuEL\n4Tb3aHvsL39J8MILzcyenWHIkBp23jnB2LFLgmrfvvmrudSU4lzQYtUU9+8pSVIxlHqA/RBYTOg+\nkGso8N6ynjBmzBiGDBnyv/tz58KXvtTA5ps3/G9OZa9enR+pVILXXmtm7twMq69ew2abJRg1Kqxk\n79MnjDp2/Ll3b7jxxojXX09TV5fghBOS9O0bQuIqq9Dpz6uuunRA7ds3P3M/jz66ekfjSnEuaCnW\nJElSITU2NtLY2Nju3KzcXpcrodQD7AJgIrArcHf2XG9gF+CKZT1h7NixDBs2rMdveOGF3Q9+URQx\nZUoYXVu8uJl77y3M6Fp36yrV0FroYF2Kc0FLsSZJkgqpoaGBhoaGducmTZrE8OHDV/q1y2Gd94GE\nDgTHEHq/jgFGEebA5rbRGgZMnDhx4koF2J6oq6ujqanpf/dra2uZMmVKXt8j9yvompoa6uvrSzag\nLk+xfo9SHH0uxZokSSqmnAA7HJjU09cp9RFYgFuBGuB8YG1gMrAHXewBW4zQUIzRtUr5CrpYv0cp\nBsRSrEmSpHJUwuvI27kK2AjoT2if1aVduNpG+5qamkilUkRRVJDikskk9fX11NbWFmxEMZFIUFNT\nA1DWX0FXyu8hSZLiUy4BtkeKOWqZTCaZMmVKwUbZihGSIYT+urq6sg77PVHo31uSJOVPOUwh6LFK\nWzhT6LBXra2eSrHtliRJ6lxFj8CW6mhfqaqUebbdVa2/tyRJ5aqiR2Ch9Eb7SlmljVh3VbX+3pIk\nlauKHoFV9/RkxLoS5o46Ui9JUnmp+BFYdU93wlslzR0t17olSapGjsCqx5w7KkmS4mCAjUklfPVu\nT1dJkhQHA2wMirXBQqE5d1SSJMXBObAxqKSv3g2tkiSp2ByBjYFfvUuSJPWcATYGfvUuSZLUc04h\niImhVZIkqWccgZUkSVJZMcBKkiSprBhgJUmSVFYMsJIkSSorBlhJkiSVFQOsJEmSyooBVpIkSWXF\nACtJkqSyYoCVJElSWTHASpIkqawYYCVJklRWDLCSJEkqKwZYSZIklRUDrCRJksqKAVaSJEllxQAr\nSZKksmKAlSRJUlkxwEqSJKmsGGAlSZJUVgywkiRJKisGWEmSJJUVA6wkSZLKigFWkiRJZcUAK0mS\npLJigJUkSVJZMcBKkiSprBhgJUmSVFYMsJIkSSorBlhJkiSVFQOsJEmSyooBVpIkSWXFACtJkqSy\nYoCVJElSWTHASpIkqawYYCVJklRWDLCSJEkqKwZYSZIklRUDrCRJksqKAVaSJEllxQArSZKkslKo\nAHsW8CQwF2ju5JovAvcCnwIzgEuAPh2u2RJ4HJgHvAP8vBDFqjw1NjbGXYKKyM+7uvh5Vxc/b3VX\noQJsX2AccHUnj/chhNdVgO2Aw4EjgPNzrhkEPAC8CQwjhNfzgB8VomCVH/+DV138vKuLn3d18fNW\nd61SoNc9L3t7RCePfxfYHPgOkAFeAv4PuBg4F1gEHJKtL8refwXYCjgZuLYwZUuSJKnUxTUHdjtC\naM3knHuAMOr61ZxrJhDCa+41dcDgItQoSZKkEhRXgF2bMO8114ycx7p6jSRJkqpMd6YQ/Bo4dQXX\nbAY0dfH1eq3g8dYuvk47r7zySk+epjI0a9YsJk2aFHcZKhI/7+ri511d/LyrR75y2opCZK41gTVW\ncM2bwMKc+0cAlwGf73DdL4B9gK1zzm0MvJE99yJwI2FKwf4513wb+Gf29T7u8JrrAM8B662gRkmS\nJMVnGjACeK+nL9CdEdgPs0c+PEVotVXDknmwuxFC6X9yrvlltsZFOde8ytLhFcI/hBGEICtJkqTS\n9B4rEV4L6YuEjgHnALOBr2fvD8g+3puwiGs8odfr7oT5rRfmvMYgwi93I2Fh12jgE+CHhS9fkiRJ\n1eYGoCV7LM653THnmtyNDD4gbGTQcVHZ1widCNzIQJIkSZIkSZIkSZIkSZIkSZXoOOAtwnzZpwkd\nCVR5ziC0S5tNWPh3J1Aba0UqptMJc+ovi7sQFcx6wM2ErjdzCQt+h8dakQplFeBXhBacc4HXgbNj\nrUj5tCNwD6FlVguw7zKuOR+YTvj8HwQ2KVp1JWI0MB84nLCZwp+AjwhtulRZ7gcOAzYndLBIEf5w\nWT3GmlQcI4D/Ai8Al8Zciwrj84R/n68DvgFsCOwKfCnGmlQ45xBaae5JWNg9kjA4cUKcRSlv9iAE\n1P0IAXafDo+fBjQDexMW7d9F2A+gXxFrjN0zwBU593sBUwn/cFTZ1iT8i7FD3IWooAYCU4DvAI9g\ngK1UvwYei7sIFc09wLUdzv0NuCmGWlRYHQNsL0Kr1JNzzg0ifIs+uisv2LFtVTlaFRgGPJRzrjV7\nf7tYKlIxDcnefhRrFSq0qwij7Q/TvR0EVV72ASYCtxGmCE3C3t+V7H7CCPum2ftfBxLZ86psGwND\naZ/dZhMGJLuU3bqzE1epWhPoQ/iPXa4PCNMJVLl6A2OBJ1iyg5sqz0GEjVDa5rW3xliLCutLwE+A\n3xE2ttmG8O3aAhyVq0RXE6YOTCHsuNkHOBNojLMoFcXa2duO2W1GzmPLVQkBVtXrKuArOH2gkm0A\nXE4YpVmQPdcLR2ErVW/gWZYs5HkR2AL4MQbYSnQiYe3KQcC/ga0JgxLv4eddrXoRphtUhVWBhSw9\nOfhGwgp1VabfA28TFnmocrVN/l+Yc7Tt7LcAg2yleQu4psO5nxDWNKjyzACO7XDuLOCVGGpRYXWc\nA/ul7LktO1z3GF3sMlMJc2AXEOZM7ZpzrjewC/BULBWpkHoRwuu+hAU9b8dbjgrsIcII3Nezx1bA\n84Q2S1vhdIJKk2bpqV+1hGCrytOL8Mdorhb8w7QavAm8T/vsNogwbaiqstuBhJVrbe2V/gTMxDZa\nlehqQtuNHQnzZNqO/nEWpaJ6FPvAVqpvEAYlziD0gzwY+ARoiLMoFcw1wLvAXsBGwP6E9Su/irEm\n5c8AwkDDVoQ/TMZkf94g+/iphAXYuW20Xid8s15V2jYymE9I725kUJnavj5u6XAcFmdRKirbaFW2\n7xE2L5hHmBd5VLzlqIAGAL+l/UYG5+P6nEqxM0v+H537/+1kzjW/IMx5ngc8QBVuZCBJkiRJkiRJ\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkqQq9P8BZ4zJrRYxcsQA\nAAAASUVORK5CYII=\n", "text/plain": [ "<matplotlib.figure.Figure at 0x1145bda90>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "noisy_z = z + pl.randn(z.size)*10\n", "pl.clf()\n", "pl.plot(t,z)\n", "pl.plot(t,noisy_z,'k.')" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/antares/.virtualenvs/rep_open/lib/python2.7/site-packages/ipykernel/__main__.py:1: RuntimeWarning: invalid value encountered in log\n", " if __name__ == '__main__':\n" ] }, { "data": { "text/plain": [ "<matplotlib.text.Text at 0x1145be110>" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<matplotlib.figure.Figure at 0x1145fc310>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "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)\")" ] }, { "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", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ nan 0.74512165 nan nan nan 0.9106614\n", " nan nan nan 2.68932044 nan nan\n", " 3.20935639 nan 2.81780589 1.87169163 3.8687786 3.39443131\n", " 3.5205457 3.78231641 3.88872194 4.02081479 4.01581931 4.22081337\n", " 4.43848445 4.42729922 4.57261538 4.60220821 4.93423776 4.86777401\n", " 5.00886475 5.06218506 5.10908534 5.22825717 5.20480901 5.40768572\n", " 5.41542012 5.38449563 5.46888933 5.65561975 5.63004671 5.74086149\n", " 5.79958415 5.8484056 5.89446846 5.93541789 6.01796653 6.03030439\n", " 6.14091366 6.17858711]\n" ] } ], "source": [ "print noisy_y" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ nan nan]\n" ] } ], "source": [ "# try to polyfit a line\n", "pars = np.polyfit(x,noisy_y,1)\n", "print pars" ] }, { "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", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "True\n", "False\n" ] } ], "source": [ "print 1 == 1\n", "print np.nan == np.nan" ] }, { "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", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[False True False False False True False False False True False False\n", " True False 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" ] } ], "source": [ "OK = noisy_y == noisy_y\n", "print OK" ] }, { "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", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "There are 40 OK values\n", "masked_noisy_y has length 40\n" ] } ], "source": [ "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)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 1.92798706 1.41401524]\n" ] } ], "source": [ "# now polyfit again\n", "pars = np.polyfit(masked_x,masked_noisy_y,1)\n", "print pars" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[<matplotlib.lines.Line2D at 0x114b3e8d0>]" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<matplotlib.figure.Figure at 0x11498e390>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# cool, it worked. But the fit looks a little weird!\n", "fitted_y = polyval(pars,x)\n", "pl.plot(x, fitted_y, 'r--')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The noise seems to have affected our fit. " ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "<matplotlib.text.Text at 0x11497c390>" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nj+YMbOcAAAAASUVORK5CYII=\n", "text/plain": [ "<matplotlib.figure.Figure at 0x114b586d0>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 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')" ] }, { "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", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "<matplotlib.text.Text at 0x114d68910>" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\ngg==\n", "text/plain": [ "<matplotlib.figure.Figure at 0x114bab950>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "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')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#Tricks with Arrays\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", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# 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]" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "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" ] } ], "source": [ "# 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()" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "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" ] } ], "source": [ "# 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()" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "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" ] } ], "source": [ "# 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()]" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1.5387392589011231, 1.5387392589011231, 1.5387392589011231, 0.76936962945056153]\n" ] } ], "source": [ "# 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" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 1, 2, 3, 4, 5]\n", "[0, 1, 4, 9, 16, 25]\n" ] } ], "source": [ "# Confused? OK. Try this one:\n", "print range(6)\n", "print [ii**2 for ii in range(6)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#Further info on IPython Notebooks\n", "\n", "| Overview | link |\n", "|--------------------------------------|------------------------------------------------------------------------------------|\n", "| Blog of IPython creator | http://blog.fperez.org/2012/09/blogging-with-ipython-notebook.html |\n", "| Blog of an avid IPython user | http://www.damian.oquanta.info/index.html |\n", "| Turning notebook into a presentation | https://www.youtube.com/watch?v=rBS6hmiK-H8 |\n", "| Tutorial on IPython & SciPy | https://github.com/esc/scipy2013-tutorial-numpy-ipython |\n", "| IPython notebooks gallery | https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks |\n" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " <iframe\n", " width=\"600\"\n", " height=\"400\"\n", " src=\"https://www.youtube.com/embed/xe_ATRmw0KM?color=blue&theme=light\"\n", " frameborder=\"0\"\n", " allowfullscreen\n", " ></iframe>\n", " " ], "text/plain": [ "<IPython.lib.display.YouTubeVideo at 0x114b58810>" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo(\"xe_ATRmw0KM\", width=600, height=400, theme=\"light\", color=\"blue\")" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " <iframe\n", " width=\"600\"\n", " height=\"400\"\n", " src=\"https://www.youtube.com/embed/zG8FYPFU9n4?color=blue&theme=light\"\n", " frameborder=\"0\"\n", " allowfullscreen\n", " ></iframe>\n", " " ], "text/plain": [ "<IPython.lib.display.YouTubeVideo at 0x114b580d0>" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo(\"zG8FYPFU9n4\", width=600, height=400, theme=\"light\", color=\"blue\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.8" } }, "nbformat": 4, "nbformat_minor": 0 }