Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "MATLAB Ordinary Differential Equations – Part II Greg Reese, Ph.D Research Computing Support Group Academic Technology Services Miami University September."— Presentation transcript:

1

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

3 MATLAB Ordinary Differential Equations – Part II © Greg Reese. All rights reserved 2

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

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

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π

7 Parametric curves 6 Try It Plot x(t) = cos(t) y(t) = 3sin(t) over 0

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 )

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

10 Parametric curves 9 Try It Plot ρ = θ >> )

11 Parametric curves 10 Try It Plot ρ = sin(θ)cos(θ) over 0 < θ < 6π –Hint: use the vector arithmetic operators.*,./, and.^ to avoid warnings >> [0 6*pi ] )

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π

13 Parametric curves 12 Try It Plot x(t) = cos(4t) y(t) = sin(4t) z(t) = t over 0

14 Parametric curves Try It Plot x(t) = cos(4t) y(t) = sin(4t) z(t) = t over 0

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

16 Parametric curves 15 Questions?

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

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)

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

20 Phase plane plot 19 Try It >> tSpan = [ 0 10 ]; >> y0 = [ 1 1 ]; >> [ ta ya ] =... 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?

21 Phase plane plot 20 Try It >> tSpan = [ 0 10 ]; >> y0 = [ -5 2 ]; >> [ tb yb ] =... 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)

22 Phase plane plot 21 Try It >> tSpan = [ 0 10 ]; >> y0 = [ 5 -2 ]; >> [ tc yc ] =... 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)

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) ] );

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: ?

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.

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)

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)

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

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 = y =

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 )

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?

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

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

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.

35 Phase plane plot 34 What path would dot take and why?

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.

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 ] =... tSpan, y0a ); >> plot( ya(:,1), ya(:,2) );

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 ] = tSpan, yy0 ); >> plot( ya(:,1),ya(:,2),yy(:,1),yy(:,2) )

39 Phase plane plot 38 Fairly close

40 Phase plane plot 39 Repeat for 10% greater >> n = 0.1; >> yy0 = y0a + n*y0a; >> [ tt yy ] = tSpan, yy0 ); >> plot( ya(:,1), ya(:,2),yy(:,1),yy(:,2) )

41 Phase plane plot 40

42 Phase plane plot 41 Repeat for 1% greater >> n = 0.01; >> yy0 = y0a + n*y0a; >> [ tt yy ] = tSpan, yy0 ); >> plot( ya(:,1), ya(:,2),yy(:,1),yy(:,2) )

43 Phase plane plot 42

44 Phase plane plot 43 Repeat for 0.1% greater >> n = 0.001; >> yy0 = y0a + n*y0a; >> [ tt yy ] = tSpan, yy0 ); >> plot( ya(:,1), ya(:,2),yy(:,1),yy(:,2) )

45 Phase plane plot 44

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.

47 Phase plane plot 46 Well, as that famous philosopher might say

48 Phase plane plots 47 Questions?

49 48 CHAOS or Welcome to my World

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

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

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)

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!

54 Chaos 53 Equations, in state-space form, are * Notice only two terms have nonlinearities * Also appear in slightly different forms

55 Chaos 54 All parameters are > 0 β usually 8/3 σ (Prandtl number) usually 10 ρ (Rayleigh number) often varied

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);

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 ]; >> [ t y ] = t,y,beta,rho,sigma), tSpan, y0 ); >> plot3( y(:,1), y(:,2), y(:,3) ) >> comet3( y(:,1), y(:,2), y(:,3) )

58 Chaos 57 Try It System converges Az: -120 El: -20

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) )

60 Chaos 59 Try It Set ρ = 16 rerun, and do comet3, plot3 Az: -120 El: -20

61 Chaos 60 Try It Notice that "particle" gets pulled over into "hole". "Hole" is called an attractor Az: -120 El: -20

62 Chaos 61 Try It Set ρ = 20 rerun, and do comet3, plot3 Az: -120 El: -20

63 Chaos 62 Try It Set ρ = 24.2 rerun, and do comet3, plot3 Az: -120 El: -20

64 Chaos 63 Try It Set ρ = 24.3 rerun, and do comet3, plot3 Watch comet carefully! Az: -120 El: -20

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

66 Chaos 65 Try It Set ρ = 26 rerun, and do comet3, plot3 Az: -120 El: -20

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

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

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

70 Chaos 69 Now look at sensitivity to initial conditions >> beta = 8/3; >> sigma = 10; >> rho = 28; >> y0 = 1e-8 * [ ]; >> [ tt yy ] = t,y,beta,rho,sigma), tSpan, y0 ); >> plot3( yy(:,1), yy(:,2), yy(:,3), 'b' ) >> title( 'Original' ) Az: -120 El: -20

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

72 Chaos 71 Now look at sensitivity to initial conditions >> y0 = 1e-8 * [ ]; >> [ t y ] = 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 x 100 = 1% difference

73 Chaos 72 1% difference – clearly different paths Az: -120 El: -20

74 Chaos 73 >>y0=1e-8*[ ]; % 0.1% difference Az: -120 El: -20

75 Chaos 74 >>y0=1e-8*[ ]; % 0.001% difference Az: -120 El: -20

76 Chaos 75 >>y0=1e-8*[ ]; % % difference Az: -120 El: -20

77 Chaos 76 >>y0=1e-8*[ ]; % % difference y 1 (t) vs y 2 (t)

78 Chaos 77 >>y0=1e-8*[ ]; % % difference y 1 (t) vs y 3 (t)

79 Chaos 78 >>y0=1e-8*[ ]; % % difference y 2 (t) vs y 3 (t)

80 Chaos 79 So even though initial conditions only differ by 1 / 100,000 of a percent, the trajectories become very different!

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.

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

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

84 Chaos 83 Questions?

85 84 The End


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

Similar presentations


Ads by Google