diff --git a/17_integrals_and_derivatives/17_integrals.ipynb b/17_integrals_and_derivatives/17_integrals.ipynb index 2618cea..e9fdfd0 100644 --- a/17_integrals_and_derivatives/17_integrals.ipynb +++ b/17_integrals_and_derivatives/17_integrals.ipynb @@ -8,7 +8,8 @@ "classes": [], "id": "", "n": "1" - } + }, + "collapsed": true }, "outputs": [], "source": [ @@ -23,7 +24,8 @@ "classes": [], "id": "", "n": "2" - } + }, + "collapsed": true }, "outputs": [], "source": [ @@ -56,7 +58,8 @@ "classes": [], "id": "", "n": "9" - } + }, + "collapsed": false }, "outputs": [ { @@ -117,7 +120,8 @@ "classes": [], "id": "", "n": "10" - } + }, + "collapsed": false }, "outputs": [ { @@ -306,7 +310,8 @@ "classes": [], "id": "", "n": "11" - } + }, + "collapsed": false }, "outputs": [ { @@ -389,7 +394,8 @@ "classes": [], "id": "", "n": "12" - } + }, + "collapsed": true }, "outputs": [], "source": [ @@ -412,7 +418,8 @@ "classes": [], "id": "", "n": "14" - } + }, + "collapsed": false }, "outputs": [ { @@ -457,7 +464,8 @@ "matlab" ], "id": "" - } + }, + "collapsed": true }, "outputs": [], "source": [ @@ -478,7 +486,8 @@ "classes": [], "id": "", "n": "15" - } + }, + "collapsed": false }, "outputs": [ { @@ -506,7 +515,8 @@ "classes": [], "id": "", "n": "16" - } + }, + "collapsed": false }, "outputs": [ { @@ -537,7 +547,25 @@ ] } ], - "metadata": {}, + "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.12" + } + }, "nbformat": 4, "nbformat_minor": 2 } diff --git a/18_initial_value_ode/.ipynb_checkpoints/18_initial_value_ode-checkpoint.ipynb b/18_initial_value_ode/.ipynb_checkpoints/18_initial_value_ode-checkpoint.ipynb new file mode 100644 index 0000000..2306605 --- /dev/null +++ b/18_initial_value_ode/.ipynb_checkpoints/18_initial_value_ode-checkpoint.ipynb @@ -0,0 +1,837 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "%plot --format svg" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "setdefaults" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Initial Value Problems (ODEs)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Initial value problems are integrals\n", + "\n", + "$y'+2y=0$\n", + "\n", + "$y(0)=1$\n", + "\n", + "\n", + "Solve for $y(t)$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "$\\frac{dy}{dt}=-2y$\n", + "\n", + "$\\frac{dy}{y}=-2dt$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "Integrate both sides:\n", + "\n", + "$\\ln{\\frac{y}{y_{0}}}=-2t+2t_{0}$\n", + "\n", + "$y(t)=y_{0}e^{-2t+2t_{0}}=e^{-2t}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "## Euler's method \n", + "\n", + "$\\frac{dy}{dt}=f(t,y)$\n", + "\n", + "$y_{i+1}=y_{i}+\\int_{t_{i}}^{t_{i+1}}f(t,y)dt$\n", + "\n", + "$y_{i+1}\\approx y_{i}+f(t_{i},y_{i})h$\n", + "\n", + "The error of this method is:\n", + "\n", + "$E_{t}=\\frac{f'(t_i , y_i )}{2!}h^2 + \\cdots + O(h^{n+1})$\n", + "\n", + "or\n", + "\n", + "$E_{a}=O(h^2)$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### Example: Freefalling problem\n", + "\n", + "An object is falling and has a drag coefficient of 0.25 kg/m and mass of 60 kg\n", + "Define time from 0 to 12 seconds with `N` timesteps \n", + "function defined as `freefall`\n", + "\n", + "Using the Euler ODE solution results in a conditionally stable solution *(at some point the time steps are too large to solve the problem)*" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [], + "source": [ + "function [v_analytical,v_terminal,t]=freefall(N,tmax)\n", + " t=linspace(0,tmax,N)';\n", + " c=0.25; m=60; g=9.81; v_terminal=sqrt(m*g/c);\n", + "\n", + " v_analytical = v_terminal*tanh(g*t/v_terminal);\n", + " v_numerical=zeros(length(t),1);\n", + " delta_time =diff(t);\n", + " for i=1:length(t)-1\n", + " v_numerical(i+1)=v_numerical(i)+(g-c/m*v_numerical(i)^2)*delta_time(i);\n", + " end\n", + " % Print values near 0,2,4,6,8,10,12 seconds\n", + " indices = round(linspace(1,length(t),7));\n", + " fprintf('time (s)| error (m/s)\\n')\n", + " fprintf('-------------------------\\n')\n", + " M=[t(indices),abs(v_analytical(indices)-v_numerical(indices))];\n", + " fprintf('%7.1f | %10.2f\\n',M(:,1:2)');\n", + " plot(t,v_analytical,'-',t,v_numerical,'o-')\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "time (s)| error (m/s)\n", + "-------------------------\n", + " 0.0 | 0.00\n", + " 2.3 | 0.46\n", + " 4.0 | 0.95\n", + " 6.3 | 1.03\n", + " 8.0 | 0.80\n", + " 10.3 | 0.46\n", + " 12.0 | 0.28\n", + "\n", + "O(h^2)=0.33\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "Gnuplot\n", + "Produced by GNUPLOT 5.0 patchlevel 3 \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t10\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t20\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t30\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t40\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t50\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t6\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t8\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t10\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t12\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\n", + "\tgnuplot_plot_1a\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\tgnuplot_plot_2a\n", + "\n", + "\t\t \n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "[v_an,v_t,t]=freefall(22,12);\n", + "fprintf('\\nO(h^2)=%1.2f',min(diff(t).^2))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Heun Method\n", + "\n", + "Increase accuracy with *predictor-corrector approach*\n", + "\n", + "$y_{i+1}=y_{i}^{m}+f(t_{i},y_{i})h$\n", + "\n", + "$y_{i+1}^{j}=y_{i}^{m}+\n", + "\\frac{f(t_{i},y_{i}^{m})+f(t_{i+1},y_{i+1}^{i-1})}{2}h$\n", + "\n", + "This is analagous to the trapezoidal rule\n", + "\n", + "$\\int_{t_{i}}^{t_{i+1}}f(t,y)dt=\\frac{f(t_{i},y_{i})+f(t_{i+1},y_{i+1})}{2}h$\n", + "\n", + "therefore the error is\n", + "\n", + "$E_{t}=\\frac{-f''(\\xi)}{12}h^3$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "### Example with Heun's method\n", + "\n", + "Problem Statement. Use Heun’s method with iteration to integrate \n", + "\n", + "$y' = 4e^{0.8t} − 0.5y$\n", + "\n", + "from t = 0 to 4 with a step size of 1. The initial condition at t = 0 is y = 2. Employ a stopping criterion of 0.00001% to terminate the corrector iterations." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dy =\n", + "\n", + " 3\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + "\n", + "y =\n", + "\n", + " 2\n", + " 5\n", + " 0\n", + " 0\n", + " 0\n", + "\n" + ] + } + ], + "source": [ + "yp=@(t,y) 4*exp(0.8*t)-0.5*y;\n", + "t=linspace(0,4,5)';\n", + "y=zeros(size(t));\n", + "dy=zeros(size(t));\n", + "dy_corr=zeros(size(t));\n", + "y(1)=2;\n", + "dy(1)=yp(t(1),y(1))\n", + "y(2)=y(1)+dy(1)*(t(2)-t(1))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dy_corr =\n", + "\n", + " 4.70108\n", + " 0.00000\n", + " 0.00000\n", + " 0.00000\n", + " 0.00000\n", + "\n", + "y =\n", + "\n", + " 2.00000\n", + " 6.70108\n", + " 0.00000\n", + " 0.00000\n", + " 0.00000\n", + "\n" + ] + } + ], + "source": [ + "% improve estimate for y(2)\n", + "dy_corr(1)=(dy(1)+yp(t(2),y(2)))/2\n", + "y(2)=y(1)+dy_corr(1)*(t(2)-t(1))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### This process can be iterated until a desired tolerance is achieved" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "yp=@(t,y) 4*exp(0.8*t)-0.5*y;\n", + "t=linspace(0,4,5)';\n", + "y=zeros(size(t));\n", + "dy=zeros(size(t));\n", + "dy_corr=zeros(size(t));\n", + "y(1)=2;\n", + "for i=1:length(t)-1\n", + " dy(i)=yp(t(i),y(i));\n", + " dy_corr(i)=yp(t(i),y(i));\n", + " y(i+1)=y(i)+dy_corr(i)*(t(i+1)-t(i));\n", + " n=0;\n", + " e=10;\n", + " while (1)\n", + " n=n+1;\n", + " yold=y(i+1);\n", + " dy_corr(i)=(dy(i)+yp(t(i+1),y(i+1)))/2;\n", + " y(i+1)=y(i)+dy_corr(i)*(t(i+1)-t(i));\n", + " e=abs(y(i+1)-yold)/y(i+1)*100;\n", + " if e<= 0.00001 | n>100, break, end\n", + " end\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "y_an =\n", + "\n", + "@(t) 4 / 1.3 * exp (0.8 * t) - 1.0769 * exp (-t / 2)\n", + "\n", + "dy_an =\n", + "\n", + "@(t) 0.8 * 4 / 1.3 * exp (0.8 * t) + 1.0769 / 2 * exp (-t / 2)\n", + "\n" + ] + } + ], + "source": [ + "\n", + "y_euler=zeros(size(t));\n", + "for i=1:length(t)-1\n", + " dy(i)=yp(t(i),y(i));\n", + " y_euler(i+1)=y_euler(i)+dy(i)*(t(i+1)-t(i));\n", + "end\n", + "\n", + "y_an =@(t) 4/1.3*exp(0.8*t)-1.0769*exp(-t/2)\n", + "dy_an=@(t) 0.8*4/1.3*exp(0.8*t)+1.0769/2*exp(-t/2)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "Gnuplot\n", + "Produced by GNUPLOT 5.0 patchlevel 3 \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t10\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t20\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t30\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t40\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t50\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t60\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t70\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t80\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t3\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t3.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t4\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\t\ty\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\ttime\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\tHeuns method\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\tHeuns method\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "\t\n", + "\tEuler\n", + "\n", + "\t\n", + "\t\tEuler\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "\t\n", + "\tanalytical\n", + "\n", + "\t\n", + "\t\tanalytical\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(t,y,'o',t,y_euler,'s',linspace(min(t),max(t)),y_an(linspace(min(t),max(t))))\n", + "legend('Heuns method','Euler','analytical','Location','NorthWest')\n", + "xlabel('time')\n", + "ylabel('y')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "celltoolbar": "Slideshow", + "kernelspec": { + "display_name": "Octave", + "language": "octave", + "name": "octave" + }, + "language_info": { + "file_extension": ".m", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "octave", + "version": "0.19.14" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/18_initial_value_ode/.ipynb_checkpoints/lecture_22-checkpoint.ipynb b/18_initial_value_ode/.ipynb_checkpoints/lecture_22-checkpoint.ipynb new file mode 100644 index 0000000..8fdd6a6 --- /dev/null +++ b/18_initial_value_ode/.ipynb_checkpoints/lecture_22-checkpoint.ipynb @@ -0,0 +1,821 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%plot --format svg" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "setdefaults" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![q1](q1.png)\n", + "\n", + "![q2](q2.png)\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Initial Value Problem\n", + "\n", + "## Euler's method\n", + "\n", + "$\\frac{dy}{dt}=f(t,y)$\n", + "\n", + "$y_{i+1}=y_{i}+f(t_{i},y_{i})h$\n", + "\n", + "The error of this method is:\n", + "\n", + "$E_{t}=\\frac{f'(t_i , y_i )}{2!}h^2 + \\cdots + O(h^{n+1})$\n", + "\n", + "or\n", + "\n", + "$E_{a}=O(h^2)$\n", + "\n", + "### Example: Freefalling problem\n", + "\n", + "An object is falling and has a drag coefficient of 0.25 kg/m and mass of 60 kg\n", + "Define time from 0 to 12 seconds with `N` timesteps \n", + "function defined as `freefall`\n", + "\n", + "Using the Euler ODE solution results in a conditionally stable solution *(at some point the time steps are too large to solve the problem)*" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "function [v_analytical,v_terminal,t]=freefall(N,tmax)\n", + " t=linspace(0,tmax,N)';\n", + " c=0.25; m=60; g=9.81; v_terminal=sqrt(m*g/c);\n", + "\n", + " v_analytical = v_terminal*tanh(g*t/v_terminal);\n", + " v_numerical=zeros(length(t),1);\n", + " delta_time =diff(t);\n", + " for i=1:length(t)-1\n", + " v_numerical(i+1)=v_numerical(i)+(g-c/m*v_numerical(i)^2)*delta_time(i);\n", + " end\n", + " % Print values near 0,2,4,6,8,10,12 seconds\n", + " indices = round(linspace(1,length(t),7));\n", + " fprintf('time (s)| error (m/s)\\n')\n", + " fprintf('-------------------------\\n')\n", + " M=[t(indices),abs(v_analytical(indices)-v_numerical(indices))];\n", + " fprintf('%7.1f | %10.2f\\n',M(:,1:2)');\n", + " plot(t,v_analytical,'-',t,v_numerical,'o-')\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "time (s)| error (m/s)\n", + "-------------------------\n", + " 0.0 | 0.00\n", + " 7.1 | 26.67\n", + " 14.3 | 54.21\n", + " 28.6 | 33.62\n", + " 35.7 | 29.84\n", + " 42.9 | 82.85\n", + " 50.0 | 47.86\n", + "\n", + "O(h^2)=51.02\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "Gnuplot\n", + "Produced by GNUPLOT 5.0 patchlevel 3 \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t-40\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t-20\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t20\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t40\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t60\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t80\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t10\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t20\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t30\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t40\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t50\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\n", + "\tgnuplot_plot_1a\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\tgnuplot_plot_2a\n", + "\n", + "\t\t \n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "[v_an,v_t,t]=freefall(8,50);\n", + "fprintf('\\nO(h^2)=%1.2f',min(diff(t).^2))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Heun Method\n", + "\n", + "Increase accuracy with *predictor-corrector approach*\n", + "\n", + "$y_{i+1}=y_{i}^{m}+f(t_{i},y_{i})h$\n", + "\n", + "$y_{i+1}^{j}=y_{i}^{m}+\n", + "\\frac{f(t_{i},y_{i}^{m})+f(t_{i+1},y_{i+1}^{i-1})}{2}h$\n", + "\n", + "This is analagous to the trapezoidal rule\n", + "\n", + "$\\int_{t_{i}}^{t_{i+1}}f(t)dt=\\frac{f(t_{i})+f(t_{i+1})}{2}h$\n", + "\n", + "therefore the error is\n", + "\n", + "$E_{t}=\\frac{-f''(\\xi)}{12}h^3$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Example with Heun's method**\n", + "\n", + "Problem Statement. Use Heun’s method with iteration to integrate \n", + "\n", + "$y' = 4e^{0.8t} − 0.5y$\n", + "\n", + "from t = 0 to 4 with a step size of 1. The initial condition at t = 0 is y = 2. Employ a stopping criterion of 0.00001% to terminate the corrector iterations." + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dy =\n", + "\n", + " 3\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + "\n", + "y =\n", + "\n", + " 2\n", + " 5\n", + " 0\n", + " 0\n", + " 0\n", + "\n" + ] + } + ], + "source": [ + "yp=@(t,y) 4*exp(0.8*t)-0.5*y;\n", + "t=linspace(0,4,5)';\n", + "y=zeros(size(t));\n", + "dy=zeros(size(t));\n", + "dy_corr=zeros(size(t));\n", + "y(1)=2;\n", + "dy(1)=yp(t(1),y(1))\n", + "y(2)=y(1)+dy(1)*(t(2)-t(1))" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dy_corr =\n", + "\n", + " 4.70108\n", + " 0.00000\n", + " 0.00000\n", + " 0.00000\n", + " 0.00000\n", + "\n", + "y =\n", + "\n", + " 2.00000\n", + " 6.70108\n", + " 0.00000\n", + " 0.00000\n", + " 0.00000\n", + "\n" + ] + } + ], + "source": [ + "% improve estimate for y(2)\n", + "dy_corr(1)=(dy(1)+yp(t(2),y(2)))/2\n", + "y(2)=y(1)+dy_corr(1)*(t(2)-t(1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This process can be iterated until a desired tolerance is achieved" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "n=0;\n", + "e=10;\n", + "while (1)\n", + " n=n+1;\n", + " yold=y(2);\n", + " dy_corr(1)=(dy(1)+yp(t(2),y(2)))/2;\n", + " y(2)=y(1)+dy_corr(1)*(t(2)-t(1));\n", + " e=abs(y(2)-yold)/y(2)*100;\n", + " if e<= 0.00001 | n>100, break, end\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "y =\n", + "\n", + " 2.00000\n", + " 6.36087\n", + " 0.00000\n", + " 0.00000\n", + " 0.00000\n", + "\n", + "dy_corr =\n", + "\n", + " 4.36087\n", + " 0.00000\n", + " 0.00000\n", + " 0.00000\n", + " 0.00000\n", + "\n", + "n = 12\n", + "e = 6.3760e-06\n" + ] + } + ], + "source": [ + "y\n", + "dy_corr\n", + "n\n", + "e" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "y_an =\n", + "\n", + "@(t) 4 / 1.3 * exp (0.8 * t) - 1.0769 * exp (-t / 2)\n", + "\n", + "dy_an =\n", + "\n", + "@(t) 0.8 * 4 / 1.3 * exp (0.8 * t) + 1.0769 / 2 * exp (-t / 2)\n", + "\n" + ] + } + ], + "source": [ + "\n", + "y_euler=zeros(size(t));\n", + "for i=1:length(t)-1\n", + " y_euler(i+1)=y_euler(i)+dy(i)*(t(i+1)-t(i));\n", + "end\n", + "\n", + "y_an =@(t) 4/1.3*exp(0.8*t)-1.0769*exp(-t/2)\n", + "dy_an=@(t) 0.8*4/1.3*exp(0.8*t)+1.0769/2*exp(-t/2)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "yp=@(t,y) 4*exp(0.8*t)-0.5*y;\n", + "t=linspace(0,4,5)';\n", + "y=zeros(size(t));\n", + "dy=zeros(size(t));\n", + "dy_corr=zeros(size(t));\n", + "y(1)=2;\n", + "for i=1:length(t)-1\n", + " dy(i)=yp(t(i),y(i));\n", + " dy_corr(i)=yp(t(i),y(i));\n", + " y(i+1)=y(i)+dy_corr(i)*(t(i+1)-t(i));\n", + " n=0;\n", + " e=10;\n", + " while (1)\n", + " n=n+1;\n", + " yold=y(i+1);\n", + " dy_corr(i)=(dy(i)+yp(t(i+1),y(i+1)))/2;\n", + " y(i+1)=y(i)+dy_corr(i)*(t(i+1)-t(i));\n", + " e=abs(y(i+1)-yold)/y(i+1)*100;\n", + " if e<= 0.00001 | n>100, break, end\n", + " end\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "y =\n", + "\n", + " 2.0000\n", + " 6.3609\n", + " 15.3022\n", + " 34.7433\n", + " 77.7351\n", + "\n", + "ans =\n", + "\n", + " 2.0000\n", + " 6.1946\n", + " 14.8439\n", + " 33.6772\n", + " 75.3390\n", + "\n" + ] + } + ], + "source": [ + "y\n", + "y_an(t)" + ] + }, + { + "cell_type": "code", + "execution_count": 128, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "Gnuplot\n", + "Produced by GNUPLOT 5.0 patchlevel 3 \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t10\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t20\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t30\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t40\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t50\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t60\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t70\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t80\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t3\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t3.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t4\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\t\ty\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\ttime\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\tHeuns method\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\tHeuns method\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "\t\n", + "\tEuler\n", + "\n", + "\t\n", + "\t\tEuler\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "\t\n", + "\tanalytical\n", + "\n", + "\t\n", + "\t\tanalytical\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(t,y,'o',t,y_euler,'s',linspace(min(t),max(t)),y_an(linspace(min(t),max(t))))\n", + "legend('Heuns method','Euler','analytical','Location','NorthWest')\n", + "xlabel('time')\n", + "ylabel('y')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Phugoid Oscillation example\n", + "\n", + "[phugoid lessons in python](" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Octave", + "language": "octave", + "name": "octave" + }, + "language_info": { + "file_extension": ".m", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "octave", + "version": "0.19.14" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/18_initial_value_ode/18_initial_value_ode.ipynb b/18_initial_value_ode/18_initial_value_ode.ipynb new file mode 100644 index 0000000..110f785 --- /dev/null +++ b/18_initial_value_ode/18_initial_value_ode.ipynb @@ -0,0 +1,807 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "%plot --format svg" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "setdefaults" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Initial Value Problems (ODEs)\n", + "*Ch. 22*" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "## Euler's method \n", + "\n", + "$\\frac{dy}{dt}=f(t,y)$\n", + "\n", + "$y_{i+1}=y_{i}+\\int_{t_{i}}^{t_{i+1}}f(t,y)dt$\n", + "\n", + "$y_{i+1}\\approx y_{i}+f(t_{i},y_{i})h$\n", + "\n", + "The error of this method is:\n", + "\n", + "$E_{t}=\\frac{f'(t_i , y_i )}{2!}h^2 + \\cdots + O(h^{n+1})$\n", + "\n", + "or\n", + "\n", + "$E_{a}=O(h^2)$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### Example: Freefalling problem\n", + "\n", + "An object is falling and has a drag coefficient of 0.25 kg/m and mass of 60 kg\n", + "Define time from 0 to 12 seconds with `N` timesteps \n", + "function defined as `freefall`\n", + "\n", + "Using the Euler ODE solution results in a conditionally stable solution *(at some point the time steps are too large to solve the problem)*" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [], + "source": [ + "function [v_analytical,v_terminal,t]=freefall(N,tmax)\n", + " t=linspace(0,tmax,N)';\n", + " c=0.25; m=60; g=9.81; v_terminal=sqrt(m*g/c);\n", + "\n", + " v_analytical = v_terminal*tanh(g*t/v_terminal);\n", + " v_numerical=zeros(length(t),1);\n", + " delta_time =diff(t);\n", + " for i=1:length(t)-1\n", + " v_numerical(i+1)=v_numerical(i)+(g-c/m*v_numerical(i)^2)*delta_time(i);\n", + " end\n", + " % Print values near 0,2,4,6,8,10,12 seconds\n", + " indices = round(linspace(1,length(t),7));\n", + " fprintf('time (s)| error (m/s)\\n')\n", + " fprintf('-------------------------\\n')\n", + " M=[t(indices),abs(v_analytical(indices)-v_numerical(indices))];\n", + " fprintf('%7.1f | %10.2f\\n',M(:,1:2)');\n", + " plot(t,v_analytical,'-',t,v_numerical,'o-')\n", + " xlabel('time (s)')\n", + " ylabel('velocity (m/s)')\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "time (s)| error (m/s)\n", + "-------------------------\n", + " 0.0 | 0.00\n", + " 2.3 | 0.46\n", + " 4.0 | 0.95\n", + " 6.3 | 1.03\n", + " 8.0 | 0.80\n", + " 10.3 | 0.46\n", + " 12.0 | 0.28\n", + "\n", + "O(h^2)=0.33\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "Gnuplot\n", + "Produced by GNUPLOT 5.0 patchlevel 3 \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t10\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t20\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t30\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t40\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t50\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t6\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t8\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t10\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t12\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\t\tvelocity (m/s)\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\ttime (s)\n", + "\t\n", + "\n", + "\n", + "\n", + "\tgnuplot_plot_1a\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\tgnuplot_plot_2a\n", + "\n", + "\t\t \n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "[v_an,v_t,t]=freefall(22,12);\n", + "fprintf('\\nO(h^2)=%1.2f',min(diff(t).^2))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Heun Method\n", + "\n", + "Increase accuracy with *predictor-corrector approach*\n", + "\n", + "$y_{i+1}=y_{i}^{m}+f(t_{i},y_{i})h$\n", + "\n", + "$y_{i+1}^{j}=y_{i}^{m}+\n", + "\\frac{f(t_{i},y_{i}^{m})+f(t_{i+1},y_{i+1}^{i-1})}{2}h$\n", + "\n", + "This is analagous to the trapezoidal rule\n", + "\n", + "$\\int_{t_{i}}^{t_{i+1}}f(t,y)dt=\\frac{f(t_{i},y_{i})+f(t_{i+1},y_{i+1})}{2}h$\n", + "\n", + "therefore the error is\n", + "\n", + "$E_{t}=\\frac{-f''(\\xi)}{12}h^3$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "### Example with Heun's method\n", + "\n", + "Problem Statement. Use Heun’s method with iteration to integrate \n", + "\n", + "$y' = 4e^{0.8t} − 0.5y$\n", + "\n", + "from t = 0 to 4 with a step size of 1. The initial condition at t = 0 is y = 2. Employ a stopping criterion of 0.00001% to terminate the corrector iterations." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dy =\n", + "\n", + " 3\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + "\n", + "y =\n", + "\n", + " 2\n", + " 5\n", + " 0\n", + " 0\n", + " 0\n", + "\n" + ] + } + ], + "source": [ + "yp=@(t,y) 4*exp(0.8*t)-0.5*y;\n", + "t=linspace(0,4,5)';\n", + "y=zeros(size(t));\n", + "dy=zeros(size(t));\n", + "dy_corr=zeros(size(t));\n", + "y(1)=2;\n", + "dy(1)=yp(t(1),y(1))\n", + "y(2)=y(1)+dy(1)*(t(2)-t(1))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dy_corr =\n", + "\n", + " 4.70108\n", + " 0.00000\n", + " 0.00000\n", + " 0.00000\n", + " 0.00000\n", + "\n", + "y =\n", + "\n", + " 2.00000\n", + " 6.70108\n", + " 0.00000\n", + " 0.00000\n", + " 0.00000\n", + "\n" + ] + } + ], + "source": [ + "% improve estimate for y(2)\n", + "dy_corr(1)=(dy(1)+yp(t(2),y(2)))/2\n", + "y(2)=y(1)+dy_corr(1)*(t(2)-t(1))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### This process can be iterated until a desired tolerance is achieved" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "yp=@(t,y) 4*exp(0.8*t)-0.5*y;\n", + "t=linspace(0,4,5)';\n", + "y=zeros(size(t));\n", + "dy=zeros(size(t));\n", + "dy_corr=zeros(size(t));\n", + "y(1)=2;\n", + "for i=1:length(t)-1\n", + " dy(i)=yp(t(i),y(i));\n", + " dy_corr(i)=yp(t(i),y(i));\n", + " y(i+1)=y(i)+dy_corr(i)*(t(i+1)-t(i));\n", + " n=0;\n", + " e=10;\n", + " while (1)\n", + " n=n+1;\n", + " yold=y(i+1);\n", + " dy_corr(i)=(dy(i)+yp(t(i+1),y(i+1)))/2;\n", + " y(i+1)=y(i)+dy_corr(i)*(t(i+1)-t(i));\n", + " e=abs(y(i+1)-yold)/y(i+1)*100;\n", + " if e<= 0.00001 | n>100, break, end\n", + " end\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "y_an =\n", + "\n", + "@(t) 4 / 1.3 * exp (0.8 * t) - 1.0769 * exp (-t / 2)\n", + "\n", + "dy_an =\n", + "\n", + "@(t) 0.8 * 4 / 1.3 * exp (0.8 * t) + 1.0769 / 2 * exp (-t / 2)\n", + "\n" + ] + } + ], + "source": [ + "\n", + "y_euler=zeros(size(t));\n", + "for i=1:length(t)-1\n", + " dy(i)=yp(t(i),y(i));\n", + " y_euler(i+1)=y_euler(i)+dy(i)*(t(i+1)-t(i));\n", + "end\n", + "\n", + "y_an =@(t) 4/1.3*exp(0.8*t)-1.0769*exp(-t/2)\n", + "dy_an=@(t) 0.8*4/1.3*exp(0.8*t)+1.0769/2*exp(-t/2)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "Gnuplot\n", + "Produced by GNUPLOT 5.0 patchlevel 3 \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t10\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t20\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t30\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t40\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t50\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t60\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t70\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t80\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t3\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t3.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t4\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\t\ty\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\ttime\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\tHeuns method\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\tHeuns method\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "\t\n", + "\tEuler\n", + "\n", + "\t\n", + "\t\tEuler\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "\t\n", + "\tanalytical\n", + "\n", + "\t\n", + "\t\tanalytical\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(t,y,'o',t,y_euler,'s',linspace(min(t),max(t)),y_an(linspace(min(t),max(t))))\n", + "legend('Heuns method','Euler','analytical','Location','NorthWest')\n", + "xlabel('time')\n", + "ylabel('y')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Thanks" + ] + } + ], + "metadata": { + "celltoolbar": "Slideshow", + "kernelspec": { + "display_name": "Octave", + "language": "octave", + "name": "octave" + }, + "language_info": { + "file_extension": ".m", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "octave", + "version": "0.19.14" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/18_initial_value_ode/octave-workspace b/18_initial_value_ode/octave-workspace new file mode 100644 index 0000000..8c437bb Binary files /dev/null and b/18_initial_value_ode/octave-workspace differ diff --git a/19_nonlinear_ivp/.ipynb_checkpoints/19_nonlinear_ivp-checkpoint.ipynb b/19_nonlinear_ivp/.ipynb_checkpoints/19_nonlinear_ivp-checkpoint.ipynb new file mode 100644 index 0000000..1416eca --- /dev/null +++ b/19_nonlinear_ivp/.ipynb_checkpoints/19_nonlinear_ivp-checkpoint.ipynb @@ -0,0 +1,525 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "setdefaults" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "%plot --format svg" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Initial Value Problems (continued)\n", + "\n", + "## Predator-Prey Models (Chaos Theory)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "Predator-prey models were developed independently in the early part of the twentieth\n", + "century by the Italian mathematician Vito Volterra and the American biologist Alfred\n", + "Lotka. These equations are commonly called Lotka-Volterra equations. The simplest version is the following pairs of ODEs:\n", + "\n", + "$\\frac{dx}{dt}=ax-bxy$\n", + "\n", + "$\\frac{dy}{dt}=-cy+dxy$\n", + "\n", + "where x and y = the number of prey and predators, respectively, a = the prey growth rate, c = the predator death rate, and b and d = the rates characterizing the effect of the predator-prey interactions on the prey death and the predator growth, respectively." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```matlab\n", + "function yp=predprey(t,y,a,b,c,d)\n", + " % predator-prey model (Lotka-Volterra equations)\n", + " yp=zeros(1,2);\n", + " x=y(1);\n", + " y=y(2);\n", + " yp(1)=a.*x-b.*x.*y;\n", + " yp(2)=-c*y+d*x.*y;\n", + "end\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "h=0.0625;tspan=[0 40];y0=[2 1];\n", + "a=1.2;b=0.6;c=0.8;d=0.3;" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ans =\n", + "\n", + " 12.0000\n", + " 5.2000\n" + ] + } + ], + "source": [ + "predprey(1,[20 1],a,b,c,d)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n9C0bAAAAwBDeFRJCqH379i5TdgAAAID54HoNCQAAAPAfQCEBAAAAXAAKCQAAAOACUEgAAAAAF4BC\nAgAAALgAFBIAAADABaCQAAAAAC4AhQQAAABwASgkAAAAgAtAIQEAAABcAAoJAAAA4AJQSAAAAAAX\ngEICAAAAuMAA2b4BAGBO79699S4CoBATb1QICgkA/BQT92smxtyWBEzZAQAAAFwACgkAAADgAlBI\nAAAAABeAQgIAAAC4ABQSAAAAwAWgkACzUVTdoHcRVKGouiFx47dmlQ4AECgk/8ReUJOyp9CUXVvK\nnsLuKzJT9hTqXRD2dF+RaQsPmb09T++CAIBagELySmp2efcVmWbttYtqGlK+NFuvbS+oWf5lYcb8\nQanflOtdFsakZpcn9GyXPKG7veBHe0GN3sUBAFUAheSV2dtPzRraOXHTt3oXhDGp2eUIoeQJ3fEH\nM7H/3I/LJ3RP6Gm1WYNN1mvvL/hxZlxnW3hwQs92epeFJeXl5Tt27CguLq6pqVm/fv3s2bMfe+yx\nI0eOeDzn8uXLGzdunD179tq1a4VvL1++vHXr1gcffBAfv3TpkvDV999/v2PHjnPnzrn8aFVV1Y4d\nO7Kzs1UVDVAAKCTPpOwpTOjZLvnW7ggh83VtCT2tuGszmWip35SPvfFaf73/3I/6FoYt9oKahJ5W\nhNDMuM7bsi/qXRxm5OTkTJs27cMPPxwwYMDf/va30tLSzZs3jxgxYtWqVS7nbN++vX///osWLfrs\ns8/S09PxVwcPHuzVq9ecOXPsdvvx48effPLJXr167d+/H3/bsmXLBx54YOHChS4/unXr1mnTplVV\nVWkjI0AOKCTP2AtqZsZ1RgjZrMHm69pwr53Q02qmrg0hVFTdYLOGIIRmxnUuqjHPXKu9oKaousEW\nHiz8q295mLNixYrp06eXl5fv3bv30qVL8fHxzz77bFZWlvicl1566d57762rq6uurt61axdCqLy8\n/M4772zZsmVubm5BQcG333579uzZDh06TJkypba2FiHUoUOH++67b8+ePcXFxeJbvfnmm1FRURMn\nTtRSRoAEUEiesRf8KBikZuraiqobiqobsGjdwoOLquv1LhEz7AU1CT3b4V7bFm62KTthpi6hp9V8\n65o33HDDypUr8Wer1bp161aE0Pr168Xn9OnT59VXXw0MDEQItWjRAiG0bt26mpqa7du39+vXD5/T\n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\nsbFt27aTJk0S8o6fP39+//79CKGjR4+2bt0aH5w6dapwbXFx8fbt20+fPh0YGJiQkHDvvfe2bNmS\npORaIu4JuVZOVw3Is88+GxMTs27dOunTYmJiZN0241x1whvHvH0766O85V+cl3VDfjCxaFuPlkmI\ntvyL88YVbfkX52d9lKfsW5/IbR0qsXv3boTQK6+8EhUV1alTp/Hjx1ssFoTQypUrXc5ZuXKlzWaz\nWCxWq/W2227DXx04cKBTp04IoR49egwaNCggIKBNmzZ2u138E1u2bEEIWSyWcePGRUVFRUZGvvji\niwihTz/9FJ/wyy+/IIQCAgJ69OgxYsSIoKAghNDtt9/e3Nx89erV1NTUkJAQhFBISEibXxFu/uGH\nH1osloCAgEGDBuGS9OrVq6yszGfJFUNfcZxUvUcMsIbkzu9+9zuEEH6NGCI9r2XoFDsSuQyQwUXz\nFjomYFzRkOTgzzTbzyOEVqxYMX369PLy8r179166dCk+Pv7ZZ5/NysoSn/PSSy/de++9dXV11dXV\nu3btQgiVl5ffeeedLVu2zM3NLSgo+Pbbb8+ePduhQ4cpU6bU1tbiq06ePDl//vzY2NiSkpKvvvqq\npKRk0aJFKSkp4ju3aNHinXfeaWhoKCgoyMrKunz58uLFi//zn/+sX78eITRz5kz8c6+//nrtr+AL\n8/LyHnjgga5du54+ffrbb78tLy9/++238/Pz77nnHumSA94wpELKz89HCMXGxrK9rXTXZvT2b9au\nTVrfGF006fIbPXuIwA033LBy5Ur82Wq1bt26FSGE9YFAnz59Xn311cDAQIQQ3q5i3bp1NTU127dv\n79evHz6nR48emzZt+uGHH4QdzV9//fXm5uatW7cK83hLly512c0vMDBw9uzZ+M7433/84x+dOnX6\n4osvpIu9bt265ubmd955R9gx/cEHH5w2bdrhw4fF2tS95IA3uF5DunTpUps2bUJDQ8UHt2zZcuLE\niZCQkFGjRrH9OW+5DK6fYNj27y2XwfUTDCsa8qV1jCuax71iBdi6clSlra5KW+3t25hPylyOnJ3S\nBX+ISFoi68KqtNURSUtcDrpsFBsTE9OrV6///e9/4oN//OMfXa5KT09v1apV//79L1++LBwcMWIE\nQujQoUMPP/wwQigjI6NNmzZxcXHiC++55x53N91Dhw5lZ2efPXvW4XAghAIDAw8fPuxNLszBgweD\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "a=1.2;b=0.6;c=0.8;d=0.3;\n", + "h=0.001;\n", + "[t y] = eulode(@predprey,tspan,y0,h,a,b,c,d);\n", + "\n", + "plot(t,y(:,1),t,y(:,2),'--')\n", + "legend('prey','predator');\n", + "title('(a) Euler time plot')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(y(:,1),y(:,2))\n", + "title('(b) Euler phase plane plot')\n", + "xlabel('prey population')\n", + "ylabel('pred population')" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGkCAIAAACgjIjwAAAACXBIWXMAABcSAAAXEgFnn9JSAAAA\nB3RJTUUH4QQSDhkOaHryRgAAACR0RVh0U29mdHdhcmUATUFUTEFCLCBUaGUgTWF0aFdvcmtzLCBJ\nbmMuPFjdGAAAACJ0RVh0Q3JlYXRpb24gVGltZQAxOC1BcHItMjAxNyAxMDoyNToxNJduS+UAACAA\nSURBVHic7d19eBNV2j/w+6GNbVMaGgqlhca2wJaXqIi8NiuaVBdcEF0FW18eH4X1UVqqC3QRYZVa\nLvB60EXqgryo7KIiSqW+sAvqrwoVoYigQCUgBKU1WGhqW6y1BdKG3x8Hx2GSTNI2yUxmvp8/vJLJ\nJDnEztwz59znPv918eJFAgAAkFo3qRsAAABAhIAEAAAygYAEAACygIAEAACygIAEAACygIAEAACy\nECl1AyCcbNmypa6ujoiuueaaUaNGdfTt69atYw9uvvnm1NTUADcufLhcrn/961/scbdu3aZNmyZt\newJFqf8uCJn/wjwk8NO+fftGjx7NHh89enTw4MEd/YT77rtv48aNRPTHP/5x27Zt/r/xnnvu+fnn\nnwUbu3XrFhsbO3jw4Ntvv/3aa68VeUtBQYHFYuG/WlhY+OWXX3JPFy9e7P4JRPTGG2+8+eab3NPx\n48c/9thj/jS4ubn5/Pnz7HFcXNwVV1zBf/XChQtRUVHscVRU1Llz5/z5TPkL4L9L/AcExboI4B+T\nycT+ZiZMmNC5Tzh69Cj3h1dWVub/G3v16iX+Z3zXXXe1trZ6e8trr73Gfyk3N5f/3vXr13v80qqq\nqri4OP6eDz30kJ8NvuOOO7h3vfvuu4JXuVMtEUVFRfn9M8hdAP9d4j8gKBW67MAvn332WUVFBXs8\nb968zn3I4MGDb7jhhp07dxJRYWHhzTffHKjmvf3222lpac8++6zPPR955JGXXnqJe7phw4b77rvP\n457Tp093vy0LiG7duk2aNIk9jozEMQhwCQ4G8MuyZcvYg759+wq6vzpk+vTpLCBVVFR8+eWXI0aM\n6OgnzJw5c9y4cUT0zTffvPDCC42NjWz7mjVrfAakBx544LXXXuOebty48Z577vG458qVK7dv305E\nGo3G6XR2tJHiIiMj//Of/wT2MwEUAAEJfKurq+NOoFOmTPG22/Hjx19//XWr1Xro0KGmpqahQ4de\neeWVt9xyyz333NOt26V8zjvuuOPPf/5ze3s7Eb366qudCEhjxozJyclhj6+88srp06ezxz///POF\nCxdEBhvuv//+DRs2cE9LS0vvvPNOj3t+9913TzzxBBElJSWZzea33nrL/+atWrXqwIEDBw4c4La8\n+OKLW7duZY//53/+Z9y4cW1tbVy3oUajWbVqFXvsvv3LL7/8+9//vmvXrr59+95yyy1z587t3r07\nEX388cdr1qzZs2dPcnKy2WyeO3dunz593BtTWVm5fv36EydO7Nu3Lzo6evjw4ddff/1DDz2k0+n8\n+be4t+fIkSPLly/fs2fPL7/8Mnbs2MceeywzM9P/H2ffvn1vvPEGa49Wqx02bNjVV189bdq0/v37\nd+gH9P8bIcxI3WcIYYB/V/H++++779De3v7oo496+xs7f/48f+exY8ey7UlJSX42wNuAUFlZGf+L\nnE6nt7fcfffd3NOIiAjxYYnrr7+e7fnvf/975syZ3Bv9GUPiD364e+WVVy56H2sRbF+/fr3g7UOG\nDGloaHDvMu3bt++ZM2f4zTh//jwXqgV69er10Ucf+fOzC9qzcePGiIgIwac988wz3vbnf1Rra+u9\n997rsT0RERGLFi3q0A8ISoWABL7xTyUNDQ3iO7gTBCT+ifLYsWP+NMBbQPrnP//JbR80aJC3t/Tt\n25d7rNFo/v3vf4t81wsvvMD2fPDBBy9evChVQIqIiHA/+xPR8OHDPX5ybm6ut2ZEREQMHz580KBB\n/C/94osvfP5bBO3RaDQev3rr1q3u+wsC0uTJk0V+FiJ6+umn/f8BQakQkMA37iToMXXqgw8+4J8y\n7r33XhZmzp8//9FHH918882CgMS/3/IzgYofXf7yl7+8++6777777jPPPMPf/tZbb3l7C0ej0XBn\nT49sNltMTAwRpaSk/PTTTxc7HpD279+/detWLiORiJ588smtv/r+++8v+heQiCgxMXHDhg2HDh0S\n3OvExsauXbv20KFDc+fO5W/kPuf999/ntqekpNhsNra9tLSU2z58+HCf/xb39pSVlbW3tx87doy7\niSSiq6++2n1//r+L/70RERGvvPJKe3t7a2sr/1YvIiKCtdOfHxCUCgEJfGPnaCLq37+/+6v8S9o/\n/vGPPj+Nf3pasWKFPw0QT/tOSUkRRCNvbxkyZIjD4RD5Iu48+MEHH7AtHQ1ITOfSvgUBgMtHr6mp\n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\nPHjZsmVbt2597733li9fftNNN0ndrtApKCg4ePDgiBEjNm/efPjw4Z07d86YMaOpqSk/P9/9uk0Z\nvvrqq8rKyj59+txyyy0iu8n0bHlRQaZOnZqRkbF161Zuy88//5yZmZmRkXHy5Enp2hU6P/zwQ11d\nnWDjzp07MzIyhg0b1t7eLkmrJLR+/fqMjIzt27dnZGRkZGRI3ZyQ2rgejwqOAAAGhElEQVRxY0ZG\nxj333HPhwgWp2yKN+vr6jIyMoUOHNjY28rc//PDDGRkZ69evl6phQfXNN99w/8dF/uzlebZUzh1S\ndXV1ZWWlXq+fOHEit7F79+6swtC2bduka1ro9O3bt1evXoKN48aNi46Obm1tdS9Tq2x2u3358uW3\n3Xbb9ddfL3VbJPDSSy8R0VNPPcWWcVGhb775hoji4+Pj4+P529lIycmTylypb9CgQT7/j8v2bKmc\ngMRKOYwZM0awfdSoUUR05MgRCdokDy6Xi60gJTgsFW/hwoVarfZvf/ub1A2RwNGjR2tqalJTU4cM\nGUJETqeztbVV6kaF2qhRoyIjI5ubm51OJ3/78ePH6dewpE6yPVsqJyDZbDYi0uv1gu3JyclEdODA\nAQnaJA/bt2+/cOFCRkaGSjI7mE2bNlVUVMyfP19tYZg5ceIEEV111VUVFRWTJ0++6qqrrr322uuu\nu27x4sXNzc1Sty5ENBrNzJkzz507N2/evLNnzxKRy+UqLS3dsmXL0KFDJ0yYIHUDJSPbs6Vy0r5r\na2uJKDU1VbA9PT2diNRzEAo0NDQUFhYS0V//+lep2xI6dXV1S5cuveGGG1RbEr66upqIjh8/Pm3a\ntN/97nc5OTkul2v37t2vv/76l19++dZbb6nk6iQvLy85OXndunUmkyk6OtrpdEZFRU2fPj03N1e1\nPZkk47OlcgJSe3s7EcXFxXl8lfVZqU1LS0teXt6PP/44ffr0G2+8UermhM6TTz7pcrkWL14sdUMk\n09DQQEQ2my0rK2v16tVsY0tLy3333XfkyJG1a9c+9thjkjYwRGpra7ds2WKz2fr27ZuRkXH27NmD\nBw9u27Zt9OjRFotF6tZJRrZnS+V02bHrHfdUTvbjRkRESNAmSZ0/fz43N/fAgQO33XbbvHnzpG5O\n6Lz//vvl5eWzZ8/u06eP1G2RDOt7IaKnnnqK26jVaufMmUOqyfFpbW29++67Kyoqnn766R07dqxd\nu3bTpk0ffPABEc2YMeOLL76QuoGSke3ZUjl3SGxFc4fDIdjOhu9SUlIkaJN0nE7njBkzPv/88wkT\nJjz33HNSNyeknn32Wb1e369fv48//pht4ab+sS0jR45U/MBSYmIiEcXExAiKMowePZqIvv/+e2ma\nFVoffvhhTU1NVlbWPffcw23s37//3LlzCwoK1q5dy34NFZLt2VI5AYlVx3HPbGZb2P8AlXA6nXl5\neRUVFX/4wx9UOB+2qanpwoULM2fOdH+JbXzjjTcUn2F15ZVXSt0E6bHBee5mkcNyyQ4dOiRBm+RB\ntmdL5QQkk8kUERGxa9eulpYWfqGqsrIyIho7dqx0TQup9vb2vLy8nTt33nDDDS+88ILUzZHAc889\nJ+gEb29vZzkdy5cvJ6L+/ftL07IQGjZsmE6na2pqamho4Beq+Prrr4koKSlJuqaFjk6nI6Jz584J\ntrOMD/aqOsn2bKmcMSStVjtp0qS2tra1a9dyG202W1lZWWxsrEqyrVwu16OPPsqi0apVq1Q4ckZE\nt9xyy8TLcTVU2FM1VBLq1q0bW1V51apV/O3s6OBPh1Qwk8lERGVlZYJbgQ0bNnCvqpNsz5aKKq56\n+vTpKVOm1NfX33nnnRaLxW63r1u3rr6+ftGiRSpZ8vzdd9994okniGjs2LHR0dGCV/Pz86+++mop\n2iUxp9N51VVXkZqKihJRS0vLnXfeefLkyZtuuunWW29tb29/4403Dhw40K9fv/fee08l9wfTpk2r\nqKhISEi49957MzIympqa3n777YMHD8bFxb377ruKrIK/f//+l19+mT0uLy8nIrPZzJ5Onz6dmwwr\nz7OlogISEZ04ceLxxx9nQ3NEpNfrZ8+erZJoRESbN28WKUzw0ksvqSr5m6POgEREP/7448KFCz/5\n5BNuy0033bRo0SL3+lJK1dra+vzzz2/cuJFf03rEiBGLFi0aOHCghA0Lnm3bts2ePdvjS88+++zt\nt9/OPZXh2VJpAYmpqqqqrq6OjY297rrrunVTTrckQCecPXuWDR2xgSWpmyMBl8v11Vdf/fLLL926\ndRs+fHj37t2lbpGMyOpsqcyABAAAYQd3DwAAIAsISAAAIAsISAAAIAsISAAAIAsISAAAIAsISAAA\nIAsISAAAIAsISAAAIAsISAAAIAsISAAAIAsISAAAIAsISAAAIAsISAAAIAsISAAAIAsISAAAIAsI\nSAAAIAv/H0HbHRZqb02MAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "a=10;b=0.6;c=0.8;d=0.3;\n", + "tspan=[0 10];\n", + "[t y] = rk4sys(@predprey,tspan,y0,h,a,b,c,d);\n", + "plot(t,y(:,1),t,y(:,2),'--')\n", + "title('(c) RK4 time plot')" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nZj+aUWrny/9cd3f3d99912AwtLW18ecTubu7s3oePnx4165d3CRYInrxxRd3/erMmTM9Vht6hECS\nEO53eOTIkaZ7+VeV+KljMBj443imgcT/rROMn5hledp3UFCQaRp1966IiAj+X8emuF/vzz77jJUM\nPJD4vbozZ87w/8CvrKw0+5bXX3+de8vjjz/OlT/99NOWP5p/uevxxx9nhX/+859ZiVKptNwl5f/R\nvWXLFv6u+Ph4btexY8es2wJ9nQZt9jRNP7fHZpTa+fLr8/zzz/M/gpueSkQZGRlm34Jp31aHSQ0S\n0tbWxjYiIiJM93799dfcdkJCArft5uY2ZcoUvV7f3Y+VyWTcNregQ/94enomJSXxP92y6urquLi4\nvXv3/td//Zfp3n/84x9sjntaWto999wzkIrxPfLII9z2iBEjoqKivv32W/aysrJy9OjRpm9JSUnh\ntseNG8dtc/8iRHTp0qXc3Nw9e/Z89913/HION2d91KhRbEOv14eFhfn5+UVGRt56660ajWbatGkK\nhYJ7yxdffMFtf/jhh9yUFiI6deoUt/3999/fdtttFk/6Bv1ogX6cpqkem1Fq58uvD78XSEQPPPDA\nvn37uPr0vjIwEAgkCXF3d2fT4cz+zl+6dInb9vHx4e+ycCGaiIxGI7ft6+vbpyrFxMQolcrGxkY2\nJ7uzs3P9+vXl5eX79+/38Oj2f54pU6Zwv8yVlZWTJ0/ev3+/aSatWLGCVf7ee+/dv38/K/zPf/7D\nHdDQ0LB//343NzduMaQeeXl5CSo2fPhwbtvsLfpeXl78yV2///3vTY85ffr05MmT6+vre1OH5cuX\nb9++nTuRq1evstbYsmWLu7t7VlbW8uXLuV3cu7j5Wqb6tLJAP1qA06fTNP3cHptRaufLr4/gl4j/\nd4PTr2QhHQgkCfHx8WG/IWb/IvPw8OBGHvgZQ0SCEQyBn3/+mdv+4x//2KcqpaenP/bYY0T01Vdf\n3XXXXSwvDx06lJOTY+FO27lz586YMePpp59mL0+cOGE2k7q6uojo6tWr3EUXATY636e1XgQtw30K\n4+bWzxvvFi9ezH1Nh4WFpaenBwUFubm5HTp06JVXXhEcfMstt1RWVq5bt27Pnj3ffPMN/1/HYDC8\n+OKL8fHxbFKyl5cXtzc+Pr676vG/YXs0kBbo02n2g9TO19PTs7Ozk20Lfok6Ojq4bQt/e4F1oaEl\nJDY2tqioiIiuXLliNBoFv0vjxo3jFnE4ffo0f5fgpQB/7+DBg/tXt6lTpy5atGjVqlXs5apVq555\n5hn+rbICCxYs8PDw4G4WYZm0d+9e/h+ettDZ2VlVVcWN0hiNRq6vRkQWKmwZf3Bp9+7d3O0pjY2N\nZo/39/dfvnw56wm1tLTs27fv7bff5i7pb9++nQVSeHj4sWPHWOHLL79sen9SPwykBfp6mn0ltfMN\nDw/n/virq6vj7+L/ELO9PbAFrNQgIWPGjGEbBoPhhx9+EOzlj3GvWrWqubmZbR88eJCNp3WHu5XP\n3d1dMFDeJ88//zw3v/znn39eu3at5ePnzZuXl5fHvTxx4kRcXFxDQwNX4mcOfwqvp6cnK+xTPfmz\nrt94442ffvqJbXt5efX+6pcA/49urhE6Ojpyc3NND/76669bWlq4l76+vtOmTXvyySe5Eu7f7v77\n7+cKzXZBfvjhhwULFvS1tv1ugT6dZj9I7Xz5N+2+9tpr3L9aXV3dRx99xO2aMWMGt82fPYhrS9Yn\n9qwK+A3/ztP169cL9p45c4Z/v9GwYcMef/zxGTNmCG7CMJ1lN3ToULZr0qRJvamGhWVSFy5cyO3y\n8/Pj35LS3bv4mUREI0eOrK+vt/DpA59lR0Rjx46dM2fO3XffzS/kT6OyMM3s3XffNa0A/xJ9ZGRk\nQUHB+++/z03TZx544AF28OOPP85mf2RkZGzbtq2wsPCtt97i323D/eNevHjx5ptv5sonTJjw1ltv\nFRYWbtu2beHChexDhwwZYvUW6O70+3Sa/WhGqZ1vY2Mjvwt16623zp07NyUlhV84btw4/kevXLmS\n/xF+fn5DhgwZMmQIf34/9BsCSUIMBgP365qUlGR6wLp168iEt7c397gKMgmkw4cPc7v4s3ItsBBI\n9fX1/Pzj38du4V387yb2a28hkwYYSJ6enoJvJUZwS1Bfv0n/+c9/mv5MuvFvZ34gmT2YUSqV/Joc\nOHDA8rBSX7+ge9MC3Z1+n06zH80otfO9fv16cXGxhS54UFCQ4Aaj//znP2aPRyBZBYbsJMTNzY1b\nmO7zzz/nBnY4CxYsyM/P53/1h4WFFRUVWXiI38cff8w2vL29+bNy+0ehUPCHnvijHBY88cQT+fn5\n3MszZ87ExMTwx+6syM3N7dNPP33yySf5N6M88MADX331VV9nGPLNmDEjLy+P/0108803//Of/zS7\n6sydd945btw408VsPD09586d++233/Jrcuedd37//fdPPvmk6XID3t7eDz30EPd0q14aSAv06TT7\nR1LnS0RxcXFHjx6dNWuWoD5+fn5/+9vfKioqRowYwS8fPnx4aWlpcnJyX0eSoTfwgD5paWhoUKlU\n7A+61157bdGiRabHGI3Gr7766urVq8OHD7e8WKrRaFQoFOyK9LPPPvuPf/zDRtUWl9nHrzU3N3/9\n9ddGozEyMrJPs7YsMBqNxcXFra2tgwcPvuOOOyzP4DIajcePH9fr9V1dXW5uboMHD544caKFtxiN\nxh9++OHMmTNGo/Gmm24aN25c7yeAWLcF+nSa/Sad8+Xqc/DgQXb9KSgo6LbbbrPRiYMFIgfSN998\nU1ZWdu7cOZlMNn78eI1GI7jDhqmvr9dqtTqdLiAgQKPRREdH27+qdrN48WI2mU2pVNbW1g7kR23e\nvJn1igYNGlRXV9fvKXYS52rPPzXlai3gaufrOkQLpKamprS0tKNHj/IL/f39V69eLVjFvbCwMCMj\ngz//Jz4+fu3atfwr/M6kpaXlD3/4w7lz54jo3XfffeKJJ/r3c4xG4+jRo0+cOEFE//u//zvwx/1J\nFr6eXK0FXO18XYdogZSamlpaWhoVFbV06dLw8PCmpqZt27Zt2LBBJpN99tln3HLRhw8ffvTRR/39\n/XNycuLi4urq6rKysr799tuZM2dmZ2eLUnOQGnw9uVoLuNr5ug5xAqmpqemOO+7w8PA4ePBgQEAA\nV/7UU0+VlJQsW7aMe8r1jBkzKioq1qxZw90x0NLSkpCQcOnSpaKiItOHA4EL6urq+stf/sK2PTw8\n/vWvf4lbH/tztRZwtfN1HeKs1MCW+AwICOCnERFFR0eXlJRwF07q6uoqKirkcjn//jVfX9+kpKT8\n/Pzdu3enp6fbs9ogTR4eHvwlBlyQq7WAq52v6xBnGolarfbw8GhpaeEWkmJOnjxJRNychcrKSiIy\nXV+EzXKuqqqyR10BAMAuxAkkT0/P+fPnt7e3L1my5PLly0RkNBoLCwt37tw5evToxMREdphOpyNz\nq1Gx6aH8h9sDAICjE21x1fT0dIVCsXHjxtjYWJlM1tnZ6eXlNWfOnLS0NO4OtfPnzxNRcHCw4L0q\nlYqIenNLJgAAOArRAun8+fM7d+7U6XTDhg0LDQ29fPny0aNHd+/ePWHChLi4OHYMe9hBd3dEmy47\nL8BfPQwAABh2N4gEiRNIbW1tycnJ9fX1K1as4J72ePr06dTU1Hnz5n3wwQdscTbWVTJ9XBiLItOl\nWUxJtt0dSFhYGJpx4NCMA4c2tAop/6UuzjWkzz//vL6+Pj4+nv/s4ZEjRz7//PNExK0PHRISQuae\nxcImOwQFBdmpugAAYHviBBKbj2C6dBWbPsc9wosta3jhwgXBYayExRUAADgHcQLJ39+fzD2pnj20\nke0lotjYWHd39wMHDrS2tvIPY88NiomJsUddAQDALsQJpNjYWCLSarWC3s+WLVu4vUTk4+Mzffr0\nrq4u/kPedDqdVqsdNGhQUlKSHavsujBqbxVoxoFDGzo9cSY1xMbGxsbGlpaW3n///bNmzQoNDb1y\n5crHH3989OhRPz+/p556ijty0aJFBw8e3LBhQ2NjY1xc3NmzZzdu3GgwGJYsWTKQx9sAAIDUiLa4\naltb2+rVq7dt28ZfxjsqKio7O3vUqFH8I0+dOrV48WI2kYGI5HL5woULZ86c2eNHYE4OAICAlL8Y\nnfkBfVJudwAAUUj5ixGPRAQAAElAIAEAgCQgkAAAQBIQSAAAIAkIJAAAkAQEEgAASAICCQAAJAGB\nBAAAkoBAAgAASUAgAQCAJCCQAABAEhBIAAAgCQgkAACQBAQSAABIAgIJAAAkAYEEAACSgEACAABJ\nQCABAIAkIJAAAEASEEgAACAJCCQAAJAEBBIAAEiCh9gVEJO+qV3f3KZvaiciZaCMFSrl3tw2AADY\njSsGUlZRbf7hBpZDmpAA/i59czsR6ZvalYEyTYiciGarhyKiAADswLUCKbWgOr+sIUWtyExQaULk\nFmKmpKZZ39Re19SeVVSrb27XN7WnqBVENFs9lAUVAABYlwsFUlzuEWWgd+3y2N50dzQhcgohIsok\nFf2aT5vLGlILqrlwykxQoecEAGAtv7t+/brYdbCVsLCwEydOsO243COz1QoWJAOkb2ovqWneXNbA\nxvc0IXIM6wGAo+B/MUqNS/SQWN/IKmlERMpAWUrgL9mWX9ZARFy3CckEANBvzh9I+WUN+ub2venj\nbfHDWSylqBWs25RVVFtScxnJBADQD84fSJvLGjYlR9j6UwTdJiQTAEBfOXkgldQ0l9Rc3mvfeXEp\naiQTAECfOXkgbS47tyJBJdan85OJf50JE8cBAEw5eSCV1DTbYbyuRyyZBDMgMGscAIDPyQNJ39Qu\nne4INwMiv6xhc1lD3PojmDIOAMBx5kBqHRwqWBlIIrq7yCSd7AQAsD9nDqS2wX9QBnqLXQtLWDKx\nKeOpBdUskDCUBwCuyZkfP9HpPVgpd4BvdmWgLEWtqF0eOzUkQN/UpsopTS2oLqlpFrteAAB25cw9\nJCIKdqiuhmBWHhFpQuToMAGAi3DmHlLb4FAH/SpnHabMBBU6TADgOpy8h6SUS/oakmWCDpNSLlMG\neqPDBADOypl7SJ0+g8WugnWwDtNstQIdJgBwYs7eQ3KizoSgw6QJkU8NCbD8mEEAAAfitD0k9oRy\np8RNydtc1sA6TE58sgDgOpw2kIjIs/WS2FWwoRS1Ym/6eLYwUtz6IxjHAwBH57RDdvrmNrGrYA+m\n43hKuWy2WoFxPABwOM7cQ/Joc+YekgA3jldS04xxPABwRM4cSC4I43gA4LicdsjOlWE+HgA4Iqft\nIWHAijAfDwAcitMGEjn7LLve48bxuPtqEUsAIEEYsnMV/HE87tmAeAITAEgHAsnlcM9TZ+vjaULk\nmCYOAFLgzEN2YAG3Ph6miQOARCCQXBouLwGAdDjtkF0dvlh7DZeXAEAK0EOC33DTxFMLqnFTLQDY\nGQIJhPix9Ltni7OKajGOBwB2gEAC81gsbUqOwKwHALAPBBJYwl8cD7EEADblzIHk6UqrfdtUilqx\nKTni+mvxSrkMa7YCgI04cyCB1WUmqjDrAQBsBIEEfSaYjJdf1iB2jQDAGSCQoJ+4WMraU6vKKcVk\nPAAYIAQSDAiLpcwEFSbjAcAAIZDACrAEEQAMHAIJrIbF0t70SMIccQDoOwQSWJkmRC6YI45YAoDe\nQCCBrXBzxHHrEgD0hvirfev1+n379p08edLDwyMqKioqKmrYsGGCY+rr67VarU6nCwgI0Gg00dHR\nolQV+oH/PECsIw4AFogZSNeuXcvKyiosLORKPvzwQyI6ceIE/7DCwsKMjIyuri728p133omPj1+7\ndq2Xl5c9awsDgVgCgB6JGUgLFizYt29feHj4//zP/4SHh3d2dtbW1v773//mH3P48OFly5b5+/vn\n5OTExcXV1dVlZWUVFxfn5ORkZ2eLVXPoH0EsTQ0JYM9hAgAgot9dv35dlA/+8MMPV6xYERUVtXnz\nZk9Pz+4OmzFjRkVFxZo1a6ZNm8ZKWlpaEhISLl26VFRUpFQqu3tjVlHtujfXXfx0tdVrDlaRX9aQ\ntadWKZfN/vXxgABgB2FhYYJRKOkQbVLD22+/TUQvvfSShTSqq6urqKiQy+VcGhGRr69vUlISEe3e\nvdsO9QQbYXfUzlYrNpc14KlLAEBiBVJ1dXV9fX1wcHBERAQRdXZ2trW1mR5WWVlJRBMnThSUq9Vq\nIqqqqrJ9TcG2uDtq2UIPiCUAVyZOIJ06dYqIxowZU1pampSUNGbMmNtvv338+PErV65saWnhDtPp\ndEQklwuvfisUCiIqLy+3Y5XBhgSxhFuXAFyTOIFUV1dHRCdPnkxNTb1+/frMmTNnzJjx+9///oMP\nPnjssceuXbvGDjt//jwRBQcHC96uUqmIiB9d4ASw/hCAixNnll1TUxMR6XS6+Pj49evXs8LW1tZH\nH320qqoqLy/vmWeeISKDwUBEfn5+Zn+I0Wjs8YPCwsK4bclexwM+bibe5rIGVU5pilqRmaBSBsrE\nrheAA+N/E0qZOD0kNuZGRC+99BJX6OPjs2jRIuLNVmDzHerr6wVvZ1Hk7u7e4wed4LFGxcFOsCwe\ngBU5yjehOIF08803E5G3t7dgUYYJEyYQ0ZkzZ9jLkJAQImpsbBS8nU12CAoKskNVQURsWTzEEoCL\nECeQbr311t4cNmLECCK6cOGCoJyVsLgCp4dYAnAR4gTSuHHj/P3929ra2MUkzvfff09EQ4cOZS9j\nY2Pd3d0PHDjQ2trKP0yr1RJRTEyMveoL4uPHEhYRB3BK4gSSm5vbzJkziSg3N5dfnpeXR0TcbbA+\nPj7Tp0/v6upi5YxOp9NqtYMGDWK3x4JLYbFUuzwWz7YAcD6irWWXnp7+xRdffPDBB/X19ffee6/B\nYNi6dWt5efnw4cOffPJJ7rBFixYdPHhww4YNjY2NcXFxZ8+e3bhxo8FgWLJkia+vr1iVB9FlJqoy\nE1VZRbVx649oQuSYiQfgBERby46ILl68mJGR8eWXX3Ild911V3Z29pAhQ/iHnTp1avHixWwiAxHJ\n5fKFCxeyDpYFWMvOdWQV1eYfbkAsAfSGlNeyEzOQbAqB5GoQSwC9IeVAwhNjwUmwB9Ti2hKA40Ig\ngVNBLAE4LgQSOCHEEoAjQiCB08pMVG1KjiDcTgvgIBBI4MywygOAA0EggfNDLAE4BAQSuArEEoDE\nIZDAtXCxhMcAAkgNAglckSZEzn86bVZRLWIJQHQIJHBd3EPTS2qaEUsAokMggasTxFJ+WYPYNQJw\nUQgkACJeLG0ua4jLPYJYArA/BBLAb1gszVYrsvbUxuUeKalpFrtGAC4EgQQglKJW1C6Pna1WpBZU\npxZUI5YA7AOBBGAei6WpIQGIJQD7QCABWCKIJUzDA7AdBBJAz7hYwvLhALaDQALoLcQSgE0hkAD6\nhsUSHrYEYHUIJID+yExU7U0bT1inFcB6EEgA/aQMlPHXacXKQwADhEACGBBundaSmua49VjiAaD/\nEEgAVsCWeMhMUGGJB4B+QyABWA2WeAAYCAQSgJXhXlqA/kEgAdgEbloC6CsEEoAN4aYlgN5DIAHY\nHG5aAugNBBKAPQhuWsLscABTCCQA++FuWsLscABTCCQAexPMDscIHgCDQAIQB6bhAQggkADEhFgC\n4CCQAMTHYomIsEgruDIEEoBUsGl4JTXNmIYHrslD7AoAwG80IXJNujy/rCFrT+1XNZdnq4dqQuRi\nVwrATtBDApAcrIYHrgmBBCBRmO8ArgaBBCBp3Gp4WHYInB4CCcABZCaq2LJDeCgtODFMagBwDJjv\nAE4PPSQAR4L5DuDEEEgAjgfzHcApIZAAHJVgfQexqwMwUAgkAMe2KTliU3JESU0znmcBjg6BBODw\nUtSKvenj8TwLcHQIJAAngQtL4OgQSABOBReWwHEhkACcEC4sgSNCIAE4J1xYAoeDQAJwZriwBA4E\ngQTg/FLUir1p44kIj/4DKUMgAbgEZaCMXVjK2lOLrhJIEwIJwIVgBA+kDIEE4HL4z1jC1HCQDgQS\ngItiz1jC1HCQDgQSgOvShMgxNRykA4EE4Oq4ETxcWAJxIZAAgIgoM1G1KTmCiFILqjA1HESBQAKA\nX2hC5JuSI2arFZgaDqJAIAHADTA1HMSCQAIAM1LUCozggZ0hkADAPIzggZ0hkADAEv4IXlZRLWIJ\nbAeBBAA9YyN4+ub21IIq3EULNoJAAoBe4UbwcBct2AgCCQD6AOvgge0gkACgz/jr4KGrBNbiIXYF\nfnHs2LELFy4Q0d133226t76+XqvV6nS6gIAAjUYTHR1t9woCwA00IXJNujy/rCFu/RFNiDwzQaUM\nlIldKXBskgik06dP//Wvf+3o6CCiEydOCPYWFhZmZGR0dXWxl++88058fPzatWu9vLzsXVEAuFGK\nWpGiVqQWVKtySjclR6SoFWLXCByYJIbsli5dGhgYaHbX4cOHly1b5uPjs27duh9++GHXrl0TJkwo\nLi7OycmxcyUBoDt4Fi1YhfiBtHnz5qNHj65YscLs3ldeeYWIsrKyEhISPD09R40atX79+sGDB3/0\n0Ud6vd6e9QQACwS3K4ldHXBIIgfS2bNn16xZc999902aNMl0b11dXUVFhVwunzZtGlfo6+ublJRE\nRLt377ZfRQGgF9jtSpjsAP0jciBlZGT4+PgsX77c7N7KykoimjhxoqBcrVYTEsCI+wAAGbpJREFU\nUVVVla2rBwB9xT30D2uzQl+JGUgfffRRaWnp0qVLAwICzB6g0+mISC6XC8oVCgURlZeX27qGANA/\nbASPiOLWH8HarNBLogXShQsXXnnllSlTprDxN7POnz9PRMHBwYJylUpFRC0tLTatIQAM0KbkiMwE\nFSY7QC+JNu37xRdfNBqNK1eutHCMwWAgIj8/P7N7jUZjj58SFhbGbZtOKAcAW2PzwrOKalU5pSsS\nVJmJKrFr5Ir434RSJk4g7dixo6SkZNmyZbfccouFwzw9PYmovr5eUM6iyN3dvccPQggBSEFmomrq\nqIDUgmp9cztuobU//jehlMNJnEB69dVX5XL58OHDv/jiC1bC3ffKSqKjowMCAkJCQoiosbFR8HY2\n2SEoKMh+NQaAgdGEyGuXx7KVHVKiFegqgSlxAunKlSsdHR3z58833cUKt27dGh0dPWLECCJiSwrx\nsRIWVwDgQFLUCmWgLKuotiS3eVPyaHSVgE+cQFq1apXgCpDBYHjuueeIaM2aNUQ0cuRIIoqNjXV3\ndz9w4EBra6uPjw93sFarJaKYmBi7VhoArAGL4EF3xAmke+65R1DS2dnJAol/D6yPj8/06dN37tyZ\nl5e3cOFCVqjT6bRa7aBBgyxMzwMAiUtRKzQh8qw9takFVegqASOJxVUtWLRo0cGDBzds2NDY2BgX\nF3f27NmNGzcaDIYlS5b4+vqKXTsA6D9loGxTcgS6SsARfy07yxQKxfvvv//HP/7xk08+efrpp199\n9VWj0ZidnT1z5kyxqwYAVsDdQouHo4NUekienp7dTdEeNWrUJ598Yuf6AIA9sa5SakE1ukquTOo9\nJABwEegqAQIJACRkU3LEbLUitaAaqw25IAQSAEgLv6uETHIpCCQAkCLWVcIzLFwKAgkAJApdJVeD\nQAIASeO6SngyutNDIAGA1KWoFXvTxuub2zF859wQSADgANiyDlNDAtBVcmJSuTEWAKBHbLFwPFfJ\nWaGHBACOhD1XSSmXqXJK88saxK4OWBN6SADgeDITVcGBsqw9tV/VXEZXyWmghwQADgmTwp0PAgkA\nHBgmhTsTBBIAODY2KbykphmTwh0dAgkAHJ4yULY3fTxmOjg6TGoAACfBn+mwKTlC7OpAn6GHBADO\ng5vpEJd7BMN3DgeBBADOhpvpgOE7x4IhOwBwQtyaDrhRyYGghwQAzomt6UC4UclxIJAAwJlh+M6B\nYMgOAJwcf/gOs++kDD0kAHB+3PAdZt9JGQIJAFwFG77DzbOShSE7AHAh3PBdXVN7ZqJK7OrADdBD\nAgDXwobv8EB0CUIgAYAr2pQcoZTLMCNcUhBIAOCiMhNVmBEuKbiGBACuC5eUJAU9JABwabikJB0I\nJAAAXFKSBAQSAAAR75JSSU2z2HVxUQgkAIBfpKgVm5IjUguqs4pqxa6LK0IgAQD8RhMi35s2Pv9w\nAzLJ/hBIAAA3UAbKMM1BFAgkAAAzMM3B/hBIAADmZSaqNCFyZJLdIJAAALqFqXf2hEACALCEm3qH\nFYZsDYEEANADTYh8U3JE1p5aTL2zKQQSAEDPMB3cDhBIAAC9wqaDl9Q0I5NsBIEEANAHe9PHs1uU\nxK6IE0IgAQD0zabkCCJCJlkdAgkAoM9+vW0WSzlYEwIJAKA/MhNVWMrBuhBIAAD9hKUcrAuBBADQ\nf8gkK0IgAQAMCDLJWhBIAAADhUyyCgQSAIAVcJkkdkUcGAIJAMA6fs0k3J/UTwgkAACryUxUERHW\nFuofBBIAgDVtSo7Aenf9g0ACALCyvenjkUn9gEACALC+Tcmj8w834Jl+fYJAAgCwPmWgjD3TD88+\n7z0EEgCATbDnzGIB1t5DIAEA2IomRJ4SrcANs72EQAIAsCF2c9JmXEzqBQQSAIBtZSaqMOmuNxBI\nAAA2xybdYYKDZQgkAACbY5PuMMHBMgQSAIA9cBMcxK6IdCGQAADsBCvdWYZAAgCwn8xE1QrcLdsN\nBBIAgP1oQuQrElToJJmFQAIAsCsM3HXHQ8TPrqysrKioqK6uJqLw8PDJkyePGDHC7JH19fVarVan\n0wUEBGg0mujoaPvWFADAmjITVXG55bPVCmWgTOy6SIg4gXTs2LG///3v9fX1gvKUlJSlS5cKCgsL\nCzMyMrq6utjLd955Jz4+fu3atV5eXvaoKwCAtf0ycLendlNyhNh1kRBxhux+/PHHxsbGv/zlL+vW\nrdu5c+fOnTtfeOGFQYMG5efnv/HGG/wjDx8+vGzZMh8fn3Xr1v3www+7du2aMGFCcXFxTk6OKDUH\nALAKtnwDZjfw/e769ev2/9T6+vqbbrppyJAh/ML9+/fPnTvX29v7yJEjbm6/JOWMGTMqKirWrFkz\nbdo0VtLS0pKQkHDp0qWioiKlUtndR2QV1a57c93FT1fb7CQAAAYkv6xhc1nD3vTx9vzQsLCwEydO\n2PMTe0+cHtKwYcMEaUREkydPlslkbW1tFy5cYCV1dXUVFRVyuZxLIyLy9fVNSkoiot27d9utwgAA\nVpeiVhAROkkcCc2yMxqNRqORiAICAlhJZWUlEU2cOFFwpFqtJqKqKtzwDACObbZakVpQLXYtpEJC\ngVRcXNzR0REaGsrNVtDpdEQkl8sFRyoUCiIqLy+3cw0BAKwrRa1QymXoJDFSCaSmpqbMzEwieu65\n57jC8+fPE1FwcLDgYJVKRUQtLS12rCAAgE3MVitwTxIj5n1InNbW1vT09IsXL86ZM2fq1KlcucFg\nICI/Pz+z72Lje5aFhYVx25K9jgcArixFrdhc1lBS06wJEY4GWQv/m1DKxA+ka9eupaWllZeX33ff\nfUuWLOHv8vT0JCLT25VYFLm7u/f4wxFCACB9s9WKzWXnbBdI/G9CKYeTyEN2nZ2d8+bNO3ToUGJi\n4qpVqwR7Q0JCiKixsVFQziY7BAUF2aeSAAA2pQmR55c14FFJYgZSZ2dnenp6aWnpn/70J8H9sAxb\nSYibBc5hJSyuAAAcnTJQpgkJwNQG0QLJYDCkp6fv27dvypQpr7/+utljYmNj3d3dDxw40Nrayi/X\narVEFBMTY4+KAgDY3my14quay2LXQmTiBJLRaHz66adZGuXm5nZ3NcjHx2f69OldXV15eXlcoU6n\n02q1gwYNYrfHAgA4ATZqJ3YtRCbOpIYdO3Z8+eWXRNTR0bFgwQLB3gULFowdO5ZtL1q06ODBgxs2\nbGhsbIyLizt79uzGjRsNBsOSJUt8fX3tXW8AANvgRu1sN7VB+sQJJDafm4gOHTpkunfWrFnctkKh\neP/99xcvXvzJJ5988sknRCSXy7Ozs2fOnGmfqgIA2IcmRG7TuXbSJ04gPfzwww8//HAvDx41ahSL\nIgAAJxYc6OpLNkhlpQYAABenCZHrm1165jcCCQBAEpSBMn1TuyvfjYRAAgCQCmWgTN/cJnYtRINA\nAgCQCqVcJnYVxIRAAgAASUAgAQBICK4hAQCAJCgDXXfUDoEEACAV+uZ2pdxb7FqIBoEEACAVrjxe\nRwgkAACJYGmEITsAABCZvrlNExIgdi3EhEACAJAEF19ZlRBIAAASUVLTPHUUekgAACCqkppmfVM7\nekgAACCyzWXnUtQKsWshMgQSAID48ssaZquHil0LkSGQAABEllVUm6JWuPh4HSGQAABEt2JPLbpH\nhEACABBXXO4RdI8YD7ErAADguvLLGkpqLl9PHy92RSQBPSQAANFk7andmx4pdi2kAoEEACCOuNwj\nmQkqDNZxEEgAACKIyz2iDPTGvUd8CCQAAHvLKqolok3JEWJXRFoQSAAAdpVVVFtS07wXExlMYJYd\nAID9pBZU65vakEZmIZAAAOwkLvcIESGNuoMhOwAAe4jLPaIJkSONLEAgAQDYVn5ZgyqndLZakZmo\nErsukoYhOwAAG0otqM4va9ibHon7jXqEHhIAgE2U1DSrckqJqHZ5LNKoN9BDAgCwPnSM+gE9JAAA\na2JXjAgdo75DDwkAwDryyxqy9tQq5bJNyRGIon5AIAEADFR+WcPmsoaSmsubkiOwPF2/IZAAAPqP\nH0W4x2iAEEgAAP3BBuj0Te2IImtBIAEA9A2LIiLKTFBhgM6KEEgAAL2ib2rP2lNbUtOsCZEjimwB\ngQQA0ANudC5FrdibNl4ZKBO7Rs4JgQQAYF5+WcNXNZfzyxpS1Ap0iewAgQQAcAOWQyU1zfqm9hUJ\nqtrlsegS2QcCCQCA6MYcwtCcKBBIAODSkEPSgUACAFfEbmjVN7cr5TJNiBw5JAUIJABwFfllDXVN\n7fmHG1hnaLZaoQmRI4ekA4EEAM6spKb5q1OXS2qaS2ouKwNlmhA5Vj6VLAQSADgb1hMqqWnWN7dz\nnaFNyaPRGZI4BBIAOAMuhEpqLhMRRuQcEQIJABwSmxfHTZDThAQoA73RE3JoCCQAcAz6pvaSmmZu\nVgIRpagV7Gl4Srk3QsgJIJAAQKJY14clEBGxq0FIICeGQAIASeA6QNxkBEIfyMUgkABAHPllDUTE\nTyB2HUgTIp86KgAJ5IIQSABgc1zvR9/cXlLTzEpY/CjlssxEFeIHCIEEANbFsodu7PoQERc/GH+D\n7iCQAKCfesyezEQVESF+oJcQSADQA31Tu765jU14+2XADdkDNoBAAoBfsGnW9GuPh0yCh4i4GQdE\nhOwB60IgAbgQrq9D5lJHGShTymWsx4PgAftDIAE4FUHkEOv3NLezXWQudQhDbSANCCQAR8Lyhm2w\nvNE3t+ub2sxGDhEp5bLZaoUyUIa+DkgfAglAKvhhQ7z+DRFZyBulXDZbPZSIEDng6BBIADZnNmlY\nz4Yshg0Rsf4NYVQNXAACCaA/9L+Eyi9Xa8hizNCvSUNE6NkAdAeBBPBbutCNnRgyCRiymDHsv1ND\nArg+DSFpAHoNgQTOg58rZC5aiMhCuhAXKhYDhpAxALaBQAKp0P+WHG38l1yiEK+/QuZChW7MFTKJ\nluBApAuAdDlGINXX12u1Wp1OFxAQoNFooqOjxa4REJlECN2YDYIgoV97J8TLEjIXJ3RjT+WGErls\nakjAjUdiWAzASThAIBUWFmZkZHR1dbGX77zzTnx8/Nq1a728vCy/sdN7sO1rJ2n6GyKhzWw5mUsO\n4oUHdZ8fZBIhvxZ6CwoFvZNfC9FHAYDfSD2QDh8+vGzZMn9//5ycnLi4uLq6uqysrOLi4pycnOzs\nbAtvnDoqYF3bJSLSN7WL8n0n+OKmGyOhu2PqzLzrhhJ+TpjbK3y74NwFY1lmyuWy4EAZEQk6IsTL\nD9MfCwAwcL+7fv262HWwZMaMGRUVFWvWrJk2bRoraWlpSUhIuHTpUlFRkVKptPDesLCwWW98TrwL\nD8pA75KaZk2IXPC1bpngS1+41yQD+Ey/uPk9iV+P8e7xmGBBrghjxtvCXgAATlhY2IkTJ8SuhXmS\n7iHV1dVVVFTI5XIujYjI19c3KSkpPz9/9+7d6enpln8CWxKfU1LTnJmgMu2p9JLge1+410ljQMr/\n+zoQNOPAoQ2dnqQDqbKykogmTpwoKFer1fn5+VVVVX39gZoQOTlvcgAAODQ3sStgiU6nIyK5XC4o\nVygURFReXi5CnQAAwDYkHUjnz58nouDgYEG5SqUiopaWFhHqBAAAtiHpITuDwUBEfn5+ZvcajcYe\nf0JYWJiV6+SS0IxWgWYcOLShc5N0IHl6ehJRfX29oJxFkbu7u+W34/onAIADkfSQXUhICBE1NjYK\nytlkh6CgIBHqBAAAtiHpQBoxYgQRXbhwQVDOSlhcAQCAc5B0IMXGxrq7ux84cKC1tZVfrtVqiSgm\nJkakegEAgPVJOpB8fHymT5/e1dWVl5fHFep0Oq1WO2jQoKSkJBHrBgAA1iXpSQ1EtGjRooMHD27Y\nsKGxsTEuLu7s2bMbN240GAxLlizx9fUVu3YAAGA1Ul/LjohOnTq1ePFiNpGBiORy+cKFC2fOnClu\nrQAAwLocIJAAAMAVSPoaEgAAuA4EEgAASAICCQAAJEHqs+z6ob6+XqvV6nS6gIAAjUYTHR0tdo2k\nrrKysqKiorq6mojCw8MnT57Mbkk2hbbtpWPHjrHbt++++27TvWhGy/R6/b59+06ePOnh4REVFRUV\nFTVs2DDBMWhDy7755puysrJz587JZLLx48drNBofHx/Tw6TWjM42qaGwsDAjI6Orq4sriY+PX7t2\nrZeXl4i1kqxjx479/e9/N10tMCUlZenSpYJCtG0vnT59+v777+/o6CBzCyqiGS24du1aVlZWYWGh\noFzQjGhDC5qamtLS0o4ePcov9Pf3X7169eTJk/mFUmzG606krKwsNDQ0Ojq6qKioo6NDp9P99a9/\nDQ0Nfemll8SumkTt2rVr9OjRixcvLioqOn78+PHjx997773IyMjQ0NDXX3+dfyTatvf++7//e8qU\nKaGhoaGhoYJdaEbL5s6dGxoaet9993366ac6na6qqmrXrl1paWn8Y9CGlqWkpISGhj7yyCMVFRUd\nHR3nzp1bvXp1aGjobbfd9uOPP3KHSbMZnSqQHn744dDQ0F27dnElV69eveOOO0JDQ2tra8Wrl3T9\n+OOPFy5cEBTu27cvNDR03LhxBoOBK0Tb9lJ+fn5oaGhxcbHZQEIzWrBt2zb2TdrR0WHhMLShBZcu\nXQoNDR09enRzczO//MknnwwNDc3Pz+dKpNmMzjOpoa6urqKiQi6XT5s2jSv09fVlKwzt3r1bvKpJ\n17Bhw4YMGSIonDx5skwma2tr45a1Rdv20tmzZ9esWXPfffdNmjTJdC+a0bK3336biF566SX23Bmz\n0IaWHT9+nIgCAgICAgL45eziUG1tLXsp2WZ0nkBiSzlMnDhRUK5Wq4moqqpKhDo5JqPRyJ44xf0/\njbbtpYyMDB8fn+XLl5vdi2a0oLq6ur6+Pjg4OCIigog6Ozvb2tpMD0MbWqZWqz08PFpaWjo7O/nl\nJ0+epF9jiSTcjM4TSDqdjojkcrmgXKFQEFF5ebkIdXJMxcXFHR0doaGh3LVNtG1vfPTRR6WlpUuX\nLhX8ccpBM1pw6tQpIhozZkxpaWlSUtKYMWNuv/328ePHr1y5sqWlhTsMbWiZp6fn/Pnz29vblyxZ\ncvnyZSIyGo2FhYU7d+4cPXp0YmIiO0yyzeg8077Pnz9PRMHBwYJylUpFRPz/p8GCpqamzMxMInru\nuee4QrRtjy5cuPDKK69MmTLFwiL0aEYL6urqiOjkyZOpqal/+MMfZs6caTQaDx48+MEHH3z33XcF\nBQXszyO0YY/S09MVCsXGjRtjY2NlMllnZ6eXl9ecOXPS0tK4sVDJNqPzBJLBYCAiPz8/s3vZGBRY\n1tramp6efvHixTlz5kydOpUrR9v26MUXXzQajStXrrRwDJrRgqamJiLS6XTx8fHr169nha2trY8+\n+mhVVVVeXt4zzzxDaMNeOH/+/M6dO3U63bBhw0JDQy9fvnz06NHdu3dPmDAhLi6OHSPZZnSeITsW\n/qa31LDGdXd3F6FODuXatWtpaWnl5eX33XffkiVL+LvQtpbt2LGjpKRk4cKFt9xyi4XD0IwWsMEi\nInrppZe4Qh8fn0WLFhHvMjva0LK2trbk5OTS0tIVK1bs3bs3Ly/vo48++uyzz4ho3rx53377LTtM\nss3oPD0k9kTzxsZGQTm7fBcUFCRCnRxHZ2fnvHnzDh06lJiYuGrVKsFetK1lr776qlwuHz58+Bdf\nfMFKuJsNWUl0dHRAQACa0YKbb76ZiLy9vQWLMkyYMIGIzpw5w16iDS37/PPP6+vr4+PjH3nkEa5w\n5MiRzz///LPPPpuXl8faU7LN6DyBxFa74WYqc1gJ+wcAszo7O9PT00tLS//0pz+98cYbpgegbS27\ncuVKR0fH/PnzTXexwq1bt0ZHR6MZLbj11lt7cxja0DI2H4HrbnLY9Lljx46xl5JtRucJpNjYWHd3\n9wMHDrS2tvJXbdJqtUQUExMjXtUkzWAwpKen79u3b8qUKa+//rrZY9C2lq1atUow7G4wGNiskDVr\n1hDRyJEjCc1o0bhx4/z9/a9cudLU1BQYGMiVf//990Q0dOhQ9hJtaJm/vz8Rtbe3C8rZnBG2lyTc\njM5zDcnHx2f69OldXV15eXlcoU6n02q1gwYNsjD3yZUZjcann36apVFubm53Y8doW8vuueeeaTe6\n55572C72kn3DohktcHNzY4+Bzs3N5ZeztuLu30QbWhYbG0tEWq1W0PvZsmULt5ck3IxOtbhqQ0PD\nQw89dOnSpQcffDAuLu7s2bMbN268dOlSdnY2Hnlu1vbt21944QUiiomJkclkgr0LFiwYO3Ys20bb\n9klnZ+eYMWPIZFVQNKMFra2tDz74YG1t7V133XXvvfcaDIatW7eWl5cPHz78X//6F/fXPdrQstTU\n1NLS0sGDB8+aNSs0NPTKlSsff/zx0aNH/fz8tm/fzi3kL81mdKpAIqJTp04tXryYXZojIrlcvnDh\nQvxv2p3/+7//625ZASJ6++23+ZO/0ba9110gEZrRoosXL2ZkZHz55ZdcyV133ZWdnS1Y4AptaEFb\nW9vq1au3bdvGX8Y7KioqOzt71KhR/CMl2IzOFkiMXq+vq6sbNGjQ+PHj3dycZ1hSCtC2VoFmtODy\n5cvs0hG7sNTdYWhDC4xG45EjR37++Wc3N7fIyEhfX9/ujpRUMzpnIAEAgMPBnxUAACAJCCQAAJAE\nBBIAAEgCAgkAACQBgQQAAJKAQAIAAElAIAEAgCQgkAAAQBIQSAAAIAkIJAAAkAQEEgAASAICCQAA\nJAGBBAAAkoBAAgAASUAgAQCAJCCQAABAEv4fKwLx+q+0kPkAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(y(:,1),y(:,2))\n", + "title('(d) RK4 phase plane plot')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Systems of ODE's:\n", + "## The Coriolis Effect\n", + "\n", + "System of ODE's defined as:\n", + "```matlab\n", + " function ddr = coriolis_ode(t,r,R,L)\n", + " g=9.81; % acceleration due to gravity m/s^2\n", + " l=10; % 10 m long cable\n", + " we=2*pi/23.934/3600; % rotation of Earth (each day is 23.934 hours long)\n", + " ddr=zeros(4,1); % initialize ddr\n", + "\n", + " ddr(1) = r(2); % x North(+) South (-)\n", + " ddr(2) = 2*we*r(4).*sin(L)-g/l*r(1); % dx/dt \n", + " ddr(3) = r(4); % y West (+) East (-)\n", + " ddr(4) = -2*we*(r(2).*sin(L))-g/l*r(3); % dy/dt\n", + " end\n", + "```\n", + "\n", + "First, we will solve for the path of a neutrally-buoyant object with a 100-N force pointing North. It's path starts at 41.8084$^o$ lattitude (Storrs, CT)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGkCAIAAACgjIjwAAAACXBIWXMAABcSAAAXEgFnn9JSAAAA\nB3RJTUUH4QQSAxwY6QEgAQAAACR0RVh0U29mdHdhcmUATUFUTEFCLCBUaGUgTWF0aFdvcmtzLCBJ\nbmMuPFjdGAAAACJ0RVh0Q3JlYXRpb24gVGltZQAxNy1BcHItMjAxNyAyMzoyODoyNLLRS0sAACAA\nSURBVHic7N15QBNn/j/wj0TuY4mlKioV1IJHrYuCWuoBVNFqUXu4WrW2UK2K9wUtWhW32NV2vQse\nteJZ/VW02sJqscgqsipUFBWPYIWyBgEFBeRO+P3x7M43GyBkQo5J8n79NXnm+jyTIR/mmWeeadPQ\n0EAAAACGZmHoAAAAAIiQkAAAQCCQkAAAQBCQkAAAQBCQkAAAQBCQkAAAQBDaGjoAgP+orq4+ffr0\ns2fP6uvrWcno0aM7d+6szlyTIZfL9+7dy6YtLCxCQkJ0t5aR0kVlzeTsEr42eA5JY++//355ebmK\nBXx9fVevXq3ZxisqKmpqati0o6OjlZWVZtsxFocOHZo1a9bz588VC5OSkkaMGNHiXF0w1PGvra21\ntrZm09bW1tXV1erE09xaRkrPldX/2QXNagBNubi4qD62Y8eO1Xjjb7/9NredEydOaDFsAbp7965I\nJGp8AJOSklqcqyOGOv7cDzERWVtbqxlPc2sZKX1W1iBnFzQHTXZgeKdPn5bJZGx64MCB0dHR7F/g\nfv36tTjXxFhYWIwdO5ZNt22LP0+dM6uzS/hwxmvH9OnTBw0apFTo7u5uiFiMz61bt7jpjz/+WKmp\nRPVcE9O2bduff/7Z0FGYEbM6u4QP95A09+KLLz5+/JhN79+//4MPPmhxlfT09EOHDuXk5KSnp9vZ\n2fXr169v374hISHdunXjlomJicnMzDx79mxubi4rGTFiBJfbpk+f/ujRo19++YV9nDhxYlBQkOIu\nfvnllx9++IFNBwUFTZw4kdfeGblcvm/fPhbDvXv32rZtO2DAALFY7O3t/frrrzdOvU3KysqKi4tj\nu7OxsfH29h4yZMiMGTOcnJy4ZQ4cOHD+/PkLFy7cvXuXlQwbNszT05OIHB0dvb29VczduHEjr30p\nunfv3oEDB27dunX9+vWysrLevXu/9NJLo0ePfv/993fs2KH6+A8dOrTJbVZWVi5cuJBN9+rVa8mS\nJY3LP/nkE19fXzb9448/JiQkKJXX19fPmTOHFVpaWsbExLR4PgwdOrTxbZWcnJzNmzefP3++tLR0\n0KBBoaGhY8aMaTJsJY0DUHNTap5djbefnZ29adOmy5cvFxcXT58+vaSkRD+VVX3uKZ5d6v/hqK7d\nqVOnuG9fxRloYfE/nZ/5ntvGzdBthkZM8R7S/v37VS9cVVU1ZcqUJr8CkUi0du1abknFBvTGvv32\n20uXLnEf/f39lXYUGBjIzb1y5QrfvTc0NDx79mzAgAHNBaDOjbGamprQ0NAmV3dxcTlz5gy35IwZ\nM5rbkYuLi+q5fPfFyGSy+fPnN7fZmpqaFo+/iop37NiRLWZrayuTyVjhiRMnuNXnzp3b5Bd9+/Zt\nrjpcIbtBok48SmudPHnS1tZWaclt27a1+MVptileZ5fS9s+cOaO4/ddee01vlVXn7Gqxarxql5CQ\n0KDGGai4NV7ntglAQtKcYkKaO3fukUb+/e9/cwsHBwc3dwoya9asYUuq8wPUt29frkRxL3/88QdX\n3rdvXw323tDQsHLlSq7c0tJyyJAhw4YNc3R0ZCXqJCTFKohEIm9vby8vL67E2tqay5StT0jq74tp\n7veFaWVCmjZtGrfkpUuXWOHSpUu5Qm9vb1Yok8m4n6ouXbpwW2h9QhKJRJaWlo2XtLa2LioqavG7\n02BTvM4upe2LxWLFJfkmpNZUVp2zq8Wq8aodS0gtnoHc1vie2yYACUlzLfay4zoIxcfHK55Y3377\nrUwmq6qqioiIUCyXSCQNDQ0ZGRkJCQl+fn7crJUrVyb81x9//NHQ0LBp0yZu7t/+9jcupL/97W9c\n+ZYtWzTYe0NDA3dTvVevXuXl5dzGHz169N13333xxReqD8vJkye5zXbp0oXbrGIY3O/yjRs3EhIS\nRo0axc1auHAhq2lSUpLquXz31dDQ8I9//EPxC5oyZcrdu3cbGhpqamrOnDkzYsSImpoadY5/c44c\nOcKttWnTJlY4ePBgxeP8/PnzhoaGK1eucIXTp0/nttA4IakTj+JaRGRra7tt27bbt2/HxcUp/od+\n+PBh1d+dBpvie3YpbZ+IBg8eHBcXd/jw4aVLl+7fv19vlW3x7FKnarxqd+XKFXXOQLYpvue2aUBC\n0pz6CUnxP53ly5crbmTYsGHcrFWrVnHlqnu+Pnv2jPvHUPFKiLtysrS0fPbsmWZ7f/PNN1mJu7s7\n+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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGkCAIAAACgjIjwAAAACXBIWXMAABcSAAAXEgFnn9JSAAAA\nB3RJTUUH4QQSAxwZngYQlwAAACR0RVh0U29mdHdhcmUATUFUTEFCLCBUaGUgTWF0aFdvcmtzLCBJ\nbmMuPFjdGAAAACJ0RVh0Q3JlYXRpb24gVGltZQAxNy1BcHItMjAxNyAyMzoyODoyNcXWe90AACAA\nSURBVHic7N15XFTV/z/wIyP7EmOkoiAgOShGiooibkCKpmGZ9pHKh4IfW0TNXT+ZifgJK1tcU8kN\nzYX6pqYFiRTiRiAIiYELGhAJggrKvs3w++N8Pvd3PzPDcO8szJ2Z1/Ovy5lzzz333pn75t6z3C5t\nbW0EAABA38z0XQEAAABCEJAAAEAgEJAAAEAQEJAAAEAQEJAAAEAQEJAAAEAQuuq7Ap1HJpPJZLKu\nXTtjl2Uy2YEDB+iymZlZRESEFgvRSuFGwECPg4FWWwW198j4DoUKutjZxsbGM2fOPHnypLW1laZM\nmjSpd+/empesL12MexxSeXn5/v37f/nll8uXLzc1NRFCRCKRRCIJDg6eM2eOn5+fjrbb3NxsaWlJ\nly0tLRsbG7VYiFYKNwKCPQ61tbX0y0YIsbe3t7CwYH8q2GqrTcUemdSh6OSdPXLkyDvvvFNXV8dO\nTE5OHj9+vIYl61Ob8dq8ebO1tbWKfY+Pj9fRppnvJSHE0tJSu4VopXAjINjjMG3aNKZiJ0+elPtU\nsNVWm4o9MqlD0Zk7e+vWLZFIpHhNS05O1rBk/TLaR3aRkZG7du1Snae5uVlHWzczM5syZQpd1vpD\nQp0WDrpmfKfP+PZI+M6cOSOVSuny8OHDY2Ji6O3XoEGD9FovTRnnt2fHjh3saNS9e/fVq1dPnTq1\nT58+jY2NFy5cOHXq1MGDB3VXga5du/7000+GWDjomvGdPuPbI+HLy8tjlv/5z38a9mM6FiNsQ6qv\nr+/Vq9eTJ0/on3369ElPT3d2dpbLdu/evUePHj3//PNMSmZm5pEjR+7cuZOZmWljYzNo0CAfH5+I\niIi+ffuyV2xtbZ0/fz5dNjc337lzZ35+/ubNmzMyMh48eHD69Gk/Pz/FPOwSOG6ovYfOKgqXyWQH\nDx785ZdfioqKbt++3bVr16FDh4rFYl9f31GjRo0YMaLDo3f69OlLly6VlJRUVVVdu3attbW1b9++\nbm5uo0ePDg8Pd3BwUFzl9u3b33zzTV5e3rVr16qrq729vfv06TNp0qTXX3/dzMxMjZy5ublxcXH0\n+FhZWfn6+o4ePXrevHlyW+/woTzHcricUI6HZefOnTk5OfT405Tx48e7u7vT5dmzZ48ZM0b1d4No\n8D28c+fOli1bLly4UFVVNWLEiLlz506ePFnxfLHV19cvXryYLg8YMGDZsmWK6W+//TbT2vrDDz8k\nJCTIpSvdIy6HQvEMqrELmhwKzX/yhJAHDx7Mnj27srKyc3b2m2++uXDhwsWLF2/dukVTxo4dK5FI\nCCH29vZffvmlFveO+f7TT7n/0jn+9JTQ9zND7du/fz97B5OSkjpcpaGh4Y033lB6fEQi0YYNG9iZ\n5Z4FJyUlsVuqEhISFPNoZUMdpj958mTo0KHtnegpU6ZwOXr29vbtlSAWi+WeUEul0kWLFrWXv6mp\niW/OpqamuXPnKs3j5OQkdypVPJTXpBylJ5TjYWG3Iijau3ev6mpr8vU4deqUYovp9u3bOzzjPXv2\npJmtra2lUilNPHnyJFPIggULmMzsHbxx44aKE6HGoVB7F9QoR4s/eULIyJEjO21n582b196GnJyc\ntL539PvP/ZfO66enyAgDEvtMuLu7c1klNDS0vWNNrV+/nsnMPn8ikUgsFrNzqg5Iam+IS0Bau3Yt\nk25ubj569OixY8cyV1JeAcnS0tLLy2vixIk+Pj7stlOxWPzkyROlh1oR+2vKMSf7KiYSiXx9fb28\nvNg7e+XKlQ6PgybltHdCOR4WDQOSJt9Dc3NzxfyWlpYVFRWqz/isWbOY/Onp6TRx+fLlTKKvry9N\nlEqlzKXKxcVF9Yngeyg02QU1ytHiT57wD0ia7CyXgKT1Cxr3Xzqvn54iIwxIEydOZPY/LCysw/zH\njx9nH8G9e/dKpdKGhobVq1ez0wsKCmh+9vmj/P394+Lijh49unz5cnq4lf5ENdkQl4DENCwPGDCg\npqaGSb9///7+/fs/+ugjLkdv6dKlzFWJqqysDAwMZLYYGxtL03/++Wf2QXjjjTdu3bpFq5eUlDR+\n/Hjma8ox56lTp5g8Li4uzHFgHzfm4qjiOGhSTnsnlONhycrKSkhICAgIYNLXrl2b8F9//fWXimpr\n+D20trbevn37jRs34uLi2P/hHj16VPUZj4+PZzJv3ryZJvr7+7M3WldX19bWduXKFSZx9uzZqk8E\n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\n2zbuK3bp0oX87zsT6ZxDiv3FaQqNQ9yzAQCAFgk9IEml0sjIyAsXLowdO3br1q281qWd5QYOHMik\nBAQEiESiS5cu1dfXs3PSaYeYVyhxzAYAAFok6IAkk8kWLVpEo9HOnTvba7wpLy+XixyEkNjY2Nzc\nXGtr69GjRzOJNjY2U6ZMaW1tjY2NZRILCgqSk5NtbW3puFfu2UDg0GghHDgXwIWgOzWcOnXq119/\nJYQ0Nzcrvvh24cKFPj4+hJCrV6+uXLkyKCjI3d3d3d29qKgoLS2NtvdER0fLvWli2bJlly9f3r17\nd0VFRVBQUElJyb59+6RS6erVq9mvC+KYDQAAtEXQAYl2vyaEpKenK37KvB6tZ8+ezs7OcrN9e3t7\nL1++nH17RDk7Ox86dGjVqlUnTpw4ceIEIUQsFm/YsGHmzJlqZAMAAG0R9OSqBgo9XAFAsIR8gRJ0\nGxIAAJgOBCQAABAEBCQAABAEBCQAABAEBCQAABAEBCQAABAEBCQAABAEBCQAABAEBCQAABAEBCQA\nABAEBCQAABAEBCQAABAEBCQAABAEBCQAABAEBCQAABAEBCQAABAEBCQAABAEBCQAABAEBCQAABAE\nBCQAABAEBCQAABAEBCQAABAEBCQAABAEBCQAABAEBCQAABAEBCQAABAEBCQAABCErmqvWV1dXVVV\nVV1dffLkyZs3bxJCevfuPWvWrKeeesrBwaFbt27aqyQAABg/fgGpvr4+PT1906ZN9+/fb2hokPv0\n6tWrp0+f/k+5Xbs6Ozv/85//nDhxIoITAAB0qEtbWxuXfBkZGR988EFJSYka2+jZs+d77703ffp0\nNdY1RF5eXrdu3dJ3LQAAlBDyBarjNqTDhw8PGTJk9uzZ6kUjQsj9+/fXrFnj7e39+eefq1cCAAAY\nPVV3SD/++OPatWsbGxvl0nv27Nm9e/d169Y5ODjY2tpaWVmZm5sTQlpaWpqbm+vq6mpra7/88su7\nd+/eu3dPsdglS5bMnz9fu7shKEL+BwQATJyQL1DKA1J5efmMGTMqKiqYlK5duw4aNGjjxo2urq4i\nkYj7BkpLSz///POUlBR2m5O1tfXXX389fPhwTaouWEI+3wBg4oR8gVIekEaNGvXw4UO63Lt3702b\nNg0bNkzDLRUXF8+fP//u3btMimAPioaEfL4BwMQJ+QKlqg3J29s7NTU1JSVF82hECHFzc0tMTMzI\n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\nN8Ztf6GQ81nmAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ans =\n", + "\n", + " 0\n", + " 0.0000\n", + " 0.0000\n", + " 0.0000\n", + " 0.0000\n", + " 0.0000\n", + " 0.0000\n", + " 0.0000\n", + " 0.0000\n", + " 0.0000\n", + " 0.0000\n", + " 0.0000\n", + " 0.0001\n", + " 0.0001\n", + " 0.0002\n", + " 0.0003\n", + " 0.0003\n", + " 0.0006\n", + " 0.0009\n", + " 0.0013\n", + " 0.0016\n", + " 0.0031\n", + " 0.0047\n", + " 0.0063\n", + " 0.0078\n", + " 0.0157\n", + " 0.0235\n", + " 0.0314\n", + " 0.0392\n", + " 0.0785\n", + " 0.1177\n", + " 0.1570\n", + " 0.1962\n", + " 0.3925\n", + " 0.5887\n", + " 0.7850\n", + " 0.9812\n", + " 1.9624\n", + " 2.9436\n", + " 3.9248\n", + " 4.9060\n", + " 9.0087\n", + " 13.1115\n", + " 17.2142\n", + " 21.3169\n", + " 26.3169\n", + " 31.3169\n", + " 36.3169\n", + " 41.3169\n", + " 46.3169\n", + " 51.3169\n", + " 56.3169\n", + " 61.3169\n", + " 66.3169\n", + " 71.3169\n", + " 76.3169\n", + " 81.3169\n", + " 86.3169\n", + " 91.3169\n", + " 96.3169\n", + " 101.3169\n", + " 106.3169\n", + " 111.3169\n", + " 116.3169\n", + " 121.3169\n", + " 126.3169\n", + " 131.3169\n", + " 136.3169\n", + " 141.3169\n", + " 146.3169\n", + " 151.3169\n", + " 156.3169\n", + " 161.3169\n", + " 166.3169\n", + " 171.3169\n", + " 176.3169\n", + " 181.3169\n", + " 185.9877\n", + " 190.6584\n", + " 195.3292\n", + " 200.0000\n" + ] + } + ], + "source": [ + "north_coriolis(41.8084,1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "coriolis(41.8084)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adaptive Runge-Kutta Methods\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ODE23 Solve non-stiff differential equations, low order method.\n", + " [TOUT,YOUT] = ODE23(ODEFUN,TSPAN,Y0) with TSPAN = [T0 TFINAL] integrates \n", + " the system of differential equations y' = f(t,y) from time T0 to TFINAL \n", + " with initial conditions Y0. ODEFUN is a function handle. For a scalar T\n", + " and a vector Y, ODEFUN(T,Y) must return a column vector corresponding \n", + " to f(t,y). Each row in the solution array YOUT corresponds to a time \n", + " returned in the column vector TOUT. To obtain solutions at specific \n", + " times T0,T1,...,TFINAL (all increasing or all decreasing), use TSPAN = \n", + " [T0 T1 ... TFINAL]. \n", + " \n", + " [TOUT,YOUT] = ODE23(ODEFUN,TSPAN,Y0,OPTIONS) solves as above with default\n", + " integration properties replaced by values in OPTIONS, an argument created \n", + " with the ODESET function. See ODESET for details. Commonly used options\n", + " are scalar relative error tolerance 'RelTol' (1e-3 by default) and vector\n", + " of absolute error tolerances 'AbsTol' (all components 1e-6 by default).\n", + " If certain components of the solution must be non-negative, use\n", + " ODESET to set the 'NonNegative' property to the indices of these\n", + " components.\n", + " \n", + " ODE23 can solve problems M(t,y)*y' = f(t,y) with mass matrix M that is\n", + " nonsingular. Use ODESET to set the 'Mass' property to a function handle \n", + " MASS if MASS(T,Y) returns the value of the mass matrix. If the mass matrix \n", + " is constant, the matrix can be used as the value of the 'Mass' option. If\n", + " the mass matrix does not depend on the state variable Y and the function\n", + " MASS is to be called with one input argument T, set 'MStateDependence' to\n", + " 'none'. ODE15S and ODE23T can solve problems with singular mass matrices. \n", + " \n", + " [TOUT,YOUT,TE,YE,IE] = ODE23(ODEFUN,TSPAN,Y0,OPTIONS) with the 'Events'\n", + " property in OPTIONS set to a function handle EVENTS, solves as above \n", + " while also finding where functions of (T,Y), called event functions, \n", + " are zero. For each function you specify whether the integration is \n", + " to terminate at a zero and whether the direction of the zero crossing \n", + " matters. These are the three column vectors returned by EVENTS: \n", + " [VALUE,ISTERMINAL,DIRECTION] = EVENTS(T,Y). For the I-th event function: \n", + " VALUE(I) is the value of the function, ISTERMINAL(I)=1 if the integration \n", + " is to terminate at a zero of this event function and 0 otherwise. \n", + " DIRECTION(I)=0 if all zeros are to be computed (the default), +1 if only \n", + " zeros where the event function is increasing, and -1 if only zeros where \n", + " the event function is decreasing. Output TE is a column vector of times \n", + " at which events occur. Rows of YE are the corresponding solutions, and \n", + " indices in vector IE specify which event occurred. \n", + " \n", + " SOL = ODE23(ODEFUN,[T0 TFINAL],Y0...) returns a structure that can be\n", + " used with DEVAL to evaluate the solution or its first derivative at \n", + " any point between T0 and TFINAL. The steps chosen by ODE23 are returned \n", + " in a row vector SOL.x. For each I, the column SOL.y(:,I) contains \n", + " the solution at SOL.x(I). If events were detected, SOL.xe is a row vector \n", + " of points at which events occurred. Columns of SOL.ye are the corresponding \n", + " solutions, and indices in vector SOL.ie specify which event occurred. \n", + " \n", + " Example \n", + " [t,y]=ode23(@vdp1,[0 20],[2 0]); \n", + " plot(t,y(:,1));\n", + " solves the system y' = vdp1(t,y), using the default relative error\n", + " tolerance 1e-3 and the default absolute tolerance of 1e-6 for each\n", + " component, and plots the first component of the solution. \n", + " \n", + " Class support for inputs TSPAN, Y0, and the result of ODEFUN(T,Y):\n", + " float: double, single\n", + " \n", + " See also ODE45, ODE113, ODE15S, ODE23S, ODE23T, ODE23TB, ODE15I,\n", + " ODESET, ODEPLOT, ODEPHAS2, ODEPHAS3, ODEPRINT, DEVAL,\n", + " ODEEXAMPLES, RIGIDODE, BALLODE, ORBITODE, FUNCTION_HANDLE.\n", + "\n", + " Reference page in Doc Center\n", + " doc ode23\n" + ] + } + ], + "source": [ + "help ode23" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "a=4;b=0.05;c=5;d=0.1;\n", + "tspan=[0,5];\n", + "[t23 y23] = ode23(@predprey,tspan,y0,h,a,b,c,d);\n", + "[t45,y45] = ode45(@predprey,tspan,y0,h,a,b,c,d);\n", + "plot(t23,y23(:,1),t23,y23(:,2),t45,y45(:,1),'--'...\n", + ",t45,y45(:,2),'--')\n", + "title('ode23- vs ode45--')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "celltoolbar": "Slideshow", + "kernelspec": { + "display_name": "Matlab", + "language": "matlab", + "name": "matlab" + }, + "language_info": { + "codemirror_mode": "octave", + "file_extension": ".m", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "matlab", + "version": "0.11.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/19_nonlinear_ivp/.ipynb_checkpoints/lecture_23-checkpoint.ipynb b/19_nonlinear_ivp/.ipynb_checkpoints/lecture_23-checkpoint.ipynb new file mode 100644 index 0000000..2fd6442 --- /dev/null +++ b/19_nonlinear_ivp/.ipynb_checkpoints/lecture_23-checkpoint.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/19_nonlinear_ivp/19_nonlinear_ivp.ipynb b/19_nonlinear_ivp/19_nonlinear_ivp.ipynb new file mode 100644 index 0000000..b820bd6 --- /dev/null +++ b/19_nonlinear_ivp/19_nonlinear_ivp.ipynb @@ -0,0 +1,1026 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "setdefaults" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "%plot --format svg" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "pkg load odepkg" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Initial Value Problems (continued)\n", + "*ch. 23 - Adaptive methods*\n", + "\n", + "## Predator-Prey Models (Chaos Theory)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "Predator-prey models were developed independently in the early part of the twentieth\n", + "century by the Italian mathematician Vito Volterra and the American biologist Alfred\n", + "Lotka. These equations are commonly called Lotka-Volterra equations. The simplest version is the following pairs of ODEs:\n", + "\n", + "$\\frac{dx}{dt}=ax-bxy$\n", + "\n", + "$\\frac{dy}{dt}=-cy+dxy$\n", + "\n", + "where x and y = the number of prey and predators, respectively, a = the prey growth rate, c = the predator death rate, and b and d = the rates characterizing the effect of the predator-prey interactions on the prey death and the predator growth, respectively." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```matlab\n", + "function yp=predprey(t,y,a,b,c,d)\n", + " % predator-prey model (Lotka-Volterra equations)\n", + " yp=zeros(1,2);\n", + " x=y(1); % population in thousands of prey\n", + " y=y(2); % population in thousands of predators\n", + " yp(1)=a.*x-b.*x.*y; % population change in thousands of prey/year\n", + " yp(2)=-c*y+d*x.*y; % population change in thousands of predators/year\n", + "end\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ans =\n", + "\n", + " 12.0000\n", + " 5.2000\n", + "\n" + ] + } + ], + "source": [ + "predprey(1,[20 1],a,b,c,d)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "Gnuplot\n", + "Produced by GNUPLOT 5.0 patchlevel 3 \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t3\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t6\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t10\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t15\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t20\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t25\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t30\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t35\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t40\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\t\tpopulation in thousands\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\ttime (years)\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\tEuler time plot\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\tprey\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\tprey\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\tpredator\n", + "\n", + "\t\n", + "\t\tpredator\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "h=0.00625;tspan=[0 40];y0=[2 1];\n", + "a=1.2;b=0.6;c=0.8;d=0.3;\n", + "[t y] = eulode(@predprey,tspan,y0,h,a,b,c,d);\n", + "\n", + "plot(t,y(:,1),t,y(:,2),'--')\n", + "legend('prey','predator');\n", + "title('Euler time plot')\n", + "xlabel('time (years)')\n", + "ylabel('population in thousands')" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "Gnuplot\n", + "Produced by GNUPLOT 5.0 patchlevel 3 \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t0.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t3\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t3.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t3\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t6\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\t\tpred population\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\tprey population\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\tEuler phase plane plot\n", + "\t\n", + "\n", + "\n", + "\n", + "\tgnuplot_plot_1a\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(y(:,1),y(:,2))\n", + "title('Euler phase plane plot')\n", + "xlabel('thousands of prey')\n", + "ylabel('thousands of predators')" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "Gnuplot\n", + "Produced by GNUPLOT 5.0 patchlevel 3 \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t3\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t6\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t6\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t8\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t10\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\t\tpopulation in thousands\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\ttime (years)\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\tRK4 time plot\n", + "\t\n", + "\n", + "\n", + "\n", + "\tgnuplot_plot_1a\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\tgnuplot_plot_2a\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "h=0.0625;tspan=[0 40];y0=[2 1];\n", + "a=1.2;b=0.6;c=0.8;d=0.3;\n", + "tspan=[0 10];\n", + "[t y] = rk4sys(@predprey,tspan,y0,h,a,b,c,d);\n", + "plot(t,y(:,1),t,y(:,2),'--')\n", + "title('RK4 time plot')\n", + "xlabel('time (years)')\n", + "ylabel('population in thousands')" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "Gnuplot\n", + "Produced by GNUPLOT 5.0 patchlevel 3 \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t0.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t3\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t3.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t3\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t6\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\t\tthousands of predators\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\tthousands of prey\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\tRK4 phase plane plot\n", + "\t\n", + "\n", + "\n", + "\n", + "\tgnuplot_plot_1a\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(y(:,1),y(:,2))\n", + "title('RK4 phase plane plot')\n", + "xlabel('thousands of prey')\n", + "ylabel('thousands of predators')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Adaptive Runge-Kutta Methods\n" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "'ode23' is a function from the file /home/ryan/octave/odepkg-0.8.5/ode23.m\n", + "\n", + " -- Function File: [] = ode23 (@FUN, SLOT, INIT, [OPT], [PAR1, PAR2,\n", + " ...])\n", + " -- Command: [SOL] = ode23 (@FUN, SLOT, INIT, [OPT], [PAR1, PAR2, ...])\n", + " -- Command: [T, Y, [XE, YE, IE]] = ode23 (@FUN, SLOT, INIT, [OPT],\n", + " [PAR1, PAR2, ...])\n", + "\n", + " This function file can be used to solve a set of non-stiff ordinary\n", + " differential equations (non-stiff ODEs) or non-stiff differential\n", + " algebraic equations (non-stiff DAEs) with the well known explicit\n", + " Runge-Kutta method of order (2,3).\n", + "\n", + " If this function is called with no return argument then plot the\n", + " solution over time in a figure window while solving the set of ODEs\n", + " that are defined in a function and specified by the function handle\n", + " @FUN. The second input argument SLOT is a double vector that\n", + " defines the time slot, INIT is a double vector that defines the\n", + " initial values of the states, OPT can optionally be a structure\n", + " array that keeps the options created with the command 'odeset' and\n", + " PAR1, PAR2, ... can optionally be other input arguments of any type\n", + " that have to be passed to the function defined by @FUN.\n", + "\n", + " If this function is called with one return argument then return the\n", + " solution SOL of type structure array after solving the set of ODEs.\n", + " The solution SOL has the fields X of type double column vector for\n", + " the steps chosen by the solver, Y of type double column vector for\n", + " the solutions at each time step of X, SOLVER of type string for the\n", + " solver name and optionally the extended time stamp information XE,\n", + " the extended solution information YE and the extended index\n", + " information IE all of type double column vector that keep the\n", + " informations of the event function if an event function handle is\n", + " set in the option argument OPT.\n", + "\n", + " If this function is called with more than one return argument then\n", + " return the time stamps T, the solution values Y and optionally the\n", + " extended time stamp information XE, the extended solution\n", + " information YE and the extended index information IE all of type\n", + " double column vector.\n", + "\n", + " For example, solve an anonymous implementation of the Van der Pol\n", + " equation\n", + "\n", + " fvdb = @(vt,vy) [vy(2); (1 - vy(1)^2) * vy(2) - vy(1)];\n", + "\n", + " vopt = odeset (\"RelTol\", 1e-3, \"AbsTol\", 1e-3, \\\n", + " \"NormControl\", \"on\", \"OutputFcn\", @odeplot);\n", + " ode23 (fvdb, [0 20], [2 0], vopt);\n", + "\n", + "See also: odepkg.\n", + "\n", + "Additional help for built-in functions and operators is\n", + "available in the online version of the manual. Use the command\n", + "'doc ' to search the manual index.\n", + "\n", + "Help and information about Octave is also available on the WWW\n", + "at http://www.octave.org and via the help@octave.org\n", + "mailing list.\n" + ] + } + ], + "source": [ + "help ode23" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "h=0.00625;tspan=[0 40];y0=[2 1];\n", + "a=10;b=0.6;c=0.8;d=0.3;\n", + "\n", + "[t23 y23] = ode23(@(t,y) predprey(t,y,a,b,c,d),tspan,y0);\n", + "[t45,y45] = ode45(@(t,y) predprey(t,y,a,b,c,d),tspan,y0);\n", + "plot(y23(:,1),y23(:,2),'.',y45(:,1),y45(:,2),'k-')\n", + "title('Phase plot: ode23- vs ode45--')\n", + "xlabel('thousands of prey')\n", + "ylabel('thousands of predators')\n", + "legend('ode23','ode45')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "celltoolbar": "Slideshow", + "kernelspec": { + "display_name": "Octave", + "language": "octave", + "name": "octave" + }, + "language_info": { + "file_extension": ".m", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "octave", + "version": "0.19.14" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/19_nonlinear_ivp/eulode.m b/19_nonlinear_ivp/eulode.m new file mode 100644 index 0000000..ceed97b --- /dev/null +++ b/19_nonlinear_ivp/eulode.m @@ -0,0 +1,29 @@ +function [t,y] = eulode(dydt,tspan,y0,h,varargin) +% eulode: Euler ODE solver +% [t,y] = eulode(dydt,tspan,y0,h,p1,p2,...): +% uses Euler's method to integrate an ODE +% input: +% dydt = name of the M-file that evaluates the ODE +% tspan = [ti, tf] where ti and tf = initial and +% final values of independent variable +% y0 = initial value of dependent variable +% h = step size +% p1,p2,... = additional parameters used by dydt +% output: +% t = vector of independent variable +% y = vector of solution for dependent variable +if nargin<4,error('at least 4 input arguments required'),end +ti = tspan(1);tf = tspan(2); +if ~(tf>ti),error('upper limit must be greater than lower'),end +t = (ti:h:tf)'; n = length(t); +% if necessary, add an additional value of t +% so that range goes from t = ti to tf +if t(n)h,hh = h;end + while(1) + if tt+hh>tend,hh = tend-tt;end + k1 = dydt(tt,y(i,:),varargin{:})'; + ymid = y(i,:) + k1.*hh./2; + k2 = dydt(tt+hh/2,ymid,varargin{:})'; + ymid = y(i,:) + k2*hh/2; + k3 = dydt(tt+hh/2,ymid,varargin{:})'; + yend = y(i,:) + k3*hh; + k4 = dydt(tt+hh,yend,varargin{:})'; + phi = (k1+2*(k2+k3)+k4)/6; + y(i+1,:) = y(i,:) + phi*hh; + tt = tt+hh; + i=i+1; + if tt>=tend,break,end + end + np = np+1; tp(np) = tt; yp(np,:) = y(i,:); + if tt>=tf,break,end +end \ No newline at end of file diff --git a/20_derivatives/.ipynb_checkpoints/20_derivatives-checkpoint.ipynb b/20_derivatives/.ipynb_checkpoints/20_derivatives-checkpoint.ipynb new file mode 100644 index 0000000..2fd6442 --- /dev/null +++ b/20_derivatives/.ipynb_checkpoints/20_derivatives-checkpoint.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/20_derivatives/20_derivatives.ipynb b/20_derivatives/20_derivatives.ipynb new file mode 100644 index 0000000..463f55e --- /dev/null +++ b/20_derivatives/20_derivatives.ipynb @@ -0,0 +1,540 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "setdefaults" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "%plot --format svg" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Numerical Derivatives\n", + "\n", + "*Ch. 21*" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "Exact Derivative: \n", + "\n", + "$\\frac{dy}{dx}=\\lim_{\\Delta x\\rightarrow0}\\frac{f(x+\\Delta x)-f(x)}{\\Delta x}$\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "Approximate Derivative:\n", + "\n", + "$\\frac{\\Delta y}{\\Delta x}\\approx\\frac{f(x+\\Delta x)-f(x)}{\\Delta x}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Taylor Series Expansion" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "Function near $x_{i}$ is given as:\n", + "\n", + "$f(x_{i+1})=f(x_{i})+f'(x_{i})h+\\frac{f''(x_{i})}{2!}h^2+...$\n", + "\n", + "solving for $f'(x_{i})$:\n", + "\n", + "$f'(x_{i})=\\frac{f(x_{i+1})-f(x_{i})}{h}-\\frac{f''(x_{i})}{2!}h+...$\n", + "\n", + "**truncation error** $\\approx O(h)$\n", + "\n", + "$f'(x_{i})=\\frac{f(x_{i+1})-f(x_{i})}{h}+O(h)$\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Higher order derivatives" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "Function near $x_{i}$ is given as:\n", + "\n", + "$f(x_{i+1})=f(x_{i})+f'(x_{i})h+\\frac{f''(x_{i})}{2!}h^2+...$\n", + "\n", + "$f(x_{i+2})=f(x_{i})+f'(x_{i})2h+\\frac{f''(x_{i})}{2!}4h^2+...$\n", + "\n", + "solving for $f''(x_{i})$:\n", + "\n", + "$f''(x_{i})=\\frac{f(x_{i+2})-2f(x_{i+1})-3f(x_{i})}{h^2}+O(h)$\n", + "\n", + "**truncation error** $\\approx O(h)$" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n8gorJfHdjz/+uGDBAmZlLKyv6JBbt26lpaVlZ2dbbcfL6JD6+vpVq1Z9++23lhuDgoL+/ve/P/DA\nA2xV1SNBTdkVFBRs2rQpICDgrbfe+v77748ePXrffffl5uamp6ezXRpv/PTTT0ajceHChW+99dbh\nw4cPHz788ssvBwYGqtXqf/zjH2xXx0uvvPJKSEgI21Xw0tq1a7Ozs+++++5t27YdPXr0888/3759\n+0MPPcR2XTyTkpLy7bffxsbGfvrpp99///3p06eTk5ObmprWrl3b/U9PlnUJyGOPPRYVFXX06FHz\nll9++WXatGlRUVHl5eXs1cUnP/30U21trdXG06dPR0VF/eEPf+jo6GClKv5Sq9VRUVG5ublRUVFR\nUVFsl8Mn//znP6Oiov74xz+2tbWxXQuP1dXVRUVFjRs3rqGhwXL7c889FxUVpVar2SqsR8I5Qqqs\nrCwuLhaLxZZnyw4aNGj+/PlEdOzYMfZK45M777xz6NChVhsfeOABPz+/lpYW5osQsJNer9++ffsj\njzwyffp0tmvhnz179hDRX/7yFyx06YwffviBiIKDg4ODgy23M1+ul5eXs1NWL4QTSCUlJUTUfSUh\nuVxORBcvXmShJqHo7Ozs7OwkIqv3NNi2efPmgICAV199le1C+OfSpUtVVVV33XXX2LFjichkMrW0\ntLBdFC/J5fKBAwfevHnTZDJZbr9y5Qr9FkvcIZxAKi0tJSKxWGy1XSKREFFRURELNQlFbm5uW1tb\nVFQUekPsl5mZmZ+f/8orryDF++Hq1atEdM899+Tn58+fP/+ee+659957J02a9Nprr928eZPt6vhE\nJBKtWbOmtbV148aNjY2NRNTZ2ZmdnX348OFx48YlJCSwXeDvCKftu6amhojuuusuq+0RERFEhDdx\nv9XX16tUKiJ68cUX2a6FN2pra994440HH3yQmTEGR1VWVhLRlStXVqxYMWbMmKVLl3Z2dn799df7\n9+8/f/78gQMH8LeR/VavXi2RSPbu3RsXF+fn52cymXx9fVeuXLlq1SquTYcKJ5A6OjqIaPDgwT3e\nysw4gaOam5tXr179888/r1y5csaMGWyXwxv//d//3dnZ+dprr7FdCF/V19cTUWlp6cyZM3ft2sVs\nbG5ufvLJJy9evLh79+4//elPrBbIJzU1NYcPHy4tLb3zzjujoqIaGxu//fbbY8eO3XfffUqlku3q\nfkc4U3ZM1HfvYmSiyMfHh4WaeO7WrVurVq0qKip65JFHNm7cyHY5vHHo0CGtVvvCCy8MHz6c7Vr4\niplpJ6K//OUv5o0BAQHr168n9Cg5oqWlZdmyZfn5+ampqRqNZvfu3ZmZmcePHyei5OTkc+fOsV3g\n7wjnCCkyMpKIjEaj1Xam2SE8PJyFmvjMZDIlJyefPXs2ISFh69atbJfDJ//zP/8jFotHjBhx6tQp\nZov5TG1my+TJk/HFkm2hoaFE5O/vb7Uow3333UdE165dY6csHvryyy+rqqpmzpz5xz/+0bxx1KhR\nL730UkpKyu7du5mXlCOEE0jM2jbd+5KZLUxcgZ1MJtPq1avz8/MffvhhnA/rqKampra2tjVr1nS/\nidn48ccfc627iWtGjhzJdgkCwfRzmY84zZj24wsXLrBQU++EE0hxcXE+Pj5nzpxpbm62XKMpJyeH\niKZOncpeaTzT0dGxevXq06dPP/jgg2+++Sbb5fDP1q1brb6z7OjoYFpCtm/fTkSjRo1ipzL++MMf\n/hAUFNTU1FRfX2+5zsV3331HRGFhYeyVxjNBQUFE1NraarWdaRthbuUO4XyHFBAQMHfu3Pb29t27\nd5s3lpaW5uTkBAYGotnJTp2dnc8//zyTRu+88w6+e+uH2bNnz/m92bNnMzcxP2IloT4NGDBg6dKl\nRPTOO+9Ybmd+u3GpaPvFxcURUU5OjtXs0UcffWS+lTsEtbiqwWBYvHhxXV3dokWLlEqlXq/fu3dv\nXV3dli1bmDc39Omzzz57+eWXiWjq1Kl+fn5Wt65du3b8+PFs1MVvJpPpnnvuIawK6ojm5uZFixaV\nl5c/9NBD8+bN6+jo+Pjjj4uKikaMGPH5559z7U97LluxYkV+fv6QIUOeeOKJqKiopqamTz755Ntv\nvx08ePBnn33GqYX8BRVIRHT16tUNGzYwjQxEJBaLX3jhBaSR/T799FMbKwvs2bMHzd/9gEDqn59/\n/nnz5s3/93//Z97y0EMPbdmypfvqVmBDS0vL3//+93/+85+Wl0GIjY3dsmXL6NGjWSysO6EFEqOi\noqKysjIwMHDSpEkDBghnWhLACzU2NjJfHTFfLLFdDl91dnYWFhb++9//HjBgwMSJEwcNGsR2RT0Q\nZiABAADv4OgBAAA4AYEEAACcgEACAABOQCABAAAnIJAAAIATEEgAAMAJCCQAAOAEBBIAAHACAgkA\nADgBgQQAAJyAQAIAAE5AIAEAACcgkAAAgBMQSAAAwAkIJAAA4IT/Dx6iJyjnuam4AAAAAElFTkSu\nQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "x=linspace(0,2*pi,11);\n", + "% analytical derivatives\n", + "y=sin(x);\n", + "dy=cos(x);\n", + "ddy=-sin(x);\n", + "\n", + "% numerical derivatives\n", + "dy_n=(y(2:end)-y(1:end-1))./diff(x);\n", + "ddy_n=(y(3:end)-2*y(2:end-1)+y(1:end-2))./diff(x(2:end)).^2;\n", + "\n", + "plot(x,dy,x(1:end-1),dy_n,'o')\n", + "legend('analytical dy/dx','num dy/dx')" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(x,ddy,x(2:end-1),ddy_n,'o')\n", + "legend('analytical dy/dx','num dy/dx')" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "'gradient' is a function from the file /usr/share/octave/4.0.0/m/general/gradient.m\n", + "\n", + " -- Function File: DX = gradient (M)\n", + " -- Function File: [DX, DY, DZ, ...] = gradient (M)\n", + " -- Function File: [...] = gradient (M, S)\n", + " -- Function File: [...] = gradient (M, X, Y, Z, ...)\n", + " -- Function File: [...] = gradient (F, X0)\n", + " -- Function File: [...] = gradient (F, X0, S)\n", + " -- Function File: [...] = gradient (F, X0, X, Y, ...)\n", + "\n", + " Calculate the gradient of sampled data or a function.\n", + "\n", + " If M is a vector, calculate the one-dimensional gradient of M. If\n", + " M is a matrix the gradient is calculated for each dimension.\n", + "\n", + " '[DX, DY] = gradient (M)' calculates the one-dimensional gradient\n", + " for X and Y direction if M is a matrix. Additional return\n", + " arguments can be use for multi-dimensional matrices.\n", + "\n", + " A constant spacing between two points can be provided by the S\n", + " parameter. If S is a scalar, it is assumed to be the spacing for\n", + " all dimensions. Otherwise, separate values of the spacing can be\n", + " supplied by the X, ... arguments. Scalar values specify an\n", + " equidistant spacing. Vector values for the X, ... arguments\n", + " specify the coordinate for that dimension. The length must match\n", + " their respective dimension of M.\n", + "\n", + " At boundary points a linear extrapolation is applied. Interior\n", + " points are calculated with the first approximation of the numerical\n", + " gradient\n", + "\n", + " y'(i) = 1/(x(i+1)-x(i-1)) * (y(i-1)-y(i+1)).\n", + "\n", + " If the first argument F is a function handle, the gradient of the\n", + " function at the points in X0 is approximated using central\n", + " difference. For example, 'gradient (@cos, 0)' approximates the\n", + " gradient of the cosine function in the point x0 = 0. As with\n", + " sampled data, the spacing values between the points from which the\n", + " gradient is estimated can be set via the S or DX, DY, ...\n", + " arguments. By default a spacing of 1 is used.\n", + "\n", + " See also: diff, del2.\n", + "\n", + "Additional help for built-in functions and operators is\n", + "available in the online version of the manual. Use the command\n", + "'doc ' to search the manual index.\n", + "\n", + "Help and information about Octave is also available on the WWW\n", + "at http://www.octave.org and via the help@octave.org\n", + "mailing list.\n" + ] + } + ], + "source": [ + "help gradient" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Central Difference\n", + "### Increase accuracy with more points\n", + "\n", + "\n", + "Function near $x_{i}$ is given as:\n", + "\n", + "forward:\n", + "\n", + "$f(x_{i+1})=f(x_{i})+f'(x_{i})h+\\frac{f''(x_{i})}{2!}h^2-\\frac{f'''(x_{i})}{3!}h^3+...$\n", + "\n", + "backward:\n", + "\n", + "$f(x_{i-1})=f(x_{i})-f'(x_{i})h+\\frac{f''(x_{i})}{2!}h^2-\\frac{f'''(x_{i})}{3!}h^3+...$\n", + "\n", + "solving for $f'(x_{i})$:\n", + "\n", + "$f'(x_{i})=\\frac{f(x_{i+1})-f(x_{i-1})}{2h}+O(h^{2})$\n", + "\n", + "**truncation error** $\\approx O(h^2)$" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "Gnuplot\n", + "Produced by GNUPLOT 5.0 patchlevel 3 \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t-1\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t-0.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t3\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t6\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t7\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\tanalytical dy/dx\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\tanalytical dy/dx\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t fwd dy/dx\n", + "\n", + "\t\n", + "\t\t fwd dy/dx\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "\t\n", + "\tcent dy/dx\n", + "\n", + "\t\n", + "\t\tcent dy/dx\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "x=linspace(0,2*pi,11);\n", + "% analytical derivatives\n", + "y=sin(x);\n", + "dy=cos(x);\n", + "ddy=-sin(x);\n", + "\n", + "% forward difference\n", + "dy_f=(y(2:end)-y(1:end-1))./diff(x);\n", + "% central difference\n", + "dy_c=(y(3:end)-y(1:end-2))./diff(x(2:end))/2;\n", + "\n", + "plot(x,dy,x(1:end-1),dy_f,'o',x(2:end-1),dy_c,'s')\n", + "legend('analytical dy/dx',' fwd dy/dx', 'cent dy/dx','North')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "celltoolbar": "Slideshow", + "kernelspec": { + "display_name": "Octave", + "language": "octave", + "name": "octave" + }, + "language_info": { + "file_extension": ".m", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "octave", + "version": "0.19.14" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/20_derivatives/octave-workspace b/20_derivatives/octave-workspace new file mode 100644 index 0000000..41ef164 Binary files /dev/null and b/20_derivatives/octave-workspace differ diff --git a/HW6/README.md b/HW6/README.md new file mode 100644 index 0000000..1ec0fd2 --- /dev/null +++ b/HW6/README.md @@ -0,0 +1,46 @@ +# Homework #6 +## due 12/5 by 11:59pm + + +### Problem 1 due 11/30 + +**1\.** Create a new github repository called '06_initial_value_ode'. + +a. Add rcc02007 and zhs15101 as collaborators. + +b. Clone the repository to your computer. + +**2\.** Solve the initial value problem with y(0)=1, + +y'=-y + +a. analytically + +b. with Euler's method + +c. with Heun's predictor-corrector approach + +**3\.** Solve the initial value problem with y(0)=1, y'(0)=0 + +y''+9y=0 + +a. analytically + +b. with Euler's method + +c. with Heun's predictor-corrector approach + +**4\.** Solve the freefall problem for x(t), given cd=0.25 kg/m, m=60 kg, from t=0-12 s, +given x(0)=100 m, v(0)=0 m/s + +v'=g - cd/m v*v + +a. analytically + +b. with Euler's method + +c. with Heun's predictor-corrector approach + +**5\.** *Coming Monday afternoon* + +### Mini-design challenge