{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "More on Modeling the Last Flight of MH370 with Monte Carlo - Part 2/3" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Conor L. Myhrvold" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "------------------------------------------------------\n", "\n", "
Harvard University, SEAS, IACS , Computational Science & Engineering (CSE)
\n", "AM207 : Advanced Scientific Computing: Stochastic Optimization Methods. Monte Carlo Methods for Inference and Data Analysis
\n", "Final Project, Spring 2014. Current as of March 31.
\n", "\n", "------------------------------------------------------\n" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "For the first version of the model, with runways, see: IPython Notebook Link" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "For articles about this first work, see Fast Company Labs' :\n", "\n", "\n", "How I Narrowed Down The Location Of Malaysia Air Using \"Monte Carlo\" Data Models\n", "
\n", "\n", "\n", "More About Our Methodology: Tracking MH370 With Monte Carlo Data Models \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "------------------------------------------------------\n", "Contact Info:\n", "\n", "conor.myhrvold@gmail.com\n", "\n", "Twitter: @conormyhrvold\n", "\n", "LinkedIn: www.linkedin.com/pub/conor-myhrvold/37/583/a7/ \n", "\n", "Fast Company Labs Contributor Page \n", "\n", "------------------------------------------------------" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Different Distributions Besides Normal for the Heading -- Von Mises and Wrapped Cauchy" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Our normal heading distribution was great for a lot of reasons (including its ability to act like a uniform distribution if you pump the standard deviation up.) *But*, now it's time to consider a few other distributions as well, ones more exotic than our 'plain vanilla' one (well, the normal one that people use!) I'll pick ones that are popular to do along a unit circle; since our heading choice will be along a circle." ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "First, let's try a Von Mises distribution for our heading. Here's a general function that can do that:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\"\"\"\n", "takes in angle and heading in degrees (note conversion to radians in function)\n", "k goes from 0 to infinity and is a point at infinity, and a uniform distribution at 0\n", "\"\"\"\n", "def von_mises(angle,heading,k):\n", " return np.exp(k*np.cos(np.radians(angle)-np.radians(heading)))/(2*np.pi*np.i0(k))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 48 }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Let's test this function to see if it works. We'll test in with a heading of 150 degrees (which means that the curves should be centered at 150, i.e. the mean should be 150):" ] }, { "cell_type": "code", "collapsed": false, "input": [ "circle_test = []\n", "\n", "for i in xrange(360):\n", " circle_test.append(von_mises(i,150,0))\n", " \n", "plt.figure()\n", "plt.plot(circle_test)\n", "plt.title('k=0 -- should be uniform')\n", "plt.show()\n", "\n", "circle_test2 = []\n", "\n", "for i in xrange(360):\n", " circle_test2.append(von_mises(i,150,1))\n", "\n", "plt.figure()\n", "plt.plot(circle_test2)\n", "plt.title('k=1 -- should be bell curve')\n", "plt.show()\n", "\n", "circle_test3 = []\n", "\n", "for i in xrange(360):\n", " circle_test3.append(von_mises(i,150,10))\n", " \n", "plt.figure()\n", "plt.plot(circle_test3)\n", "plt.title('k=10 -- should be contracting/converging toward a point')\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAfQAAAFeCAYAAABzUe0CAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X90VPWB///XZAImCwxg8AfFH9QNiXhMFCoEZsLEESXh\ncAiEEg8uYMWYPcGzrDUpPT3q7kLrSugWPmVXrIqQUn+gp1s7yA8LYTcJNENYB/lRigRIgs0avwL2\nnGTCiEOY+/2Dw0hIGBDCwrzn+TiHc7w/835xDa9778zcsVmWZQkAAMS0hGs9AAAAcOUodAAADECh\nAwBgAAodAAADUOgAABiAQgcAwAAUOnCe6upqZWRkfOvtNmzYoPvuu0933323Hn30UQUCgaswujOG\nDh2qjz/++Krv7z//8z/l8Xi6zK+urtbw4cN77OdfqpaWFrlcLklSW1ubXC6XMjIy9Pvf//7/fCzA\n9YZCB3rAsWPH9OSTT+r999/XgQMHdNddd+knP/nJVft5NptNPfkICZvN1mP7upq+853vqLa2VpK0\ne/duHT16VH/6059UUFBwjUcGXHsUOhDFH//4Rw0dOlR1dXX6r//6L40YMaLTn5EjR2rz5s3avHmz\nRo8erb/927+VJM2dO1dvv/32Ff/8X/3qV7r//vs1evRoud1uffLJJ5Flr732mkaNGqU777xTL7zw\nQmT+66+/royMDN1///3Kzc3VoUOHJElPPPGElixZElnv/Omz/vmf/1mpqanKysqKeuV74sQJPfro\noxoxYoQ8Hk/k54RCIT377LP63ve+p/vvv19z5szp9m7FggULNG/evG6nH3zwQT333HPKycnRd7/7\nXT3++OOyLEtHjhxR3759dfDgQT355JP67LPPNHLkSJ08eVJer1cjR47Ufffdp3Hjxumjjz6K7Dc3\nN1f33XefZs+erYULF2r27NlyuVz67ne/qxkzZmjVqlXKycnRHXfcoXffffeSjg1wvUm81gMArldV\nVVX6+7//e61fv1733nuvJGnXrl3drlteXq7bbrstMj1kyBC1tbWpvb1dffv2vayff/r0aT377LP6\n9NNPdcstt+itt95SbW1t5FZ3cnKyPvroI33xxRcaOnSo5s6dq/r6ev3bv/2b6urqlJKSotWrV2vq\n1Kn685//LJvN1ulK/PxpSVq7dq3ef/997dmzR0lJSfr+979/wav3lpYWlZaWasyYMVqxYoVmz56t\nuro6lZeXq1evXtq5c6ck6bnnntNPfvITLV++vNP25+/33PHYbDY1NjaqpqZG7e3tuvvuu7V161bd\neeedstlsSktL08qVK/UP//AP+vjjj3XgwAHNnTtX27dv19ChQ1VVVaUpU6aovr5ektTc3Kx9+/Yp\nISFBCxYsUG1trfbs2aNevXppyJAhuv3221VTU6MPPvhA8+fP14wZMy7rmAHXElfoQDeam5s1efJk\nFRQURMp8y5YtXa7QR4wYoc2bN1/w9rfdbr/sMdjtdhUWFmrs2LGaN2+e+vfvryeffDKy/O/+7u8k\nSbfccotuueUWffHFF/rDH/6gGTNmKCUlRZL0gx/8QJ999pmOHDkiSVFv01uWpS1btuj73/+++vTp\nI7vdrqKiogtuk5mZqTFjxkR+jt/vV1tbm9avX6+1a9dG/n7Wrl3b6c7CpZo8ebIkqW/fvkpNTdVf\n//rXLuM967//+7/18MMPa+jQoZIkj8ejm2++WTt37pTNZtOYMWOUkHDmnzubzaZHHnlE/fr1U1JS\nkr7zne8oLy9PknTXXXd1+TlArOAKHehGr1699Ic//EH5+fkqLCzUqFGj9PDDD1/wCv3YsWPasWNH\nZPqzzz7TwIEDlZyc3Gm9f/mXf9EHH3wgScrPz5ekyPSUKVO0YMGCTuu/+eab2r9/vyorK7V48WKt\nXLlSXq83Msazzr6mfvbPuSzL0qlTp7q87v711193yZGQkKBwOByZjnZCcv4ym82mXr16KRwO69//\n/d+Vm5srSWpvb9fJkye7bH+x8Zz7d3ex9wx0lzscDuvUqVOSpD59+nRa1rt3707T5/5dArGKK3Sg\nG7feeqvGjBmjX/ziF5o1a5a++uqrqOs/8sgjqqur0+HDhyVJr776qqZOndplvYULF2rXrl3atWuX\nFi5c2Gn6/DI/fvy47rjjDt1444165pln9LOf/Ux79+694BhsNptyc3P13nvv6fjx45KkiooKDRo0\nSKmpqbrpppvk9/sj+/7jH//YZfu8vDz99re/VWtrq8LhsN58880L/rw9e/Zo9+7dks68nj9u3Dgl\nJycrNzdX//Ef/6FQKKRwOKySkhI999xzXba/6aabIrflT5w4oc2bN3da/m3e9OfxeLR582Y1NTVJ\nOnPF/r//+78aM2ZMtyc4gIm4Qge6cfa13Mcff1y/+93v9KMf/ajLa8Dnuvnmm1VRUaHp06crFAop\n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\nAAAMQKEDAGAACh0AAANQ6AAAGIBCBwDAABQ6AAAGoNABADAAhQ4AgAEodAAADEChAwBgAAodAAAD\nUOgAABggaqGHw2GVlJTI6XTK4/GooaGhyzrBYFAul0v19fWReSNHjpTH45HH41FRUZEk6ejRo5oy\nZYpycnLkdrt15MiRnk0CAEAcS4y20Ov1KhQKyefzaceOHSorK5PX640s9/v9KikpUUtLi2w2myTp\n5MmTkqSqqqpO+/rxj3+s2bNna/r06aqurta+ffs0dOjQHo4DAEB8inqFXltbq7y8PElSVlaW/H5/\np+WhUEher1fp6emReXv27FEwGFRubq7Gjx+vHTt2SJJ8Pp+am5v1yCOP6O2339ZDDz3U01kAAIhb\nUQu9ra1NDocjMm232xUOhyPTTqdTt912W6dt+vTpo/nz52vTpk169dVXNXPmTJ0+fVpHjhzRjTfe\nqMrKSt1xxx1avHhxD0cBACB+Rb3l7nA4FAgEItPhcFgJCdHfR5eWlqbU1FRJ0rBhw5SSkqLPP/9c\nKSkpys/PlyRNnjxZzz///MUHl2hX//7JF10v1iQm2iXJyGwS+WId+WKXydmk+Ml3uaK2s8vl0saN\nGyVJdXV1yszMvOgOKyoqVFZWJklqaWlRIBDQ4MGDlZ2drQ0bNkiSampqdO+9917RwAEAwDdslmVZ\nF1poWZaefvpp7d27V9KZst65c6fa29tVXFwcWc/j8ei1115TWlqaOjo6NGfOHH366aeSpJ///Oca\nM2aM/vKXv+ipp57SiRMnNGDAAL3zzjvq379/1MGFQh1qbf2qJ3JeV86eXZqYTSJfrCNf7DI5mxQf\n+Xr3jnrjPKqohX6tUeixiXyxjXyxy+RsUnzku5JC58EyAAAYgEIHAMAAFDoAAAag0AEAMACFDgCA\nASh0AAAMQKEDAGAACh0AAANQ6AAAGIBCBwDAABQ6AAAGoNABADAAhQ4AgAEodAAADEChAwBgAAod\nAAADUOgAABiAQgcAwAAUOgAABqDQAQAwAIUOAIABKHQAAAxAoQMAYAAKHQAAA1DoAAAYgEIHAMAA\nUQs9HA6rpKRETqdTHo9HDQ0NXdYJBoNyuVyqr6+PzBs5cqQ8Ho88Ho+Kioo6rf/OO+/I6XT20PAB\nAIAkJUZb6PV6FQqF5PP5tGPHDpWVlcnr9UaW+/1+lZSUqKWlRTabTZJ08uRJSVJVVVWX/e3atUur\n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\n", "text": [ "