Created
October 13, 2014 02:18
-
-
Save rlabbe/84cf67e8f2c3d5472035 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"worksheets": [ | |
{ | |
"cells": [ | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "\n## Integrating an ODE using `odeint`\n\nconsider the toy ODE boundary value problem:\n\n$$\\frac{d^2\\Psi}{dx^2} + [100-\\beta]\\Psi = 0, x\\in[-1,1]$$\n\nwhere we have the boundary conditions of\n$$\\Psi(1) = 0\\\\\n\\Psi(-1) = 0$$\n\n\nI will adopt the notation $\\Psi_{XX}$ to denote the second derivative through the rest of this notebook.\n\nThis is a second order system (second derivative), but we only know how to solve first order ODEs via Runge Kutta or such. Where 'we' = all mathematicians in the world. It is the one trick we know how to do on computers.\n\nHence, let's reduce this to a system of first order equations, and then solve them.\n\nDefine some new variables:\n\n$$y_1 = \\Psi \\\\\ny_2 = \\Psi_X$$\n\nNow take their derivative to get first order equations:\n\n$$\\begin{aligned}y'_1 &= y2\\\\ y'_2 &= \\Psi_{XX} \\end{aligned}$$\n\nNow substitute for $Y_{XX}$ using the original equation so that we have eliminated the second order terms from the equations:\n\n$$\\begin{aligned}y'_1 &= y2\\\\ y'_2 &= [\\beta-100]\\Psi\\end{aligned}$$" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Now that is done, we can pass this system of first order equations into scipy's odeint function to solve these equations.\n\nNext problem: odeint just uses Runge Kutta (or a similar integrator) to iterate from the first value to the last value. The boundary conditions give our start point, but we have no way to specify the ending point.\n\nLet's look at an example:" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"input": "%matplotlib inline\nimport matplotlib.pyplot as plt\nimport scipy.integrate as integrate\nimport numpy as np\n\n# define range for x to take\nxs = np.linspace(-1, 1, 100)\n\n# initial condition for y'_1 and y'_2 to take. A complete guess\nsystem_eq = (0,1)\n# beta in the equation - a complete guess\nbeta = 99\n\n# function used by odeint. Takes in the values for the system of equations, the current\n# time, and a list of optional values (in this case beta), and returns tuple for the\n# value of the systems of equations computed for this time step.\ndef f(ys, t, beta):\n y1 = ys[0]\n y2 = ys[1]\n return [y2, (beta-100)*y1]\n\n# perform integration\nz = integrate.odeint(f, system_eq, xs, args=(beta,))\n\n# plot the results\nplt.plot(xs, z[:,0])\nplt.ylabel('$\\Psi$')\nplt.xlabel('X')\nplt.show()", | |
"prompt_number": 2, | |
"outputs": [ | |
{ | |
"text": "<matplotlib.figure.Figure at 0x7f54602cea90>", | |
"output_type": "display_data", | |
"png": "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\nEZG0/h87zatqsnQnWwAAAABJRU5ErkJggg==\n", | |
"metadata": {} | |
} | |
], | |
"language": "python", | |
"trusted": true, | |
"collapsed": false | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "That's a fair amount of code to throw at you. The heart of the problem is that you have to write an evaluation function that takes a tuple of the current value of the system equations, time, and any additional arguments that you might need. You evaluate the system equations for that time step, and return them in a tuple. We do this in the function `f()`.\n\n def f(ys, t, beta):\n y1 = ys[0]\n y2 = ys[1]\n return [y2, (beta-100)*y1]\n \nThe rest of the code is mostly boilerplate. This gives us a range of values for x. I use 100 points just so we can plot the differential equation with a fair amount of fidelity; it does not affect the precision of the ode integration.\n\n xs = np.linspace(-1, 1, 100)\n \nWe need to define the values for the system of equations. We have two equations, so we will need a tuple with two elements in it. We have no idea what the correct values are, so we fairly arbitrarily choose 0 and 1.\n\n system_eq = (0,1)\n \nFinally, we have to choose $\\beta$. Our equation is $$\\Psi_{XX} = [\\beta-100]\\Psi$$. This is one of the very few ODE's we can solve analytically, and we know the answer is $e^{(100-B)X}$. The power will be positive if $\\beta >100$, and that will never reach our second boundary condition of $\\Psi(1) = 0$. Therefore we set $\\beta$ to an arbitrary value less than 100.\n\nFinally, we integrate using the function `scipy.integrate.odeint`. The first parameter is the name of the function that performs the evaluation on the system of equations. The second parameter is the initial conditions for the system of equations. The third parameter is the range of values for $X$. Our function needs to take $\\beta$ as an input, so we use the optional `args` parameter to provide `beta` to the function.\n\n z = integrate.odeint(f, system_eq, xs, args=(beta,))\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## Shooting Method to find second boundary condition\n\nSo we have integrated our ODE, but we can see that we did not achieve the boundary condition $\\Psi(1)=0$. Instead, it looks like $\\Psi(1)\\approx 0.9$.\n\nAll that is left is to vary beta to find the value for which $\\Psi(1)=0$. We will define an initial step size for $\\beta$\n\n d_beta = 1\n \nand then write a for loop that searches for the correct value. " | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"input": "d_beta = 1\nbeta = 99\ntolerance = 1.e-4\nsystem_eq = (0,1)\n\nfor j in range(1000):\n z = integrate.odeint(f, system_eq, xs, args=(beta,))\n x = z[-1,0]\n if abs(x) < tolerance:\n break;\n\n if x > 0:\n beta -= d_beta\n else:\n d_beta /= 2\n beta += d_beta\n \n# plot the results\nplt.plot(xs, z[:,0])\nplt.ylabel('$\\Psi$')\nplt.xlabel('X')\nplt.show() ", | |
"prompt_number": 3, | |
"outputs": [ | |
{ | |
"text": "<matplotlib.figure.Figure at 0x7f544812ada0>", | |
"output_type": "display_data", | |
"png": "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\n", | |
"metadata": {} | |
} | |
], | |
"language": "python", | |
"trusted": true, | |
"collapsed": false | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "This is a really naive implementation because the ODE has multiple solutions, and we only find the first one, but the point was just to document the use of `odeint`, not to make an industrial strength solver. For example, this is what the equation looks like with $\\beta=40$" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"input": "beta = 40\nsystem_eq = (0,1)\n\nz = integrate.odeint(f, system_eq, xs, args=(beta,))\n \n# plot the results\nplt.plot(xs, z[:,0])\nplt.ylabel('$\\Psi$')\nplt.xlabel('X')\nplt.show() ", | |
"prompt_number": 8, | |
"outputs": [ | |
{ | |
"text": "<matplotlib.figure.Figure at 0x7f5448190860>", | |
"output_type": "display_data", | |
"png": "iVBORw0KGgoAAAANSUhEUgAAAZYAAAEPCAYAAABhkeIdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XecFvW1P/DPgQUBNSKIIC2gggoiYEE6SxNEVIyxJ3o1\nUW7uVa8tMYn5JXhz49WYxEiMLTFeW2yxAALSF+mwKEXpSEcBFaQjC+f3x3keXZctT5mZ75TP+/Xa\nl/vszjNzeJydM3O+TVQVREREXqnmOgAiIooXJhYiIvIUEwsREXmKiYWIiDzFxEJERJ5iYiEiIk+F\nIrGIyEARWSYiK0Xk3nJ+f7qIzBKR/SJyd5nfrRWRRSLygYjMDS5qIiIqT4HrAESkOoDHAPQDsAnA\nPBEZqapLS232OYDbAAwpZxcKoFBVv/A9WCIiqlIYnlg6AVilqmtV9SCAVwBcWnoDVd2mqsUADlaw\nD/E5RiIiylAYEksTABtKvd6Y+lmmFMBEESkWkZs9jYyIiLLmvBQGSwz56Kaqn4hIAwATRGSZqk7z\nIjAiIspeGBLLJgDNSr1uBntqyYiqfpL67zYReQtWWvtWYhERTohGRJQDVc26qSEMpbBiAK1EpIWI\n1ARwFYCRFWz7rX+giNQRkWNT3x8N4AIAi8t7o6ryy6Ov3/zmN85jiMsXP0t+nmH+ypXzJxZVLRGR\nWwGMA1AdwDOqulREhqZ+/5SINAIwD8B3ABwWkf8C0AbAiQDeFBHA/i0vqep4F/8OIiIyzhMLAKjq\nWABjy/zsqVLff4pvl8vSdgPo4G90RESUjTCUwihiCgsLXYcQG/wsvcXPMxwknzpaVIiIJuHfSUTk\nJRGBRrTxnoiIYoSJhYiIPMXEQkREnmJiISIiTzGxEBGRp5hYiIjIU0wsRETkKSYWIiLyFBNLAFSB\n2bOBhQvte6LStm0Dpk0Ddu1yHQmFjSqwZAmwaRNw6JDraDLHxOKj9euB//kfoHVr4MYbgcsuA049\nFfjpTy3JULJt3AjccQdw2mnAnXcCjRoB7doBP/kJ8PnnrqMj1z78EOjXD+jfHzjnHKB2baB5c+CP\nfwz/DSoTi0/Gjwc6dgQ2bwZeesnuOlavBt58006Q/v2BMWNcR0kuqAL33QecdRZQvbpdQIqLge3b\ngWefBQoKgB49gA0bqt4Xxc+XXwK33w707m03o+vWAZ9+CuzebdeMf/4TuO46YO9e15FWjHOF+WD6\ndDsh3noL6N69/G1mzwYuuQR4/nlg4MDAQqMQePhh4MUXgYkTgQYNyt/mkUfsa+xYoG3bYOMjd0pK\n7KazaVP7/3/CCUdus28fMHQosGiRXWNatvQvnlznCnO+kExAi9VoUIqLVRs0UB03ruptZ860bd99\n1/+4KBxef121SRPVDRuq3vbFF1VPPFF13jz/46JwuOsu1QEDVEtKKt/u8GHVRx5RbdlSdedO/+JJ\nXTuzvubyicVDK1daCeOJJ+yJJRMzZwJDhgATJgDt2/sbH7k1ezZw8cXflEkz8dprwK9/DSxYANSq\n5W985NbLL1uJtLgYqFcvs/fcdBNQsybw5JP+xJTrEwsTi0dUgQsuAC68ELjrruze+/TTVhJ77z2g\nGlu9YmnbNrtxePppYPDg7N77ve8BZ54J/Pd/+xMbubdoEdC3r5VHs7nB/PJLa6t7+mlgwADv42Ji\nqUQQieXtt+1uY8ECoEaN7N576BDQuTNw663ADTf4Ex+5deutdtMwfHj279282S42U6ZYgqF4KSmx\n3oD33Qf84AfZv3/SJODf/s2S0/HHexsbE0sl/E4s+/dbA+tTT1n3wFzMm2eN+UuXAnXrehsfubVi\nBdC1K7BsWfmNsZl48kngueesY0j16t7GR2794x/ACy8AkycDkn0zOQDgttvs6eX5572NjYmlEn4n\nlgcesMTw1lv57eeWW6wr8qOPehMXhcP3vgecfz5w77257+PwYaBXL+Cqq+zph+LhwAEb5/byy3bz\nkas9e+zm9qWXgG7dvIuPiaUSfiaWTZusTDF3LnDyyfnt67PPgDZt2JAfJ9On25iDZcvspiEfS5ZY\nclmzBjjmGG/iI7eGD7e/91Gj8t/Xk08C77xjX15hYqmEn4nlhhusz/nvfufN/h57zHoNjRzpzf7I\nHVW7C/2P/wB++ENv9vn971tyue02b/ZH7uzebTNxjBvnzY3k/v12czt2rHc3pkwslfArsWzaZI1u\na9YAxx3nzT737gW++11g1iw76Si63njDbjiKi73r7TdnDnD11da1vaDAm32SGw88ACxebGUwr/zh\nD8D8+d7tM9fEws6teXjySeDaa71LKgBQpw7w4x8Df/mLd/skNx55BPjVr7ztQn7++faE/Oab3u2T\ngrdjh50f99/v7X6HDrUuyytXervfbPGJJUcHDtiTRVERcPrpnu4aGzda33Qvn4QoWIsWAYMGAWvX\n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\nrkJggg==\n", | |
"metadata": {} | |
} | |
], | |
"language": "python", | |
"trusted": true, | |
"collapsed": false | |
} | |
], | |
"metadata": {} | |
} | |
], | |
"metadata": { | |
"name": "", | |
"signature": "sha256:844200c19d490162f023948936032b37425deee6e77ed78fc58b33c9e10af294" | |
}, | |
"nbformat": 3 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment