Lecture on Numerical Analysis
Dr.-Ing. Michael Dumbser
17 / 12 / 2007
M. Dumbser
Ordinary Differential Equations
) ), ( ( y t t dt f
dy
An equation of the form
is called a nonlinear ordinary differential equation (ODE) of first order. The simplest first order ODE is the equation
dt ay dy
The exact solution of this simple ODE is obtained as follows:
y adt dy
) (t y y
with
t
t y
y
y adt dy
0 0
ln y
yy0 at
tt0
0
ln
0ln y y a t t
0
0
ln a t t y
y y ( t ) y
0e
a
tt0
Ordinary Differential Equations
A simple nonlinear ordinary differential equation (ODE) of first order is given by
ay
2dy dt
The exact solution of this simple nonlinear ODE can be computed in a similar way:
y adt dy
2) (t y y
with
t
t y
y
y adt dy
0 0
2 y
tty
y at
00
1
0
0
1
1 a t t
y
y
0
10
) 1 (
a t t
t y
y
M. Dumbser
Numerical Methods for the Integration of ODE
The simplest numerical method for the integration of first order ODEs is the
so-called explicit (forward) Euler method, invented already in the 18th century by the mathematician Leonhard Euler. It corresponds to the use of a first order accurate
finite difference scheme to approximate the derivative on the left hand side of the ODE and to compute the operator on the right hand side at the current state yn and time tn:
) , ( t y dt f
dy
) , (
1 n n n
n
t y t f
y
y
) ,
1 n
(
n nn
y t f y t
y
Computing the function f on the right hand side at the unknown time tn+1, we obtain the so-called implicit (backward) Euler method:
) ,
(
1 11
n
n nn
y t f y t
y
t t
t
n1
n
Numerical Methods for the Integration of ODE
A simple modification of the forward Euler scheme, which yields a second order accurate method, is based on the following approach: Integrate the ODE from time level tn to time level tn+1:
) ,
(
21 211
n
n nn
y t f y t
y
Unfortunately, the value of y is not known at tn+1/2, but we can approximate it making a half time-step of the forward Euler scheme. This means, that first, a so-called predictor is computed at the half time-step t/2:
) , 2 (
21 n n n
n
t f y t
y
y
1 1
) , (
n
n n
n
t
t t
t
dt t y dt f
dy
1
) ,
1
(
n
n
t
t n
n
y f y t dt
y
The integral on the right hand side is now evaluated using a one-point Gaussian quadrature formula (the midpoint is the integration point):
) ,
(
21 211
n
n nn
y t f y t
y
The corrector is then:
M. Dumbser
Numerical Methods for the Integration of ODE
One of the most famous and mostly commonly used schemes for ODE integration is the explicit fourth-order scheme of Runge and Kutta:
1 2 3 4
1
2 2
6 t k k k k
y
y
n
n )
,
1
(
n n
t y f k
) ,
(
2 1 22
f y
n tk t
n tk
) ,
(
2 2 23
f y
n tk t
n tk
) ,
(
34
f y tk t t
k
n
n
Exercise 1
Write a MATLAB script ODECompare.m that integrates the following two ODE:
(1) Use the explicit (forward) Euler method, using different time steps and compare with the exact solutions.
(2) Use the modified second order Euler method (=second order Runge-Kutta scheme) with different time steps, and compare with the exact solutions.
(3) Use the fourth order Runge-Kutta scheme with various time steps. Compare with the exact solutions.
dt y
dy y
2dt
dy y ( 0 ) 1 t [ 0 ; 10 ]
M. Dumbser
Exercise 2
Wite a MATLAB script Springs.m that integrates the linear ODE system for position and velocity for a system of N point masses, connected by springs as follows:
m1 mi-1 mi mi+1 mN
The ODE system for the positions of the point masses is simply:
i
v
idx dt
The forces acting on point mass i are
i i i
ii
x x L k
F
1
1 1
1
i
i
i ii
x x L k
F
Where ki are the spring stiffnesses and Li are the lengths of the springs in their undeformed state. The ODE system for the velocities of the point masses is then
i ii
i
F F
m dt
dv 1
1
0 F
0
F
NUse the second order Runge-Kutta scheme (modified Euler method).
Exercise 3
Wite a MATLAB script Orbit.m that integrates the linear ODE system for position and velocity for a planet, turning around a star.
The ODE system for the position vector of the planet is:
dt v x
d
The gravitation force of the star, acting on the planet, is given by:
2 P S
P S P
S
P G S
x x
m m x
x
x
F x
The ODE system for the velocity vector of the planet is
G P
P