Transcript File
Numerical Solutions of
Ordinary Differential
Equations
4/8/2015
Dr.G.Suresh Kumar@KL
University
1
Ordinary Differential Equations
Equations which are composed of an unknown function
and its derivatives are called differential equations.
dv
c
g v
dt
m
v - dependent variable
t - independent variable
Differential equations play a fundamental role in
engineering because many physical phenomena are best
formulated mathematically in terms of their rate of
change.
4/8/2015
Dr.G.Suresh Kumar@KL University
2
Types of Differential Equations
• When a function involves one independent
variable, the equation is called an ordinary
differential equation (ODE).
•A partial differential equation (PDE)
involves two or more independent
variables.
4/8/2015
Dr.G.Suresh Kumar@KL University
3
Model Ordinary Differential Equations
4/8/2015
Dr.G.Suresh Kumar@KL University
4
Why Numerical solutions of ODE ?
Many differential equations cannot be
solved analytically, in which case we have
to satisfy ourselves with an approximation
to the solution.
4/8/2015
Dr.G.Suresh Kumar@KL University
5
Initial value problem
Initial value problem associated with first
order differential equations is
dy
f(x,y)
dx
y(x0 ) y 0 .
4/8/2015
Dr.G.Suresh Kumar@KL University
6
Methods of solving IVP
Taylor series
Picard successive approximation
Euler
Modified Euler
Runge-Kutta (RK)
4/8/2015
Dr.G.Suresh Kumar@KL University
7
Taylor Series Method
The Taylor series method is a straight
forward adaptation of classic calculus to
develop the solution as an infinite series.
The method is not strictly a numerical
method but it is used in conjunction with
numerical schemes.
4/8/2015
Dr.G.Suresh Kumar@KL University
8
Taylor Series Method
The Taylor series expansion of y(x) about
x = x0 is
x - x 0 2
yx yx 0 x - x 0 yx 0
yx 0
2!
x - x0
3
3!
x - x0
yx 0
4
4!
4/8/2015
y
(IV)
x 0 ...
Dr.G.Suresh Kumar@KL University
9
Problem#1
The differential equation y'(x) = x + y satisfying
y(0)=1. Determine the Taylor series solution.
Also compare with the exact solution.
{Analytical solution: y(x)=2ex - x -1(Cauchy
linear differential equation).}
4/8/2015
Dr.G.Suresh Kumar@KL University
10
Solution
First, we find derivatives of y' = x + y,
yx x yx
yx 1 yx
yx yx
y
(IV)
y0 x y0 0 1 1
y0 1 y0 1 1 2
y0 y0 2
x yx
y (IV) 0 y0 2.
4/8/2015
Dr.G.Suresh Kumar@KL University
11
Solution
The Taylor series expansion of y(x) about
x = x0 is
x - x 0 2
yx yx 0 x - x 0 yx 0
2!
x - x 0 3
3!
x - x 0 4
yx 0
4!
yx 0
y (IV) x 0 ...
x2
x3
x4
2 2 2 ...
yx 1 x 1
2!
3!
4!
3
4
x
x
1 x x2
...
3
12
4/8/2015
Dr.G.Suresh Kumar@KL University
12
Comparison of solutions
The exact solution is
x 2 x3 x 4
y(x) 21 x
... (x 1)
2!
3!
4!
3
4
x
x
2
1 x x
...
3
24
Therefore, Taylor series solution and exact
solution are equal.
4/8/2015
Dr.G.Suresh Kumar@KL University
13
Picard’s Method
The initial value Problem
dy
f(x,y)
dx
y(x0 ) y 0
is equivalent to the following integral equation
x
y(x) y 0
f(t, y(t))dt .
x0
4/8/2015
Dr.G.Suresh Kumar@KL University
14
Picard’s Method
The Picard’s nth approximate solution is
y n (x) y0
x
f(t,yn 1(t))dt,
n 1, 2, 3, ...
x0
yn (x) y(x)
as
4/8/2015
n .
Dr.G.Suresh Kumar@KL University
15
Problem#1
Using Picard’s process of successive
approximation, obtain a solution up to the
fifth approximation of the equation
dy
xy
dx
such that y = 1 when x = 0. Check your
answer by finding the exact solution.
Ans.
3
4
5
6
x
x
x
x
y5 (x) 1 x x 2
3 12 60 720
Exact solution y(x) = 2ex – (x+1).
4/8/2015
Dr.G.Suresh Kumar@KL University
16
Application Problem
For the free-falling bungee jumper with
linear drag, compute the velocity at 10
seconds of a free-falling parachutist of
mass 80kg and drag coefficient 10 kg/s at
10 seconds, with initial velocity 20 m/s,
using
(i) Taylor series method
(ii) Picard’s method.
4/8/2015
Dr.G.Suresh Kumar@KL University
17
Solution
Let v(t) be the velocity and ‘a’ be the
acceleration of the parachutist at any time t.
Then the total force acting on the parachutist is
equal to the sum of the
downward force FD due to gravity and
upward force FU due to air resistance.
i.e. F = FD + FU
FD = mg
FU α v (linear drag)
FU = - Cd v(t).
4/8/2015
Dr.G.Suresh Kumar@KL University
18
Solution
By Newton second law of motion F = ma.
ma = mg – Cd v
Therefore,
Cd
dv
g
v
dt
m
Given that m = 80kg, Cd = 10 kg/s,
and initial velocity v(0)=20 m/s.
Now solve the above IVP using Taylor and
Picard’s method.
4/8/2015
Dr.G.Suresh Kumar@KL University
19
Euler’s Method
Problem:
Given the first order ODE :
with the initial condition:
Determine:
y ' ( x ) f ( x, y )
y0 y ( x0 )
yi y ( x0 ih)
for i 1,2,...
Euler Method:
y0 y ( x0 )
yi 1 yi h f ( xi , yi )
for i 1,2,...
4/8/2015
Dr.G.Suresh Kumar@KL University
20
Interpretation of Euler Method
y2
y1
y0
x0
x1
x2
4/8/2015
x
Dr.G.Suresh Kumar@KL University
21
Interpretation of Euler Method
y1
Slope=f(x0,y0)
y1=y0+hf(x0,y0)
hf(x0,y0)
y0
x0
h
x1
x2
4/8/2015
x
Dr.G.Suresh Kumar@KL University
22
Interpretation of Euler Method
y2
y2=y1+hf(x1,y1)
Slope=f(x1,y1)
hf(x1,y1)
Slope=f(x0,y0)
y1
y1=y0+hf(x0,y0)
hf(x0,y0)
y0
x0
h
x1
h
x2
4/8/2015
x
Dr.G.Suresh Kumar@KL University
23
Interpretation of Euler Method
dy
f ( x, y )
dx
Solution :
yi 1 yi f ( xi , yi ) h
4/8/2015
Dr.G.Suresh Kumar@KL University
24
Problem#1
Using Euler’s method, find an approximate
value of y corresponding to x=1, given
that yʹ = x + y such that y=1 when x=0.
Ans: Taking h = 0.1, then
y(0.1) = 1.1, y(0.2) = 1.22, y(0.3) = 1.36
y(0.4) = 1.53, y(0.5) = 1.72, y(0.6) = 1.94
y(0.7) = 2.19, y(0.8) = 2.48, y(0.9) = 2.81
y(1.0) = 3.18.
4/8/2015
Dr.G.Suresh Kumar@KL University
25
Problem#2
A cup of a coffee originally has temperature
of 68oC. The temperature of the ambient
is 21oC and the thermal constant is
0.017oC/min. Determine the temperature
of the coffee from t = 0 to 10 minutes
insteps of 2 minutes.
Sol. The differential equation is
Tʹ(t) = -k(T - Ta) = -0.017(T - 21)
T(0) = 68
4/8/2015
Dr.G.Suresh Kumar@KL University
26
Improvements of Euler’s method
A fundamental source of error in Euler’s
method is that the derivative at the
beginning of the interval is assumed to
apply across the entire interval.
Two simple modifications are available to
circumvent this shortcoming:
Heun’s (Modified Euler) Method
Midpoint (Improved Polygon) Method
4/8/2015
Dr.G.Suresh Kumar@KL University
27
Modified Euler’s Method
To improve the estimate of the slope, determine two
derivatives for the interval:
(1) At the initial point
(2) At the end point
The two derivatives are then averaged to obtain
an improved estimate of the slope for the entire
interval.
Predictor:
Corrector :
yi01 yi f ( xi , yi )h
yi 1
f ( xi , yi ) f ( xi 1 , yi01 )
yi
h
2
4/8/2015
Dr.G.Suresh Kumar@KL University
28
Euler Modified method
To improve the estimate of the
slope, determine two derivatives
for the interval:
At the initial point
At the end point
Predictor:
The two derivatives are then
averaged to obtain an improved
estimate of the slope for the entire
interval.
yi01 yi f ( xi , yi )h
f ( xi , yi ) f ( xi 1 , yi01 )
Corrector : yi 1 yi
h
2
29
Heun’s method (improved)
Original Huen’s:
Predictor:
yi01 yi f ( xi , yi )h
Corrector :
f ( xi , yi ) f ( xi 1, yi01 )
1
yi 1 yi
h
2
Note that the corrector can be iterated to
improve the accuracy of yi+1 .
Predictor: y yi f ( xi , yi )h
0
i 1
j 1
f
(
x
,
y
)
f
(
x
,
y
j
i
i
i 1
i 1 )
Corrector : y i1 yi
h
2
j 1,2,...
30
Problem#1
Using Modified Euler’s method, find an
approximate value of y when x= 0.3, given
that yʹ = x + y and y=1 when x=0.
Sol. Compare the IVP with the general IVP
yʹ = f(x, y), y(x0) = x0, we have
f(x, y) = x + y, x0 = 0 and y0 = 1.
Taking the step size h = 0.1, then x0 = 0, x1 =
0.1, x2 = 0.2, x3 = 0.3. Now we find the
corresponding value of y, using modified
Euler’s method.
31
Solution
Step-1. To find y1 = y(x1) = y(0.1)
Predictor formula (Euler’ formula)
y1(0) = y0 + h f(x0, y0)
= 1 + 0.1 f(0, 1) = 1+0.1(0+1) =1.1
Corrector formula
y1(k) = y0 + (h/2) [f(x0, y0) + f(x1, y1(k-1))]
y1(1) = y0 + (h/2) [f(x0, y0) + f(x1, y1(0))]
= 1 + (0.1/2) [f(0,1) + f(0.1, 1.1)]
= 1 + 0.05 [0+1 + 0.1+1.1] =1.11
32
Solution
y1(2) = y0 + (h/2) [f(x0, y0) + f(x1, y1(1))]
= 1 + (0.1/2) [f(0,1) + f(0.1, 1.11)]
= 1 + 0.05 [0+1 + 0.1+1.11]
=1.1105.
y1(3) = y0 + (h/2) [f(x0, y0) + f(x1, y1(2))]
= 1 + (0.1/2) [f(0,1) + f(0.1, 1.1105)]
= 1 + 0.05 [0+1 + 0.1+1.1105]
=1.1105.
Therefore, y1 = 1.1105.
33
Solution
Step-2. To find y2 = y(x2) = y(0.2)
Predictor formula (Euler’ formula)
y2(0) = y1 + h f(x1, y1)
= 1.1105 + 0.1 f(0.1, 1.1105)
= 1.1105+0.1(0.1 + 1.1105) =1.2316.
Corrector formula
y2(k) = y1 + (h/2) [f(x1, y1) + f(x2, y2(k-1))]
y2(1) = y1 + (h/2) [f(x1, y1) + f(x2, y2(0))]
= 1.2316 + (0.1/2) [f(0.1,1.1105) + f(0.2, 1.2316)]
= 1.2316 + 0.05 [0.1+1.1105 + 0.2+1.2316]
34
=1.2426.
Solution
y2(2) = y1 + (h/2) [f(x1, y1) + f(x2, y2(1))]
= 1.1105 + (0.1/2) [f(0.1,1.1105) + f(0.2, 1.2426)]
= 1.1105 + 0.05 [0.1+1.1105 + 0.2+1.2426]
=1.2432.
y2(3) = y1 + (h/2) [f(x1, y1) + f(x2, y2(2))]
= 1.1105 + (0.1/2) [f(0.1,1.1105) + f(0.2, 1.2432)]
= 1.1105 + 0.05 [0.1+1.1105 + 0.2+1.2432]
=1.2432.
Therefore, y2 = y(0.2)= 1.2432.
Similarly, y3 = y(0.3) = 1.4004.
35
Application Problem
A storage tank (Fig.) contains a liquid at
depth y where y = 0 when the tank is half
full. Liquid is withdrawn at a constant flow
rate Q=500m3/h to meet demands. The
contents are resupplied at a sinusoidal
rate 3Q sin2(t). The surface area of the
tank is 1200 m2. Determine the depth of
the tank from t= 0 to t=6 in steps of 2
hours, using modified Euler’s method.
4/8/2015
Dr.G.Suresh Kumar@KL University
36
Problem#1
3Q
Q =500 m3/h
sin2(t)
4/8/2015
Dr.G.Suresh Kumar@KL University
37
Solution
Let y(t) be the depth of the tank at any time t
and A be the surface area of the tank.
The depth of the tank is changed when
volume of the liquid in the tank changed.
Therefore,
Rate of change
inflowrate– out flow rate
in volume
d
Ay(t) 3Q sin 2 (t) Q
dt
4/8/2015
Dr.G.Suresh Kumar@KL University
38
Solution
Since A is constant, it implies that
dy 3Q 2
Q
sin (t)
dt
A
A
Given that Q=500m3/h, A =1200 m2 and y(0) = 0.
Substituting these value, we have
dy 5 2
5
sin (t)
dt 4
12
y(0) 0
Now solving the above initial value problem,
using modified Euler’s method.
4/8/2015
Dr.G.Suresh Kumar@KL University
39
Runge - Kutta Method
4/8/2015
Dr.G.Suresh Kumar@KL University
40
Carl Runge
(1856-1927)
Martin Wilhelm Kutta
(1867-1944)
4/8/2015
Dr.G.Suresh Kumar@KL University
41
Introduction
Runge-Kutta methods are very popular because of
their good efficiency; and are used in most
computer programs for differential equations.
These methods agree with Taylor’s series solution
up to the term in hr, where r differs method to
method and is called the order of the method.
Euler’s and modified Euler’s are called the first
and second order Runge-Kutta methods.
The fourth order R-K method is most commonly
used and is often referred to as R-K method only.
4/8/2015
Dr.G.Suresh Kumar@KL University
42
Working Rule
To find increment ‘k’ of y corresponding to an
increment h of x by R-K method from the initial
value problem
y´ = f(x, y) with y(x0) = y0 is as follows
Calculate
k1 = h f(x0, y0)
k2 = h f(x0+0.5h, y0+0.5k1)
k3 = h f(x0+0.5h, y0+0.5k2)
k4 = h f(x0+h, y0+k3)
4/8/2015
Dr.G.Suresh Kumar@KL University
43
Working Rule
Finally compute
k = 1/6 (k1 + 2k2 + 2k3 + k4)
is the weighted mean of k1, k2, k3 and k4.
Therefore the required approximate value
is
y1 = y(x1) = y(x0 + h) = y0 + k.
4/8/2015
Dr.G.Suresh Kumar@KL University
44
Graphical Representation
k2
k4
k3
k
k1
k
xi
xi + h/2
4/8/2015
1
k1 2k2 2k3 k4
6
xi + h
Dr.G.Suresh Kumar@KL University
45
Problem#1
Using Runge-Kutta method of fourth
order, solve yʹ = (y2 – x2)/(y2 + x2) with
y(0)=1 at x = 0.2, 0.4.
Sol : - Compare the given problem with the
general first order initial value problem
yʹ=f(x, y) satisfying y(x0)=y0, we have
f(x, y) = (y2 – x2)/(y2 + x2)
x0 = 0, y0 =1.
Here we have to find value of y at x=0.2, 0.4.
4/8/2015
Dr.G.Suresh Kumar@KL University
46
Solution
Taking step size h = 0.2.
Step(1) To find y(0.2)
k1 = h f(x0, y0)
= 0.2 f(0, 1) = 0.2 (12-02)/(12+02)
= 0.2
k2 = h f(x0+0.5h, y0+0.5k1)
= 0.2 f(0+0.5(0.2), 1+ 0.5(0.2))
= 0.2 f(0.1, 1.1)
= 0.19672
4/8/2015
Dr.G.Suresh Kumar@KL University
47
Solution
k3 = h f(x0+0.5h, y0+0.5k2)
= 0.2 f(0+0.5(0.2), 1+0.5(0.19672))
= 0.2 f(0.1, 1.09836)
= 0.1967
k4 = h f(x0+h, y0+k3)
= 0.2 f(0+0.2, 1+0.1967)
= 0.2 f(0.2, 1.1967)
= 0.1891
4/8/2015
Dr.G.Suresh Kumar@KL University
48
Solution
k = 1/6 (k1 + 2k2 + 2k3 + k4)
= 1/6 (0.2 +2(0.19672)+2(0.1967)+0.1891)
= 0.19599.
Hence y1 = y0 + k
y(0.2) = 1 + 0.19599 = 1.19599.
Step(2) To find y(0.4)
k1 = h f(x1, y1)
= 0.2 f(0.2, 1.19599)
= 0.1891
4/8/2015
Dr.G.Suresh Kumar@KL University
49
solution
k2 = h f(x1+0.5h, y1+0.5k1)
= 0.2 f(0.2+0.5(0.2), 1.19599+ 0.5(0.1891))
= 0.2 f(0.3, 1.29054)
= 0.1795
k3 = h f(x1+0.5h, y1+0.5k2)
= 0.2 f(0.2+0.5(0.2), 1.19599+0.5(0.1795))
= 0.2 f(0.3, 1.28574)
= 0.1793
4/8/2015
Dr.G.Suresh Kumar@KL University
50
Solution
k4 = h f(x1+h, y1+k3)
= 0.2 f(0.2+0.2, 1.19599+0.1793)
= 0.2 f(0.4, 1.37529)
= 0.1688
k = 1/6 (k1 + 2k2 + 2k3 + k4)
= 1/6 (0.1891 +2(0.1795)+2(0.1793)+0.1688)
= 0.1792.
Hence y2 = y1 + k
y(0.4) = 1.19599 + 0.1792 = 1.37519.
4/8/2015
Dr.G.Suresh Kumar@KL University
51
Problem#2
Apply Runge-Kutta method to find an
approximate value of y for x=0.2 in steps
of 0.1, if yʹ = x + y2 given that y=1 where
x = 0.
Sol : - Compare the given problem with the
general first order initial value problem
yʹ=f(x, y) satisfying y(x0)=y0, we have
f(x, y) = x + y2 , x0 = 0, y0 =1.
Here we have to find value of y at x = 0.2.
4/8/2015
Dr.G.Suresh Kumar@KL University
52
Solution
Taking step size h = 0.1.
Step(1) To find y(0.1)
k1 = h f(x0, y0)
= 0.1 f(0, 1) = 0.1 (0 + 12)
= 0.1
k2 = h f(x0+0.5h, y0+0.5k1)
= 0.1 f(0+0.5(0.1), 1+ 0.5(0.1))
= 0.2 f(0.05, 1.05)
= 0.1152
4/8/2015
Dr.G.Suresh Kumar@KL University
53
Solution
k3 = h f(x0+0.5h, y0+0.5k2)
= 0.1 f(0+0.5(0.1), 1+0.5(0.1152))
= 0.1 f(0.05, 1.0576)
= 0.11685
k4 = h f(x0+h, y0+k3)
= 0.1 f(0+0.1, 1+0.11685)
= 0.1 f(0.1, 1.11685)
= 0.13473
4/8/2015
Dr.G.Suresh Kumar@KL University
54
Solution
k = 1/6 (k1 + 2k2 + 2k3 + k4)
= 1/6 (0.1 +2(0.1152)+2(0.11685)+0.13473)
= 0.11647 ≈ 0.1165.
Hence y1 = y0 + k
y(0.1) = 1 + 0.1165 = 1.1165.
Step(2) To find y(0.2)
k1 = h f(x1, y1)
= 0.1 f(0.1, 1.1165)
= 0.1347
4/8/2015
Dr.G.Suresh Kumar@KL University
55
solution
k2 = h f(x1+0.5h, y1+0.5k1)
= 0.1 f(0.1+0.5(0.1), 1.1165+ 0.5(0.1347))
= 0.2 f(0.15, 1.1838)
= 0.1551
k3 = h f(x1+0.5h, y1+0.5k2)
= 0.1 f(0.1+0.5(0.1), 1.1165+0.5(0.1551))
= 0.1 f(0.15, 1.194)
= 0.1575
4/8/2015
Dr.G.Suresh Kumar@KL University
56
Solution
k4 = h f(x1+h, y1+k3)
= 0.1 f(0.1+0.1, 1.1165+0.1576)
= 0.1 f(0.2, 1.2741)
= 0.1823
k = 1/6 (k1 + 2k2 + 2k3 + k4)
= 1/6 (0.1347 +2(0.1551)+2(0.1576)+0.1823)
= 0.1571.
Hence y2 = y1 + k
y(0.2) = 1.1165 + 0.1571 = 1.2736.
4/8/2015
Dr.G.Suresh Kumar@KL University
57