{ "metadata": { "name": "", "signature": "sha256:1af223da3d90aaca19fd8e6022bb86b0a809e2850967301ad7afb00495d5a986" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from ipywidgets import StaticInteract, RangeWidget, RadioWidget" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "#Ex = 0\n", "#Ey = 5\n", "\n", "m = 1\n", "q = 1\n", "\n", "dt = 0.1\n", "\n", "def main(Ex,Ey):\n", " def force():\n", " return [Ex,Ey]\n", "\n", "# def euler_step(x,Vx,y,Vy):\n", "# array = force()\n", "# Fy = Vy\n", "# fy = array[1]\n", "# Fx = Vx\n", "# fx = array[0]\n", "# return [fx*dt, Fx*dt, fy*dt, Fy*dt]\n", "\n", " def rk2_step(x,dx,y,dy):\n", "# array = force()\n", "# F1y = Vy\n", "# f1y = array[1]\n", "# F2y = Vy\n", "# fy = array[1]\n", "# F1x = Vx\n", "# f1x = array[0]\n", " F1x = dy\n", " f1x = fn(k,m,y)\n", " F2x = dy +f1*h\n", " f2x = fn(k,m,(y+F1*h))\n", " return [(f1+f2)*h/2., (F1+F2)*h/2.] # [dy, y] update\n", "\n", " i = 0\n", " \n", " x = 0\n", " y = 0\n", " Vx = 1\n", " Vy = 1\n", "\n", " xposn = []\n", " yposn = []\n", "\n", " while i<100:\n", " array = euler_step(x,Vx,y,Vy)\n", " # array = rk2_step(k,m,y,dy)\n", " Vx += array[0]\n", " x += array[1]\n", " Vy += array[2]\n", " y += array[3]\n", " #print y,dy\n", " xposn.append(x)\n", " yposn.append(y)\n", " i +=1\n", " return [xposn,yposn]\n", " \n", "def plot(Ex,Ey):\n", " fig, ax = plt.subplots(figsize=(4, 3),\n", " subplot_kw={'axisbg':'#EEEEEE',\n", " 'axisbelow':True})\n", " ax.grid(color='w', linewidth=2, linestyle='solid')\n", " alist = main(Ex,Ey)\n", " xlist = alist[0]\n", " ylist = alist[1]\n", " ax.plot(xlist, ylist, lw=5, alpha=0.4)#, label = Ex/Ey)\n", " ax.legend(loc='upper right')\n", " #ax.set_xlim(0,2*np.pi)\n", " #ax.set_ylim(-1, 1)\n", " return fig" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "StaticInteract(plot, Ex=RangeWidget(0., 1., 1.), Ey=RangeWidget(0., 1., 1.))" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", " \n", "