### y 2 - Miami University

```MATLAB
Ordinary Differential
Equations – Part II
Greg Reese, Ph.D
Research Computing Support Group
Miami University
September 2013
MATLAB
Ordinary Differential
Equations – Part II
2
Parametric curves
Usually describe curve in plane with
equation in x and y, e.g.,
x2 + y2 = r2
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
3
Parametric curves
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
4
Parametric curves
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π
5
Parametric curves
Try It
Plot x(t) = cos(t) y(t) = 3sin(t) over 0<t<2π
>> ezplot( @(t)cos(t), @(t)3*sin(t) )
x = cos(t), y = 3 sin(t)
2.5
2
1.5
1
y
0.5
0
-0.5
-1
-1.5
-2
-2.5
-3
-2
-1
0
x
1
2
3
6
Parametric curves
Try It
Plot x(t) = cos3(t)
y(t) = 3sin(t)
– Hint: use the vector arithmetic operators
.*, ./, and .^ to avoid warnings
>> ezplot( @(t)cos(t).^3, @(t)3*sin(t) )
x = cos(t)3, y = 3 sin(t)
2.5
2
1.5
1
y
0.5
0
-0.5
-1
-1.5
-2
-2.5
7
-3
-2
-1
0
x
1
2
3
Parametric curves
Often parametric curves expressed
in polar form
ρ = f(θ)
Plot with
y
ρ(θ)
θ
x
ezpolar(fun)
ezpolar(f,[thetaMin,thetaMax])
where
• f is handle to function ρ = f(θ)
• thetaMin, thetaMax specify
range of θ
– if omitted, range is 0 < θ < 2π
8
Parametric curves
Try It
Plot ρ = θ
>> ezpolar( @(theta)theta )
90
8
120
60
6
4
150
30
2
180
0
210
330
240
300
r270
=
9
Parametric curves
Try It
Plot ρ = sin(θ)cos(θ) over 0 < θ < 6π
– Hint: use the vector arithmetic operators
.*, ./, and .^ to avoid warnings
>> ezpolar( @(theta)sin(theta).*cos(theta),...
90
[0 6*pi ] )
0.5
120
60
0.4
0.3
150
30
0.2
0.1
180
0
210
330
240
300
270
10
r = sin() cos()
Parametric curves
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π
11
Parametric curves
Try It
Plot
x(t) = cos(4t) y(t) = sin(4t) z(t) = t over 0<t<2π
>> ezplot3( @(t)cos(4*t), @(t)sin(4*t), @(t)t )
x = cos(4 t), y = sin(4 t), z = t
8
z
6
4
Unfortunately,
there's no
ezpolar3
2
0
1
0.5
1
0.5
0
0
-0.5
y
-0.5
-1
-1
x
12
FOR THRILLS
Parametric curves
Try It
Plot
x(t) = cos(4t) y(t) = sin(4t) z(t) = t over 0<t<2π
>>ezplot3( @(t)cos(4*t),@(t)sin(4*t),...
@(t)t ), 'animate ' )
13
Parametric curves
Try It
FOR
THRILLS
Place command window and figure window
side by side and use comet3() to plot
and CHILLS
x(t) = cos(30t) y(t) = sin(30t) z(t) = t over 0<t<2π
>>
>>
>>
>>
>>
t = 2*pi * 0:0.001:1;
x = cos( 30*t );
y = sin( 30*t );
z = t;
comet3( x, y, z )
14
Parametric curves
Questions?
15
Phase plane plot
For ideal pendulum,
θ''+sin( θ(t) ) = 0
Define y1(t) = θ(t), y2(t) = θ'(t) to get
 y1' (t )   y2 (t ) 
 ' 


sin
y
(
t
)
y
(
t
)
1

 2  
θ(t)
gravity
Write pendulum.m
function yPrime = pendulum( t, y )
yPrime = [ y(2) -sin( y(1) ) ]';
16
Phase plane plot
3 different initial conditions
θ'(0)
θ(0)
θ'(0)
θ(0)
θ(0)
θ'(0)
y1(0)= θ(0) = 1R=57°
y2(0)= θ'(0) =
1R/sec=57°/sec
y1(0)= θ(0)
=
-5R=-286°=74°
y2(0)= θ'(0) =
2R/sec=115°/sec
y1(0)= θ(0)
= 5R=-74°
y2(0)= θ'(0) =
-2R/sec=-115°/sec
17
Phase plane plot
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
y1(t) on the horizontal axis and y2(t)
on the vertical. Store the results in ta
and ya
18
Phase plane plot
Qualitatively, what should pendulum do?
Try It
>> tSpan = [ 0 10 ];
>> y0 = [ 1 1 ];
>> [ ta ya ] = ...
ode45( @pendulum, tSpan, y0 );
>> plot( ya(:,1), ya(:,2) );
1.5
θ(0)
θ'(0)
y1(0)= θ(0) = 1R=57°
y2(0)= θ'(0) =
1R/sec=57°/sec
1
0.5
0
-0.5
-1
19
-1.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
Phase plane plot
θ'(0)
θ(0)
Qualitatively, what should pendulum do?
Try It
>> tSpan = [ 0 10 ];
>> y0 = [ -5 2 ];
>> [ tb yb ] = ...
ode45( @pendulum, tSpan, y0 );
>> plot( yb(:,1), yb(:,2) );
2.6
y1(0)= θ(0)
= -5R=-286°=74°
y2(0)= θ'(0) =
2R/sec=115°/sec
2.4
2.2
2
y (t)
2
1.8
1.6
1.4
20
-6
-4
-2
0
2
4
y 1(t)
6
8
10
12
Phase plane plot
θ'(0)
θ(0)
Qualitatively, what should pendulum do?
Try It
>> tSpan = [ 0 10 ];
>> y0 = [ 5 -2 ];
>> [ tc yc ] = ...
ode45( @pendulum, tSpan, y0 );
>> plot( yc(:,1), yc(:,2) );
-1.2
y1(0)= θ(0)
= 5R=-74°
y2(0)= θ'(0) =
-2R/sec=-115°/sec
-1.4
-1.6
2
y (t)
-1.8
-2
-2.2
-2.4
21
-2.6
-12
-10
-8
-6
-4
-2
y 1(t)
0
2
4
6
Phase plane plot
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) ] );
2.5
2
1.5
1
2
y (t)
0.5
0
-0.5
-1
-1.5
-2
-2.5
-5
-4
-3
-2
-1
0
y 1(t)
1
2
3
4
5
22
Phase plane plot
2
1.5
1
0.5
2
y (t)
If have initial
condition (other
than previous 3)
that is exactly on
curve (red dot)
can tell its path in
phase plane.
2.5
0
-0.5
-1
-1.5
-2
-2.5
-5
-4
-3
-2
-1
0
y 1(t)
1
2
3
4
5
Q: What if not on curve but very close to it
(yellow dot)? A: ?
23
Phase plane plot
To help understand solution for any
initial condition, can make phase plot
state variable changes with time, i.e.,
display the first derivative of each state
variable.
24
Phase plane plot
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)
y2(t)
y1(t)
25
Phase plane plot
Where can we get these rates of
change?
y (t)
y'1(t)
y'2(t)
2
From the state-space formulation
y1(t)
y'(t) = f( t, y ) !
Example – ideal pendulum
 y1' (t )   y2 (t ) 
 ' 


sin
y
(
t
)
y
(
t
)
1

 2  
26
Phase plane plot
To plot vectors at point, use
quiver( x, y, u, v )
u
(x,y)
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
27
Phase plane plot
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
1
2
3
4
5
y =
7
8
9
7
8
9
7
8
9
7
8
9
7
8
9
28
Phase plane plot
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
 y1' (t )   y2 (t ) 
increments of 0.5
 ' 
 sin y (t )
 y2 (t )
>>
>>
>>
>>

1

[y1 y2 ] = meshgrid( -5:5, -2.5:0.5:2.5 );
y1Prime = y2;
y2Prime = -sin( y1 );
quiver( y1, y2, y1Prime, y2Prime )
29
Phase plane plot
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?
3
2
2
y (t)
1
0
-1
-2
-3
-6
30
-4
-2
0
y 1(t)
2
4
6
Phase plane plot
2.5
2
1.5
1
0.5
2
y (t)
solution with
initial conditions
close to those of
another solution
(yellow dot close
to green line), put
phase-plane plot
and quiver plot
together
0
-0.5
-1
-1.5
-2
-2.5
-5
-4
-3
-2
-1
0
y 1(t)
1
2
3
4
5
31
Phase plane plot
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
32
Phase plane plot
2.5
2
1.5
1
2
y (t)
0.5
0
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.
-0.5
-1
-1.5
-2
-2.5
-5
-4
-3
-2
-1
0
y 1(t)
1
2
3
4
33
5
Phase plane plot
2.5
2
1.5
1
2
y (t)
0.5
0
-0.5
-1
-1.5
-2
-2.5
-5
-4
-3
-2
-1
0
y 1(t)
1
2
3
4
5
What path would dot take and why?
34
Phase plane plot
2.5
2
1.5
1
2
y (t)
0.5
0
-0.5
-1
-1.5
-2
-2.5
-5
-4
-3
-2
-1
0
y 1(t)
1
2
3
4
5
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.
35
Phase plane plot
Let's check out this idea that 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) );
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
36
Phase plane plot
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) )
37
Phase plane plot
Initial conditions within 25%
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-2.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
2.5
Fairly close
38
Phase plane plot
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) )
39
Phase plane plot
Initial conditions within 10%
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
40
Phase plane plot
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) )
41
Phase plane plot
Initial conditions within 1%
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
42
Phase plane plot
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) )
43
Phase plane plot
Initial conditions within 0.1%
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
44
Phase plane plot
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.
45
Phase plane plot
Well, as that famous philosopher might say
46
Phase plane plots
Questions?
47
CHAOS
or
Welcome to my World
48
Chaos
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
49
Chaos
Chaotic systems are:
• Deterministic – no randomness involved
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
50
Chaos
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)
51
Chaos
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!
52
Chaos
Equations, in state-space form, are*
y (t )    y2 (t )  y1 (t ) 
'
1
'
2
'
3
y (t )  y1 (t )  y1 (t ) y3 (t )  y2 (t )
y (t )  y1 (t ) y2 (t )  y3 (t )
Notice only two terms have nonlinearities
* Also appear in slightly different forms
53
Chaos
y (t )    y2 (t )  y1 (t ) 
'
1
'
2
'
3
y (t )  y1 (t )  y3 (t )   y2 (t )
y (t )  y1 (t ) y2 (t )  y3 (t )
• All parameters are > 0
• β usually 8/3
• σ (Prandtl number) usually 10
• ρ (Rayleigh number) often varied
54
Chaos
Let's check out the system
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);
55
Chaos
Try It
>> 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) )
56
Chaos
Try It
System converges
 = 12
20
15
10
5
0
-5
-5
12
Az: -120 El: -20
0
10
8
5
6
4
2
10
0
-2
15
57
Chaos
Try It
View two state variables at a time
>> plot( y(:,1), y(:,2) )
>> plot( y(:,1), y(:,3) )
>> plot( y(:,2), y(:,3) )
 = 12
 = 12
 = 12
12
20
20
10
15
15
8
10
3
3
2
y (t)
y (t)
y (t)
10
6
4
5
5
2
0
0
0
-2
-2
0
2
4
6
y 1(t)
8
10
12
-5
-2
0
2
4
6
y 1(t)
8
10
12
-5
-2
0
2
4
6
8
10
12
y 2(t)
58
Chaos
Try It
Set ρ = 16 rerun, and do comet3, plot3
30
25
20
15
10
5
0
-20
-5
20
Az: -120 El: -20
-10
15
10
0
5
0
-5
10
-10
-15
20
59
Chaos
Try It
Notice that "particle" gets pulled over
into "hole". "Hole" is called an
attractor
30
25
20
15
10
5
0
-20
-5
20
Az: -120 El: -20
-10
15
10
0
5
0
-5
10
-10
-15
20
60
Chaos
Try It
Set ρ = 20 rerun, and do comet3, plot3
 = 20
35
30
25
20
15
10
5
0
-5
20
Az: -120 El: -20
-20
-10
15
0
10
5
0
-5
10
-10
-15
20
61
Chaos
Try It
Set ρ = 24.2 rerun, and do comet3, plot3
 = 24.2
45
40
35
30
25
20
15
10
5
0
-5
25
Az: -120 El: -20
-20
-10
20
15
0
10
5
0
10
-5
-10
-15
20
62
Chaos
Try It
Set ρ = 24.3 rerun, and do comet3, plot3
Watch comet carefully!
 = 24.3
45
40
35
30
25
20
15
10
5
0
-5
25
Az: -120 El: -20
-20
-10
20
15
0
10
5
0
-5
10
-10
-15
-20
20
63
Chaos
Try It
Wow! A small change in ρ causes giant
change in trajectory! Particle starts
bouncing back and forth between
attractors
 = 24.2
 = 24.3
45
45
40
40
35
35
30
30
25
25
20
20
15
15
10
10
5
5
0
-5
25
-20
-10
20
15
0
10
5
0
0
-5
25
-20
-10
20
10
-5
-10
-15
20
15
0
10
5
0
-5
10
-10
-15
-20
20
64
Az: -120 El: -20
Chaos
Try It
Set ρ = 26 rerun, and do comet3, plot3
 = 26
45
40
35
30
25
20
15
10
5
0
-5
30
Az: -120 El: -20
-20
-10
20
0
10
0
-10
10
-20
-30
20
65
Try It Chaos
Set ρ = 30 rerun, and do comet3, plot3
In comet, watch hopping back and forth
between attractors
 = 30
60
50
40
30
20
10
0
-20
-10
30
Az: -120 El: -20
-10
0
20
10
10
0
-10
20
-20
-30
30
66
Chaos
More common view of Lorenz attractor
Has been shown
– Bounded (always
within a box)
– Non-periodic
– Never crosses itself
 = 30
60
50
40
30
20
10
0
-10
-20
-15
-10
-5
0
5
10
15
20
25
Az: 0 El: 0
67
Chaos
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
 = 30
60
50
40
30
20
10
0
-10
-20
-15
-10
-5
0
5
10
15
20
25
68
Chaos
Now look at sensitivity to initial
conditions
Original
50
>> 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' )
40
30
20
10
0
-10
30
-20
-10
20
0
10
0
-10
10
-20
-30
20
Az: -120 El: -20
69
Chaos
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!
0% difference
50
40
30
20
10
0
-20
Az: -120 El: -20
-10
30
-10
20
0
10
0
-10
10
-20
-30
20
70
Chaos
Now look at sensitivity to initial
conditions
(1.01-1.00)/1 x 100
>> y0 = 1e-8 * [ 1.01 0 0 ];
>> [ t y ] = ode45( @(t,y)lorenz( = 1% difference
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' )
71
Chaos
1% difference – clearly different paths
1% difference
50
40
30
20
10
0
-20
-10
30
-10
20
0
10
0
-10
10
-20
-30
Az: -120 El: -20
20
72
Chaos
>>y0=1e-8*[1.001 0 0 ]; %
0.1% difference
0.1% difference
50
40
30
20
10
0
-20
-10
30
-10
20
0
10
0
-10
10
-20
-30
Az: -120 El: -20
20
73
Chaos
>>y0=1e-8*[1.00001 0 0 ]; %
0.001% difference
0.001% difference
50
40
30
20
10
0
-20
-10
30
-10
20
0
10
0
-10
10
-20
-30
Az: -120 El: -20
20
74
Chaos
>>y0=1e-8*[1.0000001 0 0 ]; %
0.00001% difference
0.00001% difference
50
40
30
20
10
0
-20
-10
30
-10
20
0
10
0
-10
10
-20
-30
Az: -120 El: -20
20
75
Chaos
>>y0=1e-8*[1.0000001 0 0 ]; %
0.00001% difference
y1(t) vs y2(t)
0.00001% difference
30
20
2
y (t)
10
0
-10
-20
-30
-20
-15
-10
-5
0
y 1(t)
5
10
15
20
76
Chaos
>>y0=1e-8*[1.0000001 0 0 ]; %
0.00001% difference
y1(t) vs y3(t)
0.00001% difference
50
40
3
y (t)
30
20
10
0
-10
-20
-15
-10
-5
0
y 1(t)
5
10
15
20
77
Chaos
>>y0=1e-8*[1.0000001 0 0 ]; %
0.00001% difference
y2(t) vs y3(t)
0.00001% difference
50
40
3
y (t)
30
20
10
0
-10
-30
-20
-10
0
y 2(t)
10
20
30
78
Chaos
So even though initial conditions only
differ by 1 / 100,000 of a percent, the
trajectories become very different!
0.00001% difference
50
40
3
y (t)
30
20
10
0
-10
-30
-20
-10
0
y 2(t)
10
20
30
79
Chaos
This extreme sensitivity to initial
conditions is often called
The Butterfly Effect
A butterfly flapping its wings in Brazil can
80
Chaos
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
81
Chaos
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
82
Chaos
Questions?
83
The End
84
```