84
MATLAB Ordinary Differential Equations – Part II Greg Reese, Ph.D Research Computing Support Group Academic Technology Services Miami University September 2013

MATLAB Ordinary Differential Equations – Part II Greg Reese, Ph.D Research Computing Support Group Academic Technology Services Miami University September

Embed Size (px)

Citation preview

  • Slide 1

Slide 2 MATLAB Ordinary Differential Equations Part II Greg Reese, Ph.D Research Computing Support Group Academic Technology Services Miami University September 2013 Slide 3 MATLAB Ordinary Differential Equations Part II 2010-2013 Greg Reese. All rights reserved 2 Slide 4 Parametric curves 3 Usually describe curve in plane with equation in x and y, e.g., x 2 + y 2 = r 2 is circle at origin In other words, can write y as a function of x or vice-versa. Problems Form may not be easy to work with Lots of curves that can't write as single equation in only x and y Slide 5 Parametric curves 4 One solution is to use a parametric equation. In it, define both x and y to be functions of a third variable, say t x = f(t) y = g(t) Each value of t defines a point (x,y)=( f(t), g(t) ) that we can plot. Collection of points we get by letting t take on all its values is a parametric curve Slide 6 Parametric curves 5 To plot 2D parametric curves use ezplot(funx,funy) ezplot(funx,funy,[tmin,tmax]) where funx is handle to function x(t) funy is handle to function y(t) tmin, tmax specify range of t if omitted, range is 0 < t < 2 Slide 7 Parametric curves 6 Try It Plot x(t) = cos(t) y(t) = 3sin(t) over 0 ezplot( @(t)cos(t), @(t)3*sin(t) ) Slide 8 Parametric curves 7 Try It Plot x(t) = cos 3 (t) y(t) = 3sin(t) Hint: use the vector arithmetic operators.*,./, and.^ to avoid warnings >> ezplot( @(t)cos(t).^3, @(t)3*sin(t) ) Slide 9 Parametric curves 8 Often parametric curves expressed in polar form = f() Plot with ezpolar(fun) ezpolar(f,[thetaMin,thetaMax]) where f is handle to function = f() thetaMin, thetaMax specify range of if omitted, range is 0 < < 2 ()() x y Slide 10 Parametric curves 9 Try It Plot = >> ezpolar( @(theta)theta ) Slide 11 Parametric curves 10 Try It Plot = sin()cos() over 0 < < 6 Hint: use the vector arithmetic operators.*,./, and.^ to avoid warnings >> ezpolar( @(theta)sin(theta).*cos(theta),... [0 6*pi ] ) Slide 12 Parametric curves 11 To plot 3D parametric curves use ezplot(funx,funy,funz) ezplot(funx,funy,funz,[tmin,tmax]) where funx is handle to function x(t) funy is handle to function y(t) funz is handle to function z(t) tmin, tmax specify range of t if omitted, range is 0 < t < 2 Slide 13 Parametric curves 12 Try It Plot x(t) = cos(4t) y(t) = sin(4t) z(t) = t over 0 ezplot3( @(t)cos(4*t), @(t)sin(4*t), @(t)t ) Unfortunately, there's no ezpolar3 Slide 14 Parametric curves Try It Plot x(t) = cos(4t) y(t) = sin(4t) z(t) = t over 0ezplot3( @(t)cos(4*t),@(t)sin(4*t),... @(t)t ), 'animate' ) 13 FOR THRILLS Slide 15 Try It Place command window and figure window side by side and use comet3() to plot x(t) = cos(30t) y(t) = sin(30t) z(t) = t over 0 t = 2*pi * 0:0.001:1; >> x = cos( 30*t ); >> y = sin( 30*t ); >> z = t; >> comet3( x, y, z ) Parametric curves 14 FOR THRILLS and CHILLS Slide 16 Parametric curves 15 Questions? Slide 17 Phase plane plot 16 For ideal pendulum, '' +sin( (t) ) = 0 Define y 1 (t) = (t), y 2 (t) = ' (t) to get Write pendulum.m function yPrime = pendulum( t, y ) yPrime = [ y(2) -sin( y(1) ) ]'; (t) gravity Slide 18 Phase plane plot 17 3 different initial conditions y 1 (0)= (0) = 1 R =57 y 2 (0)= ' (0) = 1 R /sec=57/sec (0) ' (0) y 1 (0)= (0) = -5 R =-286=74 y 2 (0)= ' (0) = 2 R /sec=115/sec (0) ' (0) y 1 (0)= (0) = 5 R =-74 y 2 (0)= ' (0) = -2 R /sec=-115/sec (0) ' (0) Slide 19 Phase plane plot 18 Try It For ideal pendulum, '' +sin( (t) ) = 0 solve for the initial conditions (0)=1, ' (0)=1 and time = [ 0 10 ] and make a phase plane plot with y 1 (t) on the horizontal axis and y 2 (t) on the vertical. Store the results in ta and ya Slide 20 Phase plane plot 19 Try It >> tSpan = [ 0 10 ]; >> y0 = [ 1 1 ]; >> [ ta ya ] =... ode45( @pendulum, tSpan, y0 ); >> plot( ya(:,1), ya(:,2) ); y 1 (0)= (0) = 1 R =57 y 2 (0)= ' (0) = 1 R /sec=57/sec (0) ' (0) Qualitatively, what should pendulum do? Slide 21 Phase plane plot 20 Try It >> tSpan = [ 0 10 ]; >> y0 = [ -5 2 ]; >> [ tb yb ] =... ode45( @pendulum, tSpan, y0 ); >> plot( yb(:,1), yb(:,2) ); Qualitatively, what should pendulum do? y 1 (0)= (0) = -5 R =-286=74 y 2 (0)= ' (0) = 2 R /sec=115/sec (0) ' (0) Slide 22 Phase plane plot 21 Try It >> tSpan = [ 0 10 ]; >> y0 = [ 5 -2 ]; >> [ tc yc ] =... ode45( @pendulum, tSpan, y0 ); >> plot( yc(:,1), yc(:,2) ); Qualitatively, what should pendulum do? y 1 (0)= (0) = 5 R =-74 y 2 (0)= ' (0) = -2 R /sec=-115/sec (0) ' (0) Slide 23 Phase plane plot 22 Try It Graph all three on one plot >> plot( ya(:,1), ya(:,2), yb(:,1), yb(:,2),... yc(:,1), yc(:,2) ) >> ax = axis; >> axis( [ -5 5 ax(3:4) ] ); Slide 24 Phase plane plot 23 If have initial condition (other than previous 3) that is exactly on curve (red dot) can tell its path in phase plane. Q: What if not on curve but very close to it (yellow dot)? A: ? Slide 25 Phase plane plot 24 To help understand solution for any initial condition, can make phase plot and add information about how each state variable changes with time, i.e., display the first derivative of each state variable. Slide 26 Phase plane plot 25 Will show rate of change of state variables at a point by drawing a vector point there. Horizontal component of vector is rate of change of variable one; vertical component of vector is rate of change of variable two. y 1 (t) y 2 (t) y ' 1 (t) y ' 2 (t) Slide 27 Phase plane plot 26 Where can we get these rates of change? From the state-space formulation y ' (t) = f( t, y ) ! Example ideal pendulum y 1 (t) y 2 (t) y ' 1 (t) y ' 2 (t) Slide 28 Phase plane plot 27 To plot vectors at point, use quiver( x, y, u, v ) This plots the vectors (u,v) at every point (x,y) x is matrix of x-values of points y is matrix of y-values of points u is matrix of horizontal components of vectors v is matrix of vertical components of vectors All matrices must be same size v (x,y) u Slide 29 Phase plane plot 28 To make x and y for quiver, use [ x y ] = meshgrid( xVec, yVec ) Example >> [ x y ] = meshgrid( 1:5, 7:9 ) x = 1 2 3 4 5 1 2 3 4 5 y = 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 Slide 30 Phase plane plot 29 Let's make quiver plot at every point (x,y) for x going from -5 to 5 in increments of 1 and y going from -2.5 to 2.5 in increments of 0.5 >> [y1 y2 ] = meshgrid( -5:5, -2.5:0.5:2.5 ); >> y1Prime = y2; >> y2Prime = -sin( y1 ); >> quiver( y1, y2, y1Prime, y2Prime ) Slide 31 Phase plane plot 30 Now can see rate of change of state variables. MATLAB plots zero-vectors as a small dot. What is physical meaning of 3 small dots? Slide 32 Phase plane plot 31 To answer question about solution with initial conditions close to those of another solution (yellow dot close to green line), put phase-plane plot and quiver plot together Slide 33 Phase plane plot 32 Try It >> plot( ya(:,1), ya(:,2), yb(:,1),... yb(:,2), yc(:,1), yc(:,2) ) >> ax = axis; >> axis( [ -5 5 ax(3:4) ] ) >> hold on >> quiver( y1, y2, y1Prime, y2Prime ) >> hold off Slide 34 Phase plane plot 33 Try It To see solution path for specific initial conditions, imagine dropping a toy boat (initial condition) at a spot in a river (above plot) and watching how current (arrows) pushes it around. Slide 35 Phase plane plot 34 What path would dot take and why? Slide 36 Phase plane plot 35 From phase-plane plot it appears reasonable to say that if the initial conditions of the solutions of a differential equation are close to each other, the solutions are also close to each other. Slide 37 Phase plane plot 36 Let's check out this idea that close initial conditions lead to close solutions a little more. Replot solution to first initial conditions >> tSpan = [ 0 10 ]; >> y0a = [ 1 1 ]; >> [ ta ya ] =... ode45( @pendulum, tSpan, y0a ); >> plot( ya(:,1), ya(:,2) ); Slide 38 Phase plane plot 37 Now let's solve again with initial conditions 25% greater and plot both >> n = 0.25; >> yy0 = y0a + n*y0a; >> [ tt yy ] = ode45(@pendulum, tSpan, yy0 ); >> plot( ya(:,1),ya(:,2),yy(:,1),yy(:,2) ) Slide 39 Phase plane plot 38 Fairly close Slide 40 Phase plane plot 39 Repeat for 10% greater >> n = 0.1; >> yy0 = y0a + n*y0a; >> [ tt yy ] = ode45( @pendulum, tSpan, yy0 ); >> plot( ya(:,1), ya(:,2),yy(:,1),yy(:,2) ) Slide 41 Phase plane plot 40 Slide 42 Phase plane plot 41 Repeat for 1% greater >> n = 0.01; >> yy0 = y0a + n*y0a; >> [ tt yy ] = ode45( @pendulum, tSpan, yy0 ); >> plot( ya(:,1), ya(:,2),yy(:,1),yy(:,2) ) Slide 43 Phase plane plot 42 Slide 44 Phase plane plot 43 Repeat for 0.1% greater >> n = 0.001; >> yy0 = y0a + n*y0a; >> [ tt yy ] = ode45( @pendulum, tSpan, yy0 ); >> plot( ya(:,1), ya(:,2),yy(:,1),yy(:,2) ) Slide 45 Phase plane plot 44 Slide 46 Phase plane plot 45 Again, it appears that if the initial conditions of the solutions of a differential equation are close to each other, the solutions are also close to each other. Slide 47 Phase plane plot 46 Well, as that famous philosopher might say Slide 48 Phase plane plots 47 Questions? Slide 49 48 CHAOS or Welcome to my World Slide 50 Chaos 49 Chaos theory is branch of math that studies behavior of certain kinds of dynamical systems Chaotic behavior observed in nature, e.g., weather Quantum chaos theory studies relationship between chaos and quantum mechanics Slide 51 Chaos 50 Chaotic systems are: Deterministic no randomness involved If start with identical initial conditions, get identical final states High sensitivity to initial conditions Tiny differences in starting state can lead to enormous differences in final state, even over small time ranges Seemingly random Unexpected and abrupt changes in state occur Often sensitive to slight parameter changes Slide 52 Chaos 51 In 1963, Edward Lorenz, mathematician and meteorologist, published set of equations Simplified model of convection rolls in the atmosphere Also used as simple model of laser and dynamo (electric generator) Slide 53 Chaos 52 Set of equations Nonlinear Three-dimensional Deterministic, i.e., no randomness involved Important implications for climate and weather prediction Atmospheres may exhibit quasi-periodic behavior and may have abrupt and seemingly random change, even if fully deterministic Weather can't be predicted too far into future! Slide 54 Chaos 53 Equations, in state-space form, are * Notice only two terms have nonlinearities * Also appear in slightly different forms Slide 55 Chaos 54 All parameters are > 0 usually 8/3 (Prandtl number) usually 10 (Rayleigh number) often varied Slide 56 Chaos 55 Let's check out the system Download lorenz.m function yPrime =... lorenz(t,y,beta,rho,sigma) yPrime = zeros( 3, 1 ); yPrime(1) = sigma*( y(2) - y(1) ); yPrime(2) = y(1)*( rho - y(3) ) - y(2); yPrime(3) = y(1)*y(2) - beta*y(3); Slide 57 Chaos 56 Try It Look at effect of changing , start with =12 >> beta = 8/3; >> rho = 12; >> sigma = 10; >> tSpan = [ 0 50 ]; >> y0 = [1e-8 0 0 ]; >> [ t y ] = ode45( @(t,y)lorenz(... t,y,beta,rho,sigma), tSpan, y0 ); >> plot3( y(:,1), y(:,2), y(:,3) ) >> comet3( y(:,1), y(:,2), y(:,3) ) Slide 58 Chaos 57 Try It System converges Az: -120 El: -20 Slide 59 Chaos 58 Try It View two state variables at a time >> plot( y(:,1), y(:,2) ) >> plot( y(:,1), y(:,3) ) >> plot( y(:,2), y(:,3) ) Slide 60 Chaos 59 Try It Set = 16 rerun, and do comet3, plot3 Az: -120 El: -20 Slide 61 Chaos 60 Try It Notice that "particle" gets pulled over into "hole". "Hole" is called an attractor Az: -120 El: -20 Slide 62 Chaos 61 Try It Set = 20 rerun, and do comet3, plot3 Az: -120 El: -20 Slide 63 Chaos 62 Try It Set = 24.2 rerun, and do comet3, plot3 Az: -120 El: -20 Slide 64 Chaos 63 Try It Set = 24.3 rerun, and do comet3, plot3 Watch comet carefully! Az: -120 El: -20 Slide 65 Chaos 64 Try It Wow! A small change in causes giant change in trajectory! Particle starts bouncing back and forth between attractors Az: -120 El: -20 Slide 66 Chaos 65 Try It Set = 26 rerun, and do comet3, plot3 Az: -120 El: -20 Slide 67 Chaos 66 Try It Set = 30 rerun, and do comet3, plot3 In comet, watch hopping back and forth between attractors Az: -120 El: -20 Slide 68 Chaos 67 More common view of Lorenz attractor Has been shown Bounded (always within a box) Non-periodic Never crosses itself Az: 0 El: 0 Slide 69 Chaos 68 Lorenz attractor shows us some characteristics of chaotic systems Paths in phase space can be very complicated Paths can have abrupt changes at seemingly random times Small variations in a parameter can produce large changes in trajectories Slide 70 Chaos 69 Now look at sensitivity to initial conditions >> beta = 8/3; >> sigma = 10; >> rho = 28; >> y0 = 1e-8 * [ 1 0 0 ]; >> [ tt yy ] = ode45( @(t,y)lorenz( t,y,beta,rho,sigma), tSpan, y0 ); >> plot3( yy(:,1), yy(:,2), yy(:,3), 'b' ) >> title( 'Original' ) Az: -120 El: -20 Slide 71 Chaos 70 Now look at sensitivity to initial conditions >> y = yy; >> plot3( yy(:,1), yy(:,2), yy(:,3), 'b',... y(:,1), y(:,2), y(:,3), 'y' ) >> title( '0% difference' ) OOPS! MATLAB bug. Yellow should exactly cover blue Just pretend it does! Az: -120 El: -20 Slide 72 Chaos 71 Now look at sensitivity to initial conditions >> y0 = 1e-8 * [ 1.01 0 0 ]; >> [ t y ] = ode45( @(t,y)lorenz( t,y,beta,rho,sigma), tSpan, y0 ); >> plot3( yy(:,1), yy(:,2), yy(:,3), 'b', y(:,1), y(:,2), y(:,3), 'y' ) >> title( '1% difference' ) (1.01-1.00)/1 x 100 = 1% difference Slide 73 Chaos 72 1% difference clearly different paths Az: -120 El: -20 Slide 74 Chaos 73 >>y0=1e-8*[1.001 0 0 ]; % 0.1% difference Az: -120 El: -20 Slide 75 Chaos 74 >>y0=1e-8*[1.00001 0 0 ]; % 0.001% difference Az: -120 El: -20 Slide 76 Chaos 75 >>y0=1e-8*[1.0000001 0 0 ]; % 0.00001% difference Az: -120 El: -20 Slide 77 Chaos 76 >>y0=1e-8*[1.0000001 0 0 ]; % 0.00001% difference y 1 (t) vs y 2 (t) Slide 78 Chaos 77 >>y0=1e-8*[1.0000001 0 0 ]; % 0.00001% difference y 1 (t) vs y 3 (t) Slide 79 Chaos 78 >>y0=1e-8*[1.0000001 0 0 ]; % 0.00001% difference y 2 (t) vs y 3 (t) Slide 80 Chaos 79 So even though initial conditions only differ by 1 / 100,000 of a percent, the trajectories become very different! Slide 81 Chaos 80 This extreme sensitivity to initial conditions is often called The Butterfly Effect A butterfly flapping its wings in Brazil can cause a tornado in Texas. Slide 82 Chaos 81 Lorenz equations are good example of chaotic system Deterministic High sensitivity to initial conditions Very tiny differences in starting state can lead to substantial differences in final state Unexpected and abrupt changes in state Sensitive to slight parameter changes Slide 83 Chaos 82 MATLAB is good for studying chaotic systems Easy to set and change initial conditions or parameters Solving equations is fast and easy Plotting and comparing 2D and 3D trajectories also fast and easy Slide 84 Chaos 83 Questions? Slide 85 84 The End