Skip to content

Instantly share code, notes, and snippets.

@johnymontana
Created February 1, 2013 22:24
Show Gist options
  • Save johnymontana/4694576 to your computer and use it in GitHub Desktop.
Save johnymontana/4694576 to your computer and use it in GitHub Desktop.
{
"metadata": {
"name": "Simple_ODEs_Conservation"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"from pylab import *"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def y_prime(yn, vn, dt):\n",
" return yn+vn*dt"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 106
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def v_prime(vn, dt, an=-9.8):\n",
" return vn+an*dt"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 108
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def euler(x, dt, f=None):\n",
" # takes state x(y, velocity), returns new y, velocity\n",
" return array([y_prime(yn=x[0], vn=x[1], dt=dt), v_prime(vn=x[1], dt=dt)])"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 109
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"state=[array([10, 0])]\n",
"while True:\n",
" state.append(euler(dt=0.1, x=state[-1]))\n",
" if state[-1][0]<0:\n",
" break"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 134
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"array_state=array(state)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 135
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"euler_method_falling_list = array_state[:,0]\n",
"print euler_method_falling_list"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[ 10. 10. 9.902 9.706 9.412 9.02 8.53 7.942 7.256\n",
" 6.472 5.59 4.61 3.532 2.356 1.082 -0.29 ]\n"
]
}
],
"prompt_number": 136
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def analytic_sol(y0, t, g=9.8):\n",
" return -0.5*g*(t*t)+y0"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 137
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"drop_list=[]\n",
"for i in xrange(0,145):\n",
" drop_list.append(i*0.1)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 138
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#drop_list"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 139
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def falling(x):\n",
" # input: x[position, velocity]\n",
" # returns [velocity, acceleration] or [dy/dt, dv/dt]\n",
" return array([x[1], -9.8])"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 140
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#state = "
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 141
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"analytic_data=[]\n",
"for time_period in drop_list:\n",
" analytic_data.append(analytic_sol(y0=10, t=time_period))\n",
" if analytic_data[-1]<0:\n",
" break"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 142
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"zero_list=[0.0]*len(analytic_data)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 143
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plot(analytic_data,label='analytic solution')\n",
"plot(euler_method_falling_list, label='euler method')\n",
"plot(zero_list)\n",
"legend(loc='upper right')\n",
"xlabel(r'Number of timesteps, dt=0.1s')\n",
"ylabel(r'Height of object (m)')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 146,
"text": [
"<matplotlib.text.Text at 0x10c13ba10>"
]
},
{
"output_type": "display_data",
"png": "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\n"
}
],
"prompt_number": 146
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment