Introduction
Euler’s Method
Improved Euler’s Method
Math 337 - Elementary Differential Equations
Lecture Notes – Numerical Methods for Differential
Equations
Joseph M. Mahaffy,
hjmahaffy@sdsu.edui
Department of Mathematics and Statistics
Dynamical Systems Group
Computational Sciences Research Center
San Diego State University
San Diego, CA 92182-7720
http://jmahaffy.sdsu.edu
Spring 2022
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (1/39)
Introduction
Euler’s Method
Improved Euler’s Method
Outline
1 Introduction
2 Euler’s Method
Malthusian Growth Example
Euler’s Method - MatLab
Example with f (t, y)
Euler Error Analysis
3 Improved Euler’s Method
Improved Euler’s Method - Algorithm
Example
Improved Euler’s Method Error
Order of Error
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (2/39)
Introduction
Euler’s Method
Improved Euler’s Method
Introduction
Introduction
Most differential equations can not be solved exactly
Use the definition of the derivative to create a difference
equation
Develop numerical methods to solve differential equations
Euler’s Method
Improved Euler’s Method
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (3/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Euler’s Method 1
Initial Value Problem: Consider
dy
= f (t, y) with y(t0 ) = y0
dt
From the definition of the derivative
dy y(t + h) − y(t)
= lim
dt h→0 h
Instead of taking the limit, fix h, so
dy y(t + h) − y(t)
≈
dt h
Substitute into the differential equation and with algebra write
y(t + h) ≈ y(t) + hf (t, y)
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (4/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Euler’s Method 2
Euler’s Method for a fixed h is
y(t + h) = y(t) + hf (t, y)
Geometrically, Euler’s method looks at the slope of the tangent
line
The approximate solution follows the tangent line for a time
step h
Repeat this process at each time step to obtain an
approximation to the solution
The ability of this method to track the solution accurately
depends on the length of the time step, h, and the nature of the
function f (t, y)
This technique is rarely used as it has very bad convergence
properties to the actual solution
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (5/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Euler’s Method 3
Graph of Euler’s Method
Euler’s Method
(t ,y ) (t3,y3) y(t)
2 2
(t ,y ) (t ,y )
(t1,y1) 4 4 n+1 n+1
(tn,yn)
y0
h
t0 t1 t2 t3 t4 tn tn+1
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (6/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Euler’s Method 4
Euler’s Method Formula: Euler’s method is just a discrete
dynamical system for approximating the solution of a continuous
model
Let tn+1 = tn + h
Define yn = y(tn )
The initial condition gives y(t0 ) = y0
Euler’s Method is the discrete dynamical system
yn+1 = yn + h f (tn , yn )
Euler’s Method only needs the initial condition to start and the
right hand side of the differential equation (the slope field),
f (t, y) to obtain the approximate solution
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (7/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Malthusian Growth Example 1
Malthusian Growth Example: Consider the model
dP
= 0.2 P with P (0) = 50
dt
Find the exact solution and approximate the solution with Euler’s
Method for t ∈ [0, 1] with h = 0.1
Solution: The exact solution is
P (t) = 50 e0.2t
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (8/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Malthusian Growth Example 2
Solution (cont): The Formula for Euler’s Method is
Pn+1 = Pn + h 0.2 Pn
The initial condition P (0) = 50 implies that t0 = 0 and P0 = 50
Create a table for the Euler iterates
tn Pn
t0 = 0 P0 = 50
t1 = t0 + h = 0.1 P1 = P0 + 0.1(0.2P0 ) = 50 + 1 = 51
t2 = t1 + h = 0.2 P2 = P1 + 0.1(0.2P1 ) = 51 + 1.02 = 52.02
t3 = t2 + h = 0.3 P3 = P2 + 0.1(0.2P2 ) = 52.02 + 1.0404 = 53.0604
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (9/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Malthusian Growth Example 3
Solution (cont): Iterations are easily continued - Below is table of
the actual solution and the Euler’s method iterates
t Euler Solution Actual Solution
0 50 50
0.1 51 51.01
0.2 52.02 52.041
0.3 53.060 53.092
0.4 54.122 54.164
0.5 55.204 55.259
0.6 56.308 56.375
0.7 57.434 57.514
0.8 58.583 58.676
0.9 59.755 59.861
1.0 60.950 61.070
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (10/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Malthusian Growth Example 4
Graph of Euler’s Method for Malthusian Growth Example
Euler’s Method − P’ = 0.2 P
Euler’s Method
60 Actual Solution
58
56
P(t)
54
52
50
0 0.2 0.4 0.6 0.8 1
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (11/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Malthusian Growth Example 5
Error Analysis and Larger Stepsize
The table and the graph shows that Euler’s method is tracking
the solution fairly well over the interval of the simulation
The error at t = 1 is only -0.2%
However, this is a fairly short period of time and the stepsize is
relatively small
What happens when the stepsize is increased and the interval of
time being considered is larger?
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (12/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Malthusian Growth Example
Graph of Euler’s Method with h = 0.5 and h = 0.25
Euler’s Method - Malthusian Growth
400
350
300
250
P (t)
200
150
100
50
Actual Solution
Euler h = 0.5
Euler h = 0.25
0
0 1 2 3 4 5 6 7 8 9 10
t
There is a -9% error in the numerical solution at t = 10 for h = 0.5,
and a -4.7% error when h = 0.25 Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (13/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Euler’s Method - Algorithm
Algorithm (Euler’s Method)
Consider the initial value problem
dy
= f (t, y), y(t0 ) = y0 .
dt
Let h be a fixed stepsize and define tn = t0 + nh. Also, let y(tn ) = yn .
Euler’s Method for approximating the solution to the IVP satisfies
the difference equation
yn+1 = yn + hf (tn , yn ).
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (14/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Euler’s Method - MatLab
Define a MatLab function for Euler’s method for any function (func)
with stepsize h, t ∈ [t0 , tf ], and y(t0 ) = y0
1 f u n c t i o n [ t , y ] = e u l e r ( func , h , t0 , t f , y0 )
2 % Euler ’ s Method − S t e p s i z e h , time from t 0 t o t f , initial
y i s y0
3
4 % C r e a t e time i n t e r v a l and i n i t i a l i z e y
5 t = [ t0 : h : t f ] ;
6 y ( 1 ) = y0 ;
7
8 % Loop f o r Euler ’ s method
9 f o r i = 1 : l e n g t h ( t )−1
10 y ( i +1) = y ( i ) + h ∗ ( f e v a l ( func , t ( i ) , y ( i ) ) ) ;
11 end
12
13 % C r e a t e column v e c t o r s t and y
14 t = t ’;
15 y = y’;
16
17 end
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (15/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Euler’s Method - Population
dP
Our initial example was dt = 0.2P with P (0) = 50
1 f u n c t i o n z = pop ( t , y )
2 % M a l t h u s i a n growth
3 z = 0.2∗y ;
4 end
Create graph shown above
1 tt = linspace (0 ,10 ,200) ;
2 yy = 50∗ exp ( 0 . 2 ∗ t t ) ; % Actual s o l u t i o n
3 [ t , y ]= e u l e r ( @pop , 0 . 5 , 0 , 1 0 , 5 0 ) ; % Implement E u l e r ’ s method , 0 . 5
4 [ t1 , y1 ]= e u l e r ( @pop , 0 . 2 5 , 0 , 1 0 , 5 0 ) ; % Implement E u l e r ’ s method , 0 . 2 5
5 p l o t ( t t , yy , ’ b− ’ , ’ LineWidth ’ , 1 . 5 ) ; % Actual s o l u t i o n
6 h o l d on % Plots Multiple graphs
7 p l o t ( t , y , ’ r−o ’ , ’ LineWidth ’ , 1 . 5 , ’ M a r k e r S i z e ’ , 7 ) ; % Euler h = 0.5
8 p l o t ( t1 , y1 , ’ k−o ’ , ’ LineWidth ’ , 1 . 5 , ’ M a r k e r S i z e ’ , 7 ) ; % E u l e r h = 0 . 2 5
9 grid % Adds G r i d l i n e s
10 h = l e g e n d ( ’ A c t u a l S o l u t i o n ’ , ’ E u l e r $h = 0 . 5 $ ’ , ’ E u l e r $h = 0 . 2 5 $ ’ , 4 )
;
11 s e t ( h , ’ I n t e r p r e t e r ’ , ’ l a t e x ’ ) % Allow LaTeX i n l e g e n d
12 a x i s ( [ 0 10 0 4 0 0 ] ) ; % D e f i n e s l i m i t s o f graph
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (16/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Euler’s Method with f (t, y) 1
Euler’s Method with f (t, y): Consider the model
dy
=y+t with y(0) = 3
dt
Find the solution to this initial value problem
Rewrite this linear DE and find the integrating factor:
dy
−y =t with µ(t) = e−t
dt
Solving
Z
d −t
e y = te−t or e−t y(t) = te−t dt = −(t + 1)e−t + C
dt
With the initial condition the solution is
y(t) = 4 et − t − 1
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (17/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Euler’s Method with f (t, y) 2
Solution (cont): Euler’s formula with h = 0.25 is
yn+1 = yn + 0.25(yn + tn )
tn Euler solution yn
t0 = 0 y0 = 3
t1 = 0.25 y1 = y0 + h(y0 + t0 ) = 3 + 0.25(3 + 0) = 3.75
t2 = 0.5 y2 = y1 + h(y1 + t1 ) = 3.75 + 0.25(3.75 + 0.25) = 4.75
t3 = 0.75 y3 = y2 + h(y2 + t2 ) = 4.75 + 0.25(4.75 + 0.5) = 6.0624
t4 = 1 y4 = y3 + h(y3 + t3 ) = 6.0624 + 0.25(6.0624 + 0.75) = 7.7656
Actual solution is y(1) = 8.8731, so the Euler solution has a -12.5%
error
If h = 0.1, after 10 steps y(1) ≈ y10 = 8.3750 with -5.6% error
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (18/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Euler’s Method with f (t, y) 3
Solution (cont): Euler’s formula with different h is
yn+1 = yn + h(yn + tn )
tn h = 0.2 h = 0.1 h = 0.05 h = 0.025 Actual
0.2 3.6 3.64 3.662 3.6736 3.6856
0.4 4.36 4.4564 4.5098 4.538 4.5673
0.6 5.312 5.4862 5.5834 5.6349 5.6885
0.8 6.4944 6.7744 6.9315 7.015 7.1022
1 7.9533 8.375 8.6132 8.7403 8.8731
2 21.7669 23.91 25.16 25.8383 26.5562
% Err −18.0 −9.96 −5.26 −2.70
We see the percent error at t = 2 (compared to the actual solution)
declining by about 12 as h is halved
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (19/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Euler Error Analysis
Consider the solution of the IVP y 0 = f (t, y), y(t0 ) = y0
denoted φ(t)
Euler’s formula, yn+1 = yn + hf (tn , yn ), approximates
yn ≈ φ(tn )
Expect the error to decrease as h decreases
How small does h have to be to reach a certain tolerance?
Errors
Local truncation error, en , is the amount of error at
each step
Global truncation error, En , is the amount of error
between the algorithm and φ(t)
Round-off error, Rn , is the error due to the fact that
computers hold finite digits
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (20/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Local Truncation Error 1
Assume that φ(t) solves the IVP, so
φ0 (t) = f (t, φ(t))
Use Taylor’s theorem with a remainder, then
φ(tn + h) = φ(tn ) + φ0 (tn )h + 21 φ00 (t̄n )h2 ,
where t̄n ∈ (tn , tn + h)
From φ being a solution of the IVP
φ(tn+1 ) = φ(tn ) + hf (tn , φ(tn )) + 21 φ00 (t̄n )h2 ,
If yn = φ(tn ) is the correct solution, then the Euler approximate
solution at tn+1 is
∗
yn+1 = φ(tn ) + hf (tn , φ(tn )) ,
so the local truncation error satisfies
∗
en+1 = φ(tn+1 ) − yn+1 = 12 φ00 (t̄n )h2
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (21/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Local Truncation Error 2
Since the local truncation error satisfies
en+1 = 21 φ00 (t̄n )h2 ,
then if there is a uniform bound M = maxt∈[a,b] |φ00 (t)|, the local
error is bounded with
M h2
|en | ≤
2
Thus, Euler’s Method is said to have a local truncation error of
order h2 often denoted O(h2 )
This result allows the choice of a stepsize to keep the numerical
solution within a certain tolerance, say ε, or
M h2 p
≤ε or h≤ 2ε/M
2
Often difficult to estimate either |φ00 (t)| or M
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (22/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Global Truncation
Other Errors
The local truncation error satisfies |en | ≤ M h2 /2
This error is most significant for adaptive numerical
routines where code is created to maintain a certain
tolerance
Global Truncation Error
The more important error for the numerical routines is this
error over the entire simulation
Euler’s method can be shown to have a global
truncation error,
|En | ≤ Kh
Note error is one order less than local error, which scales
proportionally with the stepsize or |En | ≤ O(h)
HW problem using Taylor’s series and Math induction to
prove this result
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (23/39)
Malthusian Growth Example
Introduction
Euler’s Method - MatLab
Euler’s Method
Example with f (t, y)
Improved Euler’s Method
Euler Error Analysis
Global Truncation and Round-Off Error
Other Errors - continued
Round-Off Error, Rn
This error results from the finite digits in the computer
All numbers in a computer are truncated
This is beyond the scope of this course
Total Computed Error
The total error combines the machine error and the error of
the algorithm employed
It follows that
|φ(tn ) − Yn | ≤ |En | + |Rn |
The machine error cannot be controlled, but choosing a
higher order method allows improving the global
truncation error
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (24/39)
Improved Euler’s Method - Algorithm
Introduction
Example
Euler’s Method
Improved Euler’s Method Error
Improved Euler’s Method
Order of Error
Numerical solutions of DEs
Numerical solutions of differential equations
Euler’s Method is simple and intuitive, but lacks accuracy
Numerical methods are available through standard software
MatLab’s ode23
Maple’s dsolve with numeric option
Many types of numerical methods - different accuracies and
stability
Easiest are single stepsize Runge-Kutta methods
Software above uses adaptive stepsize Runge-Kutta
methods
Many other techniques shown in Math 542
Improved Euler’s method (or Heun formula) is a simple
extension of Euler’s method - However, significantly better
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (25/39)
Improved Euler’s Method - Algorithm
Introduction
Example
Euler’s Method
Improved Euler’s Method Error
Improved Euler’s Method
Order of Error
Improved Euler’s Method - Algorithm
Algorithm (Improved Euler’s Method (or Heun Formula))
Consider the initial value problem
dy
= f (t, y), y(t0 ) = y0 .
dt
Let h be a fixed stepsize. Define tn = t0 + nh and the approximate
solution y(tn ) = yn .
1 Approximate y by Euler’s Method
yen = yn + hf (tn , yn )
2 Improved Euler’s Method is the difference formula
h
yn+1 = yn + (f (tn , yn ) + f (tn + h, yen ))
2
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (26/39)
Improved Euler’s Method - Algorithm
Introduction
Example
Euler’s Method
Improved Euler’s Method Error
Improved Euler’s Method
Order of Error
Improved Euler’s Method
Improved Euler’s Method Formula: This technique is an easy
extension of Euler’s Method
The Improved Euler’s method uses an average of the Euler’s
method and an Euler’s method approximation to the function
This technique requires two function evaluations, instead of one
Simple two step algorithm for implementation
Can show this converges as O(h2 ), which is significantly better
than Euler’s method
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (27/39)
Improved Euler’s Method - Algorithm
Introduction
Example
Euler’s Method
Improved Euler’s Method Error
Improved Euler’s Method
Order of Error
Improved Euler’s Method - MatLab
Define a MatLab function for the Improved Euler’s method for any
function (func) with stepsize h, t ∈ [t0 , tf ], and y(t0 ) = y0
1 f u n c t i o n [ t , y ] = i m e u l e r ( func , h , t0 , t f , y0 )
2 % Improved Euler ’ s Method − S t e p s i z e h , time from t 0 t o t f ,
i n i t i a l y i s y0
3 % C r e a t e time i n t e r v a l and i n i t i a l i z e y
4 t = [ t0 : h : t f ] ;
5 y ( 1 ) = y0 ;
6 % Loop f o r Improved Eule r ’ s method
7 f o r i = 1 : l e n g t h ( t )−1
8 ye = y ( i ) + h ∗ ( f e v a l ( func , t ( i ) , y ( i ) ) ) ; % Euler ’ s s t e p
9 y ( i +1) = y ( i ) + ( h / 2 ) ∗ ( f e v a l ( func , t ( i ) , y ( i ) ) + f e v a l (
func , t ( i +1) , ye ) ) ;
10 end
11 % C r e a t e column v e c t o r s t and y
12 t = t ’;
13 y = y’;
14 end
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (28/39)
Improved Euler’s Method - Algorithm
Introduction
Example
Euler’s Method
Improved Euler’s Method Error
Improved Euler’s Method
Order of Error
Example: Improved Euler’s Method 1
Example: Improved Euler’s Method: Consider the initial value
problem:
dy
=y+t with y(0) = 3
dt
The solution to this differential equation is
y(t) = 4 et − t − 1
Numerically solve this using Euler’s Method and Improved
Euler’s Method using h = 0.1
Compare these numerical solutions
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (29/39)
Improved Euler’s Method - Algorithm
Introduction
Example
Euler’s Method
Improved Euler’s Method Error
Improved Euler’s Method
Order of Error
Example: Improved Euler’s Method 2
Solution: Let y0 = 3, the Euler’s formula is
yn+1 = yn + h(yn + tn ) = yn + 0.1(yn + tn )
The Improved Euler’s formula is
yen = yn + h(yn + tn ) = yn + 0.1(yn + tn )
with
h
yn+1 = yn + 2 ((yn + tn ) + (yen + tn + h))
yn+1 = yn + 0.05 (yn + yen + 2 tn + 0.1)
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (30/39)
Improved Euler’s Method - Algorithm
Introduction
Example
Euler’s Method
Improved Euler’s Method Error
Improved Euler’s Method
Order of Error
Example: Improved Euler’s Method 3
Solution: Below is a table of the numerical computations
t Euler’s Method Improved Euler Actual
0 y0 = 3 y0 = 3 y(0) = 3
0.1 y1 = 3.3 y1 = 3.32 y(0.1) = 3.3207
0.2 y2 = 3.64 y2 = 3.6841 y(0.2) = 3.6856
0.3 y3 = 4.024 y3 = 4.0969 y(0.3) = 4.0994
0.4 y4 = 4.4564 y4 = 4.5636 y(0.4) = 4.5673
0.5 y5 = 4.9420 y5 = 5.0898 y(0.5) = 5.0949
0.6 y6 = 5.4862 y6 = 5.6817 y(0.6) = 5.6885
0.7 y7 = 6.0949 y7 = 6.3463 y(0.7) = 6.3550
0.8 y8 = 6.7744 y8 = 7.0912 y(0.8) = 7.1022
0.9 y9 = 7.5318 y9 = 7.9247 y(0.9) = 7.9384
1 y10 = 8.3750 y10 = 8.8563 y(1) = 8.8731
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (31/39)
Improved Euler’s Method - Algorithm
Introduction
Example
Euler’s Method
Improved Euler’s Method Error
Improved Euler’s Method
Order of Error
Example: Improved Euler’s Method 4
Graph of Solution: Actual, Euler’s and Improved Euler’s
dy/dt = y + t
30
25
20
y(t)
15
10
Actual Solution
Euler Solution
Improved Euler
0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
t
The Improved Euler’s solution is very close to the actual solution
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (32/39)
Improved Euler’s Method - Algorithm
Introduction
Example
Euler’s Method
Improved Euler’s Method Error
Improved Euler’s Method
Order of Error
Example: Improved Euler’s Method 5
Solution: Comparison of the numerical simulations
It is very clear that the Improved Euler’s method does a
substantially better job of tracking the actual solution
The Improved Euler’s method requires only one additional
function, f (t, y), evaluation for this improved accuracy
At t = 1, the Euler’s method has a −5.6% error from the actual
solution
At t = 1, the Improved Euler’s method has a −0.19% error from
the actual solution
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (33/39)
Improved Euler’s Method - Algorithm
Introduction
Example
Euler’s Method
Improved Euler’s Method Error
Improved Euler’s Method
Order of Error
Improved Euler’s Method Error
Improved Euler’s Method Error
Showed earlier that Euler’s method had a local truncation
error of O(h2 ) with global error being O(h)
Similar Taylor expansions (in two variables) give the local
truncation error for the Improved Euler’s method as O(h3 )
For Improved Euler’s method, the global truncation error
is O(h2 )
From a practical perspective, these results imply:
With Euler’s method, the reduction of the stepsize by a
factor of 0.1 gains one digit of accuracy
With Improved Euler’s method, the reduction of the
stepsize by a factor of 0.1 gains two digits of accuracy
This is a significant improvement at only the cost of one
additional function evaluation per step
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (34/39)
Improved Euler’s Method - Algorithm
Introduction
Example
Euler’s Method
Improved Euler’s Method Error
Improved Euler’s Method
Order of Error
Numerical Example 1
Numerical Example: Consider the IVP
dy
= 2e−0.1t − sin(y), y(0) = 3,
dt
which has no exact solution, so must solve numerically
Solve this problem with Euler’s method and Improved
Euler’s method
Show differences with different stepsizes for t ∈ [0, 5]
Show the order of convergence by halving the stepsize twice
Graph the solution and compare to solution from ode23 in
MatLab, closely approximating the exact solution
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (35/39)
Improved Euler’s Method - Algorithm
Introduction
Example
Euler’s Method
Improved Euler’s Method Error
Improved Euler’s Method
Order of Error
Numerical Example 2
dy
Numerical Solution for dt = 2e−0.1t − sin(y), y(0) = 3
Used MatLab’s ode45 to obtain an accurate numerical solution to
compare Euler’s method and Improved Euler’s method with
stepsizes h = 0.2, h = 0.1, and h = 0.05
“Actual” Euler Im Eul Euler Im Eul Euler Im Eul
tn h = 0.2 h = 0.2 h = 0.1 h = 0.1 h = 0.05 h = 0.05
0 3 3 3 3 3 3 3
1 5.5415 5.4455 5.5206 5.4981 5.5361 5.5209 5.5401
2 7.1032 7.1718 7.0881 7.1368 7.0995 7.1199 7.1023
3 7.753 7.836 7.743 7.7939 7.7505 7.7734 7.7524
4 8.1774 8.2818 8.167 8.2288 8.1748 8.2029 8.1768
5 8.5941 8.7558 8.5774 8.6737 8.5899 8.6336 8.5931
1.88% −0.194% 0.926% −0.0489% 0.460% −0.0116%
Last row shows percent error between the different approximations
and the accurate solution
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (36/39)
Improved Euler’s Method - Algorithm
Introduction
Example
Euler’s Method
Improved Euler’s Method Error
Improved Euler’s Method
Order of Error
Numerical Example 3
Error of Numerical Solutions
Observe that the Improved Euler’s method with stepsize
h = 0.2 is more accurate at t = 5 than Euler’s method with
stepsize h = 0.05
With Euler’s method the error cuts in half with halving of the
stepsize
With the Improved Euler’s method the errors cuts in quarter
with halving of the stepsize
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (37/39)
Improved Euler’s Method - Algorithm
Introduction
Example
Euler’s Method
Improved Euler’s Method Error
Improved Euler’s Method
Order of Error
Numerical Example 4
Graph of Solution: Actual, Euler’s and Improved Euler’s methods
with h = 0.2
dy/dt = y + t
30
25
20
y(t)
15
10
Actual Solution
Euler Solution
Improved Euler
0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
t
The Improved Euler’s solution is veryLecture
close to the actual solution
Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (38/39)
Improved Euler’s Method - Algorithm
Introduction
Example
Euler’s Method
Improved Euler’s Method Error
Improved Euler’s Method
Order of Error
Order of Error
Error of Numerical Solutions
Order of Error without good “Actual solution”
Simulate system with stepsizes h, h/2, and h/4 and define
these simulates as yn1 , yn2 , and yn3 , respectively
Compute the ratio (from Cauchy sequence)
|yn3 − yn2 |
R=
|yn2 − yn1 |
If the numerical method is order m, then this ratio is
approximately 21m
Above example at t = 5 has R = 0.488 for Euler’s method
and R = 0.256 for Improved Euler’s method
Allows user to determine how much error numerical routine
is generating
Lecture Notes – Numerical Methods for Differe
Joseph M. Mahaffy, hjmahaffy@sdsu.edui — (39/39)