Euler’s Method
2016+week5-6
2016+week5-6
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Euler’s</strong> <strong>Method</strong><br />
dy<br />
dx<br />
=<br />
f<br />
( x, y) , y( 0) = y0<br />
y<br />
Slope<br />
=<br />
=<br />
Rise<br />
Run<br />
y<br />
x<br />
1<br />
1<br />
−<br />
−<br />
y<br />
x<br />
0<br />
0<br />
= f ( x 0 , y 0 )<br />
( )( )<br />
x 0<br />
,y 0<br />
Step size, h<br />
Φ<br />
True value<br />
y 1<br />
,<br />
Predicted<br />
value<br />
y<br />
1 = y0<br />
+ f x0, y0<br />
x1<br />
− x0<br />
x<br />
=<br />
f ( x y )h<br />
y0 +<br />
0,<br />
0<br />
Figure 1 Graphical interpretation of the first step of <strong>Euler’s</strong> method<br />
1
<strong>Euler’s</strong> <strong>Method</strong><br />
y<br />
yi + 1<br />
= yi<br />
+ f ( xi,<br />
yi<br />
)h<br />
True Value<br />
h<br />
= +1<br />
x i<br />
− x i<br />
y i+1 , Predicted value<br />
y i<br />
Φ<br />
h<br />
Step size<br />
x i x i+1<br />
x<br />
Figure 2 General graphical interpretation of <strong>Euler’s</strong> method<br />
2
<strong>Euler’s</strong> <strong>Method</strong><br />
Write the first order differential equation in the form of<br />
dy<br />
dx<br />
dy<br />
dx<br />
dy<br />
dx<br />
=<br />
Example<br />
−x<br />
( 0) 5<br />
+ 2 y = 1.3e<br />
, y =<br />
is rewritten as<br />
−x<br />
f<br />
( x,<br />
y)<br />
yi + 1<br />
= yi<br />
+ f ( xi,<br />
yi<br />
)h<br />
( 0) 5<br />
= 1 .3e<br />
− 2y,<br />
y =<br />
In this case<br />
f<br />
−x<br />
( x, y) = 1.3e<br />
− 2y<br />
3
Example<br />
A ball at 1200K is allowed to cool down in air at an ambient temperature<br />
of 300K. Assuming heat is lost only due to radiation, the differential<br />
equation for the temperature of the ball is given by<br />
dθ<br />
= −2.2067<br />
× 10<br />
dt<br />
−12<br />
4<br />
8<br />
( θ − 81×<br />
10 ),<br />
θ ( 0) = 1200 K<br />
Find the temperature at t = 480<br />
seconds using <strong>Euler’s</strong> method. Assume a step size of<br />
h<br />
= 240<br />
seconds.<br />
4
Solution<br />
Step 1:<br />
dθ<br />
−12<br />
4<br />
8<br />
= −2 .2067 × 10 ( θ − 81×<br />
10 )<br />
dt<br />
−12<br />
4<br />
8<br />
f ( t, θ) = −2.2067<br />
× 10 ( θ − 81×<br />
10 )<br />
θi+<br />
1<br />
= θi<br />
+ f ( ti,<br />
θi<br />
) h<br />
θ1<br />
= θ0<br />
+ f ( t0,<br />
θ0<br />
) h<br />
= 1200 + f ( 0,1200 ) 240<br />
−12<br />
4<br />
8<br />
= 1200 + ( − 2.2067 × 10 ( 1200 − 81×<br />
10<br />
) 240<br />
= 1200 + ( − 4.5579)<br />
240<br />
= 106.09K<br />
θ is the approximate temperature at t = t1 = t0<br />
+ h = 0 + 240 = 240<br />
1<br />
θ 240 ≈ θ =106.09<br />
1<br />
( ) K<br />
5
Solution Cont<br />
Step 2:<br />
For i = , t = 240, θ 106. 09<br />
θ = θ + f<br />
2<br />
1<br />
= 106.09<br />
1<br />
1 1<br />
=<br />
= 106.09 +<br />
= 106.09 +<br />
= 110.32K<br />
( t1,<br />
θ1)<br />
h<br />
+ f ( 240,106.09 )<br />
−12<br />
4<br />
8<br />
( − 2.2067 × 10 ( 106.09 − 81×<br />
10<br />
)<br />
( 0.017595 )<br />
240<br />
240<br />
240<br />
θ is the approximate temperature at t = t2 = t1<br />
+ h = 240 + 240 = 480<br />
2<br />
θ<br />
( 480) ≈θ2 =110.32K<br />
6
Solution Cont<br />
The exact solution of the ordinary differential equation is given by the<br />
solution of a non-linear equation as<br />
θ −<br />
0.92593ln<br />
θ +<br />
300<br />
300<br />
−1.8519 tan<br />
−1<br />
−3<br />
( 0.00333θ<br />
) = −0.22067×<br />
10 t − 2. 9282<br />
The solution to this nonlinear equation at t=480 seconds is<br />
θ ( 480) =<br />
647.57K<br />
7
Comparison of Exact and Numerical<br />
Solutions<br />
1400<br />
Temperature, θ(K)<br />
1200<br />
1000<br />
800<br />
600<br />
400<br />
200<br />
0<br />
Exact Solution<br />
h=240<br />
0 100 200 300 400 500<br />
Time, t(sec)<br />
Figure 3. Comparing exact and <strong>Euler’s</strong> method<br />
8
Effect of step size<br />
Table 1. Temperature at 480 seconds as a function of step size, h<br />
Step, h θ(480) E t |є t |%<br />
480<br />
240<br />
120<br />
60<br />
30<br />
−987.81<br />
110.32<br />
546.77<br />
614.97<br />
632.77<br />
1635.4<br />
537.26<br />
100.80<br />
32.607<br />
14.806<br />
252.54<br />
82.964<br />
15.566<br />
5.0352<br />
2.2864<br />
θ ( 480) =<br />
647.57K<br />
(exact)<br />
9
Comparison with exact results<br />
1500<br />
θ(K)<br />
Temperature,<br />
1000<br />
500<br />
0<br />
-500<br />
-1000<br />
Exact solution<br />
h=120<br />
h=240<br />
0 100 200 300 400 500<br />
Time, t (sec) h=480<br />
-1500<br />
Figure 4. Comparison of <strong>Euler’s</strong> method with exact solution for different step sizes<br />
10
Effects of step size on <strong>Euler’s</strong> <strong>Method</strong><br />
800<br />
Temperature,θ(K)<br />
400<br />
0<br />
-400<br />
-800<br />
0 100 200 300 400 500<br />
Step size, h (s)<br />
-1200<br />
Figure 5. Effect of step size in <strong>Euler’s</strong> method.<br />
11
Errors in <strong>Euler’s</strong> <strong>Method</strong><br />
It can be seen that <strong>Euler’s</strong> method has large errors. This can be illustrated using<br />
Taylor series.<br />
2<br />
3<br />
dy<br />
1 d y<br />
2 1 d y<br />
3<br />
yi+ 1<br />
= yi<br />
+ ( xi+<br />
1<br />
− xi<br />
) + ( x<br />
1<br />
− ) + (<br />
1<br />
− ) + ...<br />
2 i+<br />
xi<br />
x<br />
3 i+<br />
xi<br />
dx<br />
2! dx<br />
3! dx<br />
y<br />
x , y<br />
i<br />
i<br />
x , y<br />
i<br />
i<br />
1<br />
1<br />
1<br />
= yi<br />
+ f ( xi<br />
, yi<br />
)<br />
i+<br />
1 i<br />
i i i+<br />
1 i<br />
i i i+<br />
1<br />
+<br />
2!<br />
3!<br />
2<br />
3<br />
( x − x ) + f ' ( x , y )( x − x ) + f ' ' ( x , y )( x − x ) ...<br />
i+ i<br />
As you can see the first two terms of the Taylor series<br />
x , y<br />
i<br />
i<br />
yi + 1 = yi<br />
+ f ( xi<br />
, yi<br />
)h<br />
are the <strong>Euler’s</strong> method.<br />
The true error in the approximation is given by<br />
E<br />
t<br />
( x y ) f ′′( x , y )<br />
f ′<br />
i i 2 i i<br />
= h + h<br />
2!<br />
3!<br />
, 3<br />
+ ...<br />
12
13<br />
Euler <strong>Method</strong><br />
)<br />
Truncation Error<br />
Global<br />
)<br />
Local Truncation Error<br />
1,2,...<br />
)<br />
,<br />
(<br />
)<br />
(<br />
)<br />
(<br />
)<br />
,<br />
(<br />
)<br />
(<br />
Euler <strong>Method</strong><br />
Problem<br />
2<br />
1<br />
0<br />
0<br />
0<br />
0<br />
O(h<br />
O(h<br />
i<br />
for<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
y<br />
x<br />
y<br />
x<br />
y<br />
y<br />
y<br />
x<br />
f<br />
x<br />
y<br />
i<br />
i<br />
i<br />
i<br />
=<br />
+<br />
=<br />
=<br />
=<br />
=<br />
+<br />
&
Introduction<br />
Problem<br />
y &(<br />
x)<br />
= f ( x,<br />
y),<br />
y(<br />
x0)<br />
=<br />
<br />
<br />
<br />
to<br />
be<br />
The methods have the general<br />
form:<br />
yi +1<br />
= yi<br />
+<br />
solved<br />
h φ<br />
is<br />
For the case of Euler:<br />
first order ODE :<br />
φ =<br />
( x , y i i<br />
Different forms of φ will be used for<br />
the Midpoint and Heun’s <strong>Method</strong>s.<br />
a<br />
y<br />
0<br />
f<br />
)<br />
14
15<br />
Midpoint <strong>Method</strong><br />
)<br />
Truncation Error<br />
Global<br />
)<br />
Truncation Error<br />
Local<br />
)<br />
,<br />
(<br />
)<br />
,<br />
(<br />
2<br />
)<br />
(<br />
)<br />
(<br />
)<br />
,<br />
(<br />
)<br />
(<br />
Midpoint <strong>Method</strong><br />
Problem<br />
2<br />
3<br />
2<br />
1<br />
2<br />
1<br />
1<br />
2<br />
1<br />
0<br />
0<br />
0<br />
0<br />
O(h<br />
O(h<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
y<br />
x<br />
y<br />
x<br />
y<br />
y<br />
y<br />
x<br />
f<br />
x<br />
y<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
+<br />
+<br />
+<br />
+<br />
+<br />
=<br />
+<br />
=<br />
=<br />
=<br />
=<br />
&
Motivation<br />
The midpoint can be summarized as:<br />
Euler method is used to estimate the solution<br />
at the midpoint.<br />
The value of the rate function f(x,y) at the mid<br />
point is calculated.<br />
This value is used to estimate y i+1 .<br />
Local Truncation error of order O(h 3 ).<br />
Comparable to Second order Taylor series<br />
method.<br />
16
Midpoint <strong>Method</strong><br />
( x i<br />
, yi<br />
)<br />
x<br />
x<br />
0 1<br />
i+<br />
1<br />
i+<br />
2<br />
x<br />
y<br />
1<br />
i+<br />
2<br />
=<br />
y<br />
i<br />
+<br />
h<br />
f ( x<br />
,<br />
y<br />
),<br />
y<br />
i i<br />
i+<br />
1 i<br />
1 1<br />
2 i+<br />
i+<br />
2 2<br />
=<br />
y<br />
+<br />
h<br />
f ( x<br />
,<br />
y<br />
)<br />
17
Midpoint <strong>Method</strong><br />
slope =<br />
f<br />
( x i<br />
, yi<br />
)<br />
( x i<br />
, yi<br />
)<br />
x<br />
x<br />
0 1<br />
i+<br />
1<br />
i+<br />
2<br />
x<br />
y<br />
1<br />
i+<br />
2<br />
=<br />
y<br />
i<br />
+<br />
h<br />
f ( x<br />
,<br />
y<br />
),<br />
y<br />
i i<br />
i+<br />
1 i<br />
1 1<br />
2 i+<br />
i+<br />
2 2<br />
=<br />
y<br />
+<br />
h<br />
f ( x<br />
,<br />
y<br />
)<br />
18
Midpoint <strong>Method</strong><br />
slope =<br />
f<br />
( x i<br />
, yi<br />
)<br />
( x<br />
,<br />
y<br />
1 1<br />
i+ i+<br />
2 2<br />
)<br />
( x i<br />
, yi<br />
)<br />
x<br />
x<br />
0 1<br />
i+<br />
1<br />
i+<br />
2<br />
x<br />
y<br />
1<br />
i+<br />
2<br />
=<br />
y<br />
i<br />
+<br />
h<br />
f ( x<br />
,<br />
y<br />
),<br />
y<br />
i i<br />
i+<br />
1 i<br />
1 1<br />
2 i+<br />
i+<br />
2 2<br />
=<br />
y<br />
+<br />
h<br />
f ( x<br />
,<br />
y<br />
)<br />
19
20<br />
Midpoint <strong>Method</strong><br />
1<br />
2<br />
1<br />
0 +<br />
+<br />
i<br />
i<br />
x<br />
x<br />
x<br />
)<br />
,<br />
(<br />
2<br />
1<br />
2<br />
1<br />
+<br />
+<br />
=<br />
i<br />
i<br />
y<br />
x<br />
f<br />
slope<br />
)<br />
,<br />
( i<br />
x i y<br />
)<br />
,<br />
(<br />
),<br />
,<br />
(<br />
2 2<br />
1<br />
2<br />
1<br />
1<br />
2<br />
1<br />
+<br />
+<br />
+<br />
+<br />
+<br />
=<br />
+<br />
=<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
)<br />
,<br />
(<br />
2<br />
1<br />
2<br />
1<br />
i+ i+<br />
y<br />
x
21<br />
Midpoint <strong>Method</strong><br />
1<br />
2<br />
1<br />
0 +<br />
+<br />
i<br />
i<br />
x<br />
x<br />
x<br />
)<br />
,<br />
(<br />
2<br />
1<br />
2<br />
1<br />
+<br />
+<br />
=<br />
i<br />
i<br />
y<br />
x<br />
f<br />
slope<br />
)<br />
,<br />
( i<br />
x i y<br />
)<br />
,<br />
(<br />
),<br />
,<br />
(<br />
2 2<br />
1<br />
2<br />
1<br />
1<br />
2<br />
1<br />
+<br />
+<br />
+<br />
+<br />
+<br />
=<br />
+<br />
=<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
)<br />
,<br />
(<br />
2<br />
1<br />
2<br />
1<br />
i+ i+<br />
y<br />
x
Example 1<br />
Use the Midpoint <strong>Method</strong> to solve the ODE<br />
y& ( x)<br />
y(0)<br />
= 1+<br />
= 1<br />
x<br />
2<br />
+ y<br />
Use h = 0.1. Determine y(0.1) and y(0.2)<br />
22
23<br />
Example 1<br />
1.4446<br />
0.1(2.3438)<br />
1.2103<br />
)<br />
,<br />
(<br />
1.3213<br />
1.2103)<br />
0.01<br />
.05(1<br />
1.2103<br />
)<br />
,<br />
(<br />
2<br />
Step2 :<br />
1.2103<br />
1.1)<br />
0.0025<br />
0.1(1<br />
1<br />
)<br />
,<br />
(<br />
1.1<br />
1)<br />
0<br />
0.05(1<br />
1<br />
)<br />
,<br />
(<br />
2<br />
Step1:<br />
0.1<br />
1,<br />
(0)<br />
,<br />
1<br />
)<br />
,<br />
(<br />
Problem :<br />
2<br />
1<br />
1<br />
2<br />
1<br />
1<br />
1<br />
2<br />
1<br />
1<br />
1<br />
2<br />
1<br />
1<br />
2<br />
1<br />
0<br />
2<br />
1<br />
0<br />
0<br />
1<br />
0<br />
0<br />
0<br />
2<br />
1<br />
0<br />
0<br />
2<br />
=<br />
+<br />
=<br />
+<br />
=<br />
=<br />
+<br />
+<br />
+<br />
=<br />
+<br />
=<br />
=<br />
+<br />
+<br />
+<br />
=<br />
+<br />
=<br />
=<br />
+<br />
+<br />
+<br />
=<br />
+<br />
=<br />
=<br />
=<br />
=<br />
+<br />
+<br />
=<br />
+<br />
+<br />
+<br />
+<br />
+<br />
+<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
h<br />
y<br />
y<br />
y<br />
x<br />
y<br />
x<br />
f
Heun’s Predictor<br />
Corrector<br />
24
25<br />
Heun’s Predictor Corrector <strong>Method</strong><br />
( )<br />
)<br />
Error<br />
Truncation<br />
Global<br />
)<br />
Error<br />
Truncation<br />
Local<br />
)<br />
,<br />
(<br />
)<br />
,<br />
(<br />
2<br />
:<br />
Corrector<br />
)<br />
,<br />
(<br />
:<br />
Predictor<br />
)<br />
(<br />
)<br />
(<br />
)<br />
,<br />
(<br />
)<br />
(<br />
<strong>Method</strong><br />
'<br />
H<br />
Problem<br />
2<br />
3<br />
0<br />
1<br />
1<br />
1<br />
1<br />
0<br />
1<br />
0<br />
0<br />
0<br />
0<br />
O(h<br />
O(h<br />
y<br />
x<br />
f<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
y<br />
x<br />
y<br />
x<br />
y<br />
y<br />
y<br />
x<br />
f<br />
x<br />
y<br />
s<br />
eun<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
+<br />
+<br />
+<br />
+<br />
+<br />
+<br />
=<br />
+<br />
=<br />
=<br />
=<br />
=<br />
&
Heun’s Predictor Corrector<br />
(Prediction)<br />
( x i<br />
, y<br />
0<br />
+ 1 i+1<br />
)<br />
( x i<br />
, yi<br />
)<br />
x i<br />
x i+1<br />
Prediction<br />
0<br />
y i + 1 = y i + h f ( x i , y i<br />
)<br />
26
Heun’s Predictor Corrector<br />
(Prediction)<br />
( x i<br />
, y<br />
0<br />
+ 1 i+1<br />
)<br />
slope<br />
= f ( x i<br />
, yi<br />
0<br />
+1 +1<br />
)<br />
( x i<br />
, yi<br />
)<br />
Prediction<br />
x i<br />
x i+1<br />
0<br />
y h f ( x , y<br />
i+<br />
1 i<br />
i i<br />
y = +<br />
)<br />
27
Heun’s Predictor Corrector<br />
(Correction)<br />
slope<br />
f ( x<br />
,<br />
y<br />
) + f ( x<br />
2<br />
0<br />
=<br />
i i<br />
i+1 i+1<br />
,<br />
y<br />
)<br />
( x i<br />
, y<br />
0<br />
+ 1 i+1<br />
)<br />
( x i<br />
, yi<br />
)<br />
( x i<br />
, y<br />
1<br />
+ 1 i+1<br />
)<br />
x i<br />
x i+1<br />
y<br />
h<br />
2<br />
(<br />
0<br />
f ( x , y ) f ( x , y ))<br />
1<br />
i+ 1<br />
= yi<br />
+<br />
i i<br />
+<br />
i+<br />
1 i+<br />
1<br />
28
Example 2<br />
Use the Heun's<br />
<strong>Method</strong> to solve the ODE<br />
y& ( x)<br />
y(0)<br />
= 1+<br />
= 1<br />
x<br />
2<br />
+ y<br />
Use h = 0.1. One correction only<br />
Determine y(0.1) and y(0.2)<br />
29
30<br />
Example 2<br />
( )<br />
( ) 4452<br />
1.<br />
)<br />
,<br />
(<br />
)<br />
,<br />
(<br />
2<br />
Corrector :<br />
1.4326<br />
)<br />
,<br />
(<br />
:<br />
Predictor<br />
Step 2 :<br />
1.2105<br />
)<br />
,<br />
(<br />
)<br />
,<br />
(<br />
2<br />
Corrector :<br />
1.2<br />
0.1(2)<br />
1<br />
)<br />
,<br />
(<br />
:<br />
Predictor<br />
Step1:<br />
0.1<br />
1,<br />
)<br />
(<br />
,<br />
1<br />
)<br />
,<br />
(<br />
Problem :<br />
0<br />
2<br />
2<br />
1<br />
1<br />
1<br />
1<br />
2<br />
1<br />
1<br />
1<br />
0<br />
2<br />
0<br />
1<br />
1<br />
0<br />
0<br />
0<br />
1<br />
1<br />
0<br />
0<br />
0<br />
0<br />
1<br />
0<br />
0<br />
2<br />
=<br />
+<br />
+<br />
=<br />
=<br />
+<br />
=<br />
=<br />
+<br />
+<br />
=<br />
=<br />
+<br />
=<br />
+<br />
=<br />
=<br />
=<br />
=<br />
+<br />
+<br />
=<br />
y<br />
x<br />
f<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
y<br />
x<br />
f<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
h<br />
x<br />
y<br />
y<br />
x<br />
y<br />
y<br />
x<br />
f
Summary<br />
Euler, Midpoint and Heun’s methods are<br />
similar in the following sense:<br />
y = y + h ×<br />
i +1 i<br />
slope<br />
Different methods use different estimates of<br />
the slope.<br />
Both Midpoint and Heun’s methods are<br />
comparable in accuracy to the second<br />
order Taylor series method.<br />
31
32<br />
Comparison<br />
( )<br />
)<br />
,<br />
(<br />
)<br />
(<br />
)<br />
(<br />
)<br />
,<br />
(<br />
2<br />
Midpoint<br />
)<br />
,<br />
(<br />
)<br />
,<br />
(<br />
2<br />
Corrector :<br />
)<br />
(<br />
)<br />
(<br />
)<br />
,<br />
(<br />
:<br />
Predictor<br />
<strong>Method</strong><br />
Heun's<br />
)<br />
(<br />
)<br />
(<br />
)<br />
,<br />
(<br />
Euler <strong>Method</strong><br />
2<br />
1<br />
2<br />
1<br />
1<br />
2<br />
3<br />
2<br />
1<br />
1<br />
1<br />
1<br />
1<br />
2<br />
3<br />
0<br />
1<br />
2<br />
1<br />
+<br />
+<br />
+<br />
+<br />
+<br />
+<br />
+<br />
+<br />
+<br />
+<br />
+<br />
=<br />
+<br />
=<br />
+<br />
+<br />
=<br />
+<br />
=<br />
+<br />
=<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
k<br />
i<br />
i<br />
i<br />
i<br />
i<br />
k<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
h<br />
O<br />
h<br />
O<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
y<br />
x<br />
f<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
h<br />
O<br />
h<br />
O<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
h<br />
O<br />
h<br />
O<br />
y<br />
x<br />
f<br />
h<br />
y<br />
y<br />
<strong>Method</strong><br />
Local<br />
truncation<br />
error<br />
Global<br />
truncation<br />
error
Runge-Kutta <strong>Method</strong>s<br />
33
Learning Objectives<br />
<br />
<br />
<br />
To understand the motivation for using<br />
Runge Kutta method and the basic idea<br />
used in deriving them.<br />
To Familiarize with Taylor series for<br />
functions of two variables.<br />
Use Runge Kutta of order 2 to solve<br />
ODEs.<br />
34
Motivation<br />
<br />
<br />
We seek accurate methods to solve ODEs<br />
that do not require calculating high order<br />
derivatives.<br />
The approach is to use a formula<br />
involving unknown coefficients then<br />
determine these coefficients to match as<br />
many terms of the Taylor series<br />
expansion.<br />
35
Second Order Runge-Kutta <strong>Method</strong><br />
K<br />
K<br />
y<br />
1<br />
= h f<br />
=<br />
h<br />
f<br />
Problem :<br />
Find α,<br />
β ,<br />
such that<br />
( x<br />
( x<br />
,<br />
i+<br />
1<br />
+ α h,<br />
1<br />
,<br />
)<br />
2<br />
i<br />
i+ 1 = yi<br />
+ w1K<br />
1 +<br />
y<br />
i<br />
y<br />
w<br />
i<br />
w<br />
2<br />
w<br />
2<br />
y<br />
+<br />
2<br />
1<br />
is as accurate as<br />
i<br />
K<br />
β K<br />
)<br />
possible.<br />
36
Taylor Series in Two<br />
Variables<br />
The Taylor Series is extended to the 2-<br />
independent variable case.<br />
This is used to prove RK formula.<br />
37
Taylor Series in One Variable<br />
The<br />
f ( x<br />
n<br />
th<br />
+ h)<br />
=<br />
order Taylor Series expansion of f(x)<br />
i<br />
n<br />
i<br />
n+<br />
1<br />
=∑<br />
h ( i)<br />
h ( n+<br />
1)<br />
f ( x)<br />
+ f ( x)<br />
i!<br />
( n + 1)!<br />
0<br />
Approximation<br />
Error<br />
where x<br />
is<br />
between<br />
x<br />
and<br />
x<br />
+<br />
h<br />
38
Derivation of 2 nd Order<br />
Runge-Kutta <strong>Method</strong>s – 1 of 5<br />
Second Order Taylor Series<br />
Used to solve ODE :<br />
dy h<br />
yi+<br />
1 = yi<br />
+ h +<br />
dx 2<br />
which is written as :<br />
y<br />
i+<br />
1<br />
=<br />
y<br />
i<br />
+<br />
h<br />
f<br />
( x<br />
i<br />
,<br />
y<br />
2<br />
i<br />
dy<br />
dx<br />
)<br />
d<br />
2<br />
dx<br />
+<br />
=<br />
y<br />
2<br />
2<br />
h<br />
2<br />
f<br />
f<br />
Expansion<br />
( x,<br />
+ O(<br />
h<br />
'(<br />
x<br />
y)<br />
i<br />
3<br />
,<br />
)<br />
y<br />
i<br />
)<br />
+ O(<br />
h<br />
3<br />
)<br />
39
Derivation of 2 nd Order<br />
Runge-Kutta <strong>Method</strong>s – 2 of 5<br />
where<br />
f<br />
y<br />
'(<br />
x,<br />
f<br />
y)<br />
'(<br />
x,<br />
=<br />
∂f<br />
Substituting<br />
y)<br />
:<br />
( x,<br />
∂x<br />
is obtained by chain -<br />
y)<br />
+<br />
∂f<br />
( x,<br />
∂y<br />
( x,<br />
2<br />
⎛ ∂f<br />
∂f<br />
⎞ h<br />
1<br />
= yi<br />
+ f ( xi,<br />
yi<br />
) h + ⎜ + f ( xi,<br />
yi<br />
) ⎟ O(<br />
h<br />
⎝ ∂x<br />
∂y<br />
⎠ 2<br />
y)<br />
dy<br />
dx<br />
rule differentiation<br />
∂f<br />
∂x<br />
∂f<br />
∂y<br />
i +<br />
+<br />
=<br />
+<br />
f<br />
y)<br />
3<br />
)<br />
Eq. 1<br />
f<br />
'(<br />
x,<br />
y)<br />
40
The Multivariable Chain Rule<br />
<br />
41
42<br />
Taylor Series in Two Variables<br />
)<br />
,<br />
and (<br />
)<br />
,<br />
joining between (<br />
is on the line<br />
)<br />
,<br />
(<br />
)<br />
,<br />
(<br />
1)!<br />
(<br />
1<br />
)<br />
,<br />
(<br />
!<br />
1<br />
...<br />
2<br />
2!<br />
1<br />
)<br />
,<br />
(<br />
)<br />
,<br />
(<br />
1<br />
0<br />
2<br />
2<br />
2<br />
2<br />
2<br />
2<br />
2<br />
k<br />
y<br />
h<br />
x<br />
y<br />
x<br />
y<br />
x<br />
error<br />
approximation<br />
y<br />
x<br />
f<br />
y<br />
k<br />
x<br />
h<br />
n<br />
y<br />
x<br />
f<br />
y<br />
k<br />
x<br />
h<br />
i<br />
y<br />
x<br />
f<br />
hk<br />
y<br />
f<br />
k<br />
x<br />
f<br />
h<br />
y<br />
f<br />
k<br />
x<br />
f<br />
h<br />
y<br />
x<br />
f<br />
k<br />
y<br />
h<br />
x<br />
f<br />
n<br />
n<br />
i<br />
i<br />
+<br />
+<br />
⎟<br />
⎠<br />
⎞<br />
⎜<br />
⎝<br />
⎛<br />
∂<br />
∂<br />
+<br />
∂<br />
∂<br />
+<br />
+<br />
⎟<br />
⎠<br />
⎞<br />
⎜<br />
⎝<br />
⎛<br />
∂<br />
∂<br />
+<br />
∂<br />
∂<br />
=<br />
+<br />
⎟<br />
⎟<br />
⎠<br />
⎞<br />
⎜<br />
⎜<br />
⎝<br />
⎛<br />
∂<br />
∂<br />
∂<br />
+<br />
∂<br />
∂<br />
+<br />
∂<br />
∂<br />
⎟ +<br />
⎠<br />
⎞<br />
⎜<br />
⎝<br />
⎛<br />
∂<br />
∂<br />
+<br />
∂<br />
∂<br />
+<br />
=<br />
+<br />
+<br />
+<br />
=∑
Derivation of 2 nd Order<br />
Runge-Kutta <strong>Method</strong>s – 3 of 5<br />
Problem : Find α,<br />
β ,<br />
K<br />
K<br />
y<br />
1<br />
2<br />
i+<br />
1<br />
= h f<br />
= h f<br />
=<br />
y<br />
i<br />
( x<br />
( x<br />
+<br />
i<br />
i<br />
,<br />
)<br />
+ α h,<br />
w K<br />
1<br />
y<br />
i<br />
1<br />
+<br />
w<br />
2<br />
y<br />
i<br />
K<br />
w<br />
2<br />
1<br />
, w<br />
2<br />
+ β K<br />
1<br />
such that<br />
)<br />
Substituting :<br />
y<br />
i+<br />
1<br />
=<br />
y<br />
i<br />
+<br />
w h<br />
1<br />
f<br />
( x<br />
i<br />
,<br />
y<br />
i<br />
)<br />
+<br />
w h<br />
2<br />
f<br />
( x<br />
i<br />
+ α h,<br />
y<br />
i<br />
+<br />
β K<br />
1<br />
)<br />
43
Derivation of 2 nd Order<br />
Runge-Kutta <strong>Method</strong>s – 4 of 5<br />
44<br />
...<br />
)<br />
,<br />
(<br />
)<br />
,<br />
(<br />
)<br />
(<br />
...<br />
)<br />
,<br />
(<br />
)<br />
(<br />
...<br />
)<br />
,<br />
(<br />
)<br />
,<br />
(<br />
:<br />
...<br />
)<br />
,<br />
(<br />
)<br />
,<br />
(<br />
2<br />
2<br />
2<br />
2<br />
2<br />
1<br />
1<br />
1<br />
2<br />
2<br />
1<br />
1<br />
1<br />
2<br />
1<br />
1<br />
1<br />
1<br />
+<br />
∂<br />
∂<br />
+<br />
∂<br />
∂<br />
+<br />
+<br />
+<br />
=<br />
⎟<br />
⎠<br />
⎞<br />
⎜<br />
⎝<br />
⎛<br />
+<br />
∂<br />
∂<br />
+<br />
∂<br />
∂<br />
+<br />
+<br />
+<br />
=<br />
⎟<br />
⎠<br />
⎞<br />
⎜<br />
⎝<br />
⎛<br />
+<br />
∂<br />
∂<br />
+<br />
∂<br />
∂<br />
+<br />
+<br />
+<br />
=<br />
+<br />
∂<br />
∂<br />
+<br />
∂<br />
∂<br />
+<br />
=<br />
+<br />
+<br />
+<br />
+<br />
+<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
y<br />
x<br />
f<br />
y<br />
f<br />
h<br />
w<br />
x<br />
f<br />
h<br />
w<br />
y<br />
x<br />
f<br />
h<br />
w<br />
w<br />
y<br />
y<br />
y<br />
f<br />
K<br />
x<br />
f<br />
h<br />
w h<br />
y<br />
x<br />
f<br />
h<br />
w<br />
w<br />
y<br />
y<br />
y<br />
f<br />
K<br />
x<br />
f<br />
h<br />
y<br />
x<br />
f<br />
w h<br />
y<br />
x<br />
f<br />
w h<br />
y<br />
y<br />
Substituting<br />
y<br />
f<br />
K<br />
x<br />
f<br />
h<br />
y<br />
x<br />
f<br />
K<br />
y<br />
h<br />
x<br />
f<br />
β<br />
α<br />
β<br />
α<br />
β<br />
α<br />
β<br />
α<br />
β<br />
α<br />
Eq. 2
Derivation of 2 nd Order<br />
Runge-Kutta <strong>Method</strong>s – 5 of 5<br />
We derived two expansions for<br />
y<br />
i+<br />
1<br />
=<br />
y<br />
i<br />
+ ( w<br />
) h<br />
⎛ ∂f<br />
∂f<br />
⎞ h 3<br />
yi+<br />
1 = yi<br />
+ f ( xi,<br />
yi<br />
) h + ⎜ + f ( xi,<br />
yi<br />
) ⎟ + O(<br />
h )<br />
⎝ ∂x<br />
∂y<br />
⎠ 2<br />
Matching terms, we obtain the following three equations :<br />
1<br />
1<br />
w1<br />
+ w2<br />
= 1, w2α<br />
= , and w2β<br />
=<br />
2<br />
2<br />
3 equations with 4 unknowns ⇒ infinite solutions<br />
One possible solution :<br />
1<br />
+<br />
w<br />
2<br />
f ( x ,<br />
i<br />
y<br />
i<br />
)<br />
y<br />
+<br />
i+<br />
1<br />
α = β = 1,<br />
2<br />
:<br />
w αh<br />
w<br />
2<br />
1<br />
∂f<br />
∂x<br />
=<br />
w<br />
+<br />
2<br />
2<br />
w<br />
=<br />
2<br />
βh<br />
1<br />
2<br />
2<br />
∂f<br />
∂y<br />
f ( x<br />
i<br />
,<br />
y<br />
i<br />
)<br />
+ ...<br />
45
2 nd Order Runge-Kutta <strong>Method</strong>s<br />
46<br />
2<br />
1<br />
and<br />
,<br />
2<br />
1<br />
1,<br />
:<br />
such that<br />
,<br />
,<br />
,<br />
Choose<br />
)<br />
,<br />
(<br />
)<br />
,<br />
(<br />
2<br />
2<br />
2<br />
1<br />
2<br />
1<br />
2<br />
2<br />
1<br />
1<br />
1<br />
1<br />
2<br />
1<br />
=<br />
=<br />
=<br />
+<br />
+<br />
+<br />
=<br />
+<br />
+<br />
=<br />
=<br />
+<br />
β<br />
α<br />
β<br />
α<br />
β<br />
α<br />
w<br />
w<br />
w<br />
w<br />
w<br />
w<br />
K<br />
w<br />
w K<br />
y<br />
y<br />
K<br />
y<br />
h<br />
x<br />
f<br />
h<br />
K<br />
y<br />
x<br />
f<br />
h<br />
K<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i
47<br />
Alternative Form<br />
( )<br />
2<br />
2<br />
1<br />
1<br />
1<br />
1<br />
2<br />
1<br />
)<br />
,<br />
(<br />
)<br />
,<br />
(<br />
Alternative Form<br />
k<br />
w<br />
k<br />
w<br />
h<br />
y<br />
y<br />
h k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
y<br />
x<br />
f<br />
k<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
+<br />
+<br />
=<br />
+<br />
+<br />
=<br />
=<br />
+<br />
β<br />
α<br />
2<br />
2<br />
1<br />
1<br />
1<br />
1<br />
2<br />
1<br />
)<br />
,<br />
(<br />
)<br />
,<br />
(<br />
Second Order Runge Kutta<br />
K<br />
w<br />
w K<br />
y<br />
y<br />
K<br />
y<br />
h<br />
x<br />
f<br />
h<br />
K<br />
y<br />
x<br />
f<br />
h<br />
K<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
+<br />
+<br />
=<br />
+<br />
+<br />
=<br />
=<br />
+<br />
β<br />
α
Choosing α, β, w 1 and w 2<br />
For example, choosingα<br />
= 1, then β = 1,<br />
Second Order Runge -<br />
K<br />
K<br />
1<br />
2<br />
=<br />
=<br />
h<br />
h<br />
f<br />
f<br />
( x<br />
i<br />
( x<br />
1<br />
yi<br />
1 = yi<br />
+ 1 2<br />
2<br />
This is Heun'<br />
s <strong>Method</strong><br />
i<br />
,<br />
y<br />
i<br />
)<br />
+ h,<br />
y<br />
i<br />
+<br />
K<br />
Kutta method becomes :<br />
1<br />
)<br />
h<br />
i<br />
2<br />
i i<br />
with a Single Corrector<br />
( ) (<br />
0<br />
K + K = y + f ( x , y ) f ( x , y ))<br />
+ +<br />
w<br />
1<br />
=<br />
w<br />
2<br />
i+<br />
1<br />
=<br />
1<br />
2<br />
i+<br />
1<br />
48
Choosing α, β, w 1 and w 2<br />
1 1<br />
Choosingα<br />
= then β = , w1<br />
= 0, w2<br />
= 1<br />
2 2<br />
Second Order Runge - Kutta method becomes :<br />
K<br />
K<br />
y<br />
1<br />
2<br />
i+<br />
1<br />
=<br />
=<br />
=<br />
h<br />
h<br />
This is<br />
y<br />
i<br />
f<br />
f<br />
( x<br />
( x<br />
+<br />
i<br />
i<br />
,<br />
K<br />
2<br />
y<br />
+<br />
)<br />
h<br />
2<br />
the Midpoint<br />
i<br />
=<br />
,<br />
y<br />
i<br />
y<br />
i<br />
+<br />
+<br />
h<br />
K<br />
2<br />
f<br />
1<br />
)<br />
( x<br />
i<br />
+<br />
<strong>Method</strong><br />
h<br />
2<br />
,<br />
y<br />
i<br />
+<br />
K<br />
2<br />
1<br />
)<br />
49
2 nd Order Runge-Kutta <strong>Method</strong>s<br />
Alternative Formulas<br />
α w<br />
2<br />
Pick<br />
=<br />
1<br />
2<br />
,<br />
β w<br />
2<br />
=<br />
1<br />
2<br />
any nonzeroα<br />
number<br />
,<br />
w<br />
1<br />
+<br />
w<br />
2<br />
= 1<br />
: β = α,<br />
w<br />
2<br />
=<br />
1<br />
,<br />
2α<br />
w<br />
1<br />
= 1−<br />
1<br />
2α<br />
Second Order Runge Kutta Formulas (selectα<br />
≠<br />
K<br />
K<br />
y<br />
1<br />
2<br />
i+<br />
1<br />
=<br />
h<br />
f ( x<br />
,<br />
y<br />
i i<br />
h f ( xi<br />
+ α h,<br />
yi<br />
+<br />
⎛ 1 ⎞<br />
= yi<br />
+ ⎜1<br />
− ⎟K1<br />
=<br />
⎝<br />
)<br />
2α<br />
⎠<br />
+<br />
α K<br />
1<br />
)<br />
1<br />
K<br />
2α<br />
2<br />
0)<br />
50
Second order Runge-Kutta <strong>Method</strong><br />
Example<br />
Solve the following system to find<br />
x&<br />
( t)<br />
= 1+<br />
x<br />
2<br />
+<br />
t<br />
3<br />
,<br />
x(1)<br />
= −4,<br />
h<br />
x(1.02)<br />
using RK2<br />
= 0.01, α = 1<br />
STEP1:<br />
K<br />
K<br />
1<br />
2<br />
= h<br />
= h<br />
f ( t<br />
= 0.01(1 +<br />
( x<br />
x(1<br />
+ 0.01) = x(1)<br />
+<br />
0<br />
f ( t<br />
0<br />
= 1, x<br />
0<br />
= −4<br />
+ (0.18 +<br />
0<br />
+ h,<br />
x<br />
0<br />
+<br />
= −4)<br />
= 0.01(1 + x<br />
+<br />
K<br />
0.18)<br />
)<br />
( K + K )<br />
1<br />
1<br />
2<br />
+ ( t<br />
2<br />
/ 2<br />
+ .01)<br />
0.1662) / 2 = −3.8269<br />
0<br />
2<br />
0<br />
3<br />
+<br />
t<br />
3<br />
0<br />
) = 0.18<br />
) = 0.1662<br />
51
52<br />
Second order Runge-Kutta <strong>Method</strong><br />
Example<br />
( )<br />
3.6662<br />
0.1546)<br />
(0.1668<br />
2<br />
1<br />
3.8269<br />
2<br />
1<br />
(1.01)<br />
0.01)<br />
(1.01<br />
0.1546<br />
)<br />
.01)<br />
(<br />
0.1668)<br />
(<br />
0.01(1<br />
)<br />
,<br />
(<br />
0.1668<br />
)<br />
0.01(1<br />
3.8269)<br />
1.01,<br />
(<br />
STEP 2<br />
2<br />
1<br />
3<br />
1<br />
2<br />
1<br />
1<br />
1<br />
1<br />
2<br />
3<br />
1<br />
2<br />
1<br />
1<br />
1<br />
1<br />
= −<br />
+<br />
+<br />
= −<br />
+<br />
+<br />
=<br />
+<br />
=<br />
+<br />
+<br />
+<br />
+<br />
=<br />
+<br />
+<br />
=<br />
=<br />
+<br />
+<br />
=<br />
= −<br />
=<br />
=<br />
K<br />
K<br />
x<br />
x<br />
t<br />
x<br />
K<br />
x<br />
h<br />
t<br />
f<br />
h<br />
K<br />
t<br />
x<br />
x<br />
t<br />
f<br />
h<br />
K
x& ( t)<br />
=<br />
1<br />
+<br />
x<br />
2<br />
( t)<br />
+<br />
t<br />
3<br />
,<br />
x(1)<br />
= −4,<br />
Solution<br />
for t<br />
∈[1,2]<br />
Using RK2,<br />
α<br />
=<br />
1<br />
CISE301_Topic8<br />
L4&5<br />
53
Applications of Runge-Kutta <strong>Method</strong>s<br />
to Solve First Order ODEs<br />
Using Runge-Kutta methods of different<br />
orders to solve first order ODEs<br />
54
2 nd Order Runge-Kutta RK2<br />
Typical value of α = 1, Know as RK2<br />
Equivalent to Heun' s method with a single corrector<br />
k1<br />
= f ( xi<br />
, yi<br />
)<br />
k = f ( x + h,<br />
y + k h)<br />
y<br />
2<br />
i+<br />
1<br />
=<br />
y<br />
i<br />
h<br />
2<br />
( k + k )<br />
Local error is O(<br />
h<br />
i<br />
+<br />
1<br />
i<br />
3<br />
2<br />
1<br />
) and global error is O(<br />
h<br />
2<br />
)<br />
55
Higher-Order Runge-Kutta<br />
Higher order Runge-Kutta methods are available.<br />
Derived similar to second-order Runge-Kutta.<br />
Higher order methods are more accurate but<br />
require more calculations.<br />
56
57<br />
3 rd Order Runge-Kutta RK3<br />
( )<br />
)<br />
(<br />
error is<br />
and Global<br />
)<br />
(<br />
error is<br />
Local<br />
4<br />
6<br />
)<br />
2<br />
,<br />
(<br />
)<br />
2<br />
1<br />
,<br />
2<br />
(<br />
)<br />
,<br />
(<br />
RK3<br />
Known as<br />
3<br />
4<br />
3<br />
2<br />
1<br />
1<br />
2<br />
1<br />
3<br />
1<br />
2<br />
1<br />
h<br />
O<br />
h<br />
O<br />
k<br />
k<br />
k<br />
h<br />
y<br />
y<br />
h<br />
k<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
y<br />
x<br />
f<br />
k<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
+<br />
+<br />
+<br />
=<br />
+<br />
−<br />
+<br />
=<br />
+<br />
+<br />
=<br />
=<br />
+
58<br />
4 th Order Runge-Kutta RK4<br />
( )<br />
)<br />
(<br />
error is<br />
global<br />
and<br />
)<br />
(<br />
error is<br />
Local<br />
2<br />
2<br />
6<br />
)<br />
,<br />
(<br />
)<br />
2<br />
1<br />
,<br />
2<br />
(<br />
)<br />
2<br />
1<br />
,<br />
2<br />
(<br />
)<br />
,<br />
(<br />
4<br />
5<br />
4<br />
3<br />
2<br />
1<br />
1<br />
3<br />
i<br />
4<br />
2<br />
i<br />
3<br />
1<br />
2<br />
1<br />
h<br />
O<br />
h<br />
O<br />
k<br />
k<br />
k<br />
k<br />
h<br />
y<br />
y<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
y<br />
x<br />
f<br />
k<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
+<br />
+<br />
+<br />
+<br />
=<br />
+<br />
+<br />
=<br />
+<br />
+<br />
=<br />
+<br />
+<br />
=<br />
=<br />
+
59<br />
Higher-Order Runge-Kutta<br />
( )<br />
6<br />
5<br />
4<br />
3<br />
1<br />
1<br />
5<br />
4<br />
3<br />
2<br />
1<br />
6<br />
4<br />
1<br />
5<br />
3<br />
2<br />
4<br />
2<br />
1<br />
3<br />
1<br />
2<br />
1<br />
7<br />
32<br />
12<br />
32<br />
7<br />
90<br />
)<br />
7<br />
8<br />
7<br />
12<br />
7<br />
12<br />
7<br />
2<br />
7<br />
3<br />
,<br />
(<br />
)<br />
16<br />
9<br />
16<br />
3<br />
,<br />
4<br />
3<br />
(<br />
)<br />
2<br />
1<br />
,<br />
2<br />
1<br />
(<br />
)<br />
8<br />
1<br />
8<br />
1<br />
,<br />
4<br />
1<br />
(<br />
)<br />
4<br />
1<br />
,<br />
4<br />
1<br />
(<br />
)<br />
,<br />
(<br />
k<br />
k<br />
k<br />
k<br />
k<br />
h<br />
y<br />
y<br />
h<br />
k<br />
h<br />
k<br />
h<br />
k<br />
h<br />
k<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
h<br />
k<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
h<br />
k<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
h<br />
k<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
y<br />
x<br />
f<br />
k<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
+<br />
+<br />
+<br />
+<br />
+<br />
=<br />
+<br />
−<br />
+<br />
+<br />
−<br />
+<br />
=<br />
+<br />
+<br />
+<br />
=<br />
+<br />
−<br />
+<br />
=<br />
+<br />
+<br />
+<br />
=<br />
+<br />
+<br />
=<br />
=<br />
+
Example<br />
4 th -Order Runge-Kutta <strong>Method</strong><br />
RK4<br />
dy<br />
= 1+<br />
y +<br />
dx<br />
y(0)<br />
= 0.5<br />
x<br />
2<br />
h<br />
=<br />
0.2<br />
Use<br />
RK<br />
4to compute<br />
y(0.2)<br />
and<br />
y(0.4)<br />
60
Example: RK4<br />
Problem :<br />
dy<br />
2<br />
= 1+<br />
y + x ,<br />
dx<br />
Use RK 4 to find<br />
y(0)<br />
= 0.5<br />
y(0.2),<br />
y(0.4)<br />
61
62<br />
4 th Order Runge-Kutta RK4<br />
( )<br />
)<br />
(<br />
error is<br />
global<br />
and<br />
)<br />
(<br />
error is<br />
Local<br />
2<br />
2<br />
6<br />
)<br />
,<br />
(<br />
)<br />
2<br />
1<br />
,<br />
2<br />
(<br />
)<br />
2<br />
1<br />
,<br />
2<br />
(<br />
)<br />
,<br />
(<br />
4<br />
5<br />
4<br />
3<br />
2<br />
1<br />
1<br />
3<br />
i<br />
4<br />
2<br />
i<br />
3<br />
1<br />
2<br />
1<br />
h<br />
O<br />
h<br />
O<br />
k<br />
k<br />
k<br />
k<br />
h<br />
y<br />
y<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
y<br />
x<br />
f<br />
k<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
i<br />
+<br />
+<br />
+<br />
+<br />
=<br />
+<br />
+<br />
=<br />
+<br />
+<br />
=<br />
+<br />
+<br />
=<br />
=<br />
+
63<br />
Example: RK4<br />
0.5<br />
0,<br />
1<br />
)<br />
,<br />
(<br />
0.2<br />
0<br />
0<br />
2<br />
=<br />
=<br />
+<br />
+<br />
=<br />
=<br />
y<br />
x<br />
x<br />
y<br />
y<br />
x<br />
f<br />
h<br />
( ) ( )<br />
( ) ( )<br />
( ) ( )<br />
( ) 8293<br />
0.<br />
2<br />
2<br />
6<br />
1.7908<br />
0.2<br />
0.16545<br />
1<br />
)<br />
,<br />
(<br />
1.654<br />
0.1<br />
0.164<br />
1<br />
)<br />
2<br />
1<br />
,<br />
2<br />
1<br />
(<br />
1.64<br />
0.1<br />
0.15<br />
1<br />
)<br />
2<br />
1<br />
,<br />
2<br />
1<br />
(<br />
1.5<br />
)<br />
(1<br />
)<br />
,<br />
(<br />
4<br />
3<br />
2<br />
1<br />
0<br />
1<br />
2<br />
0<br />
0<br />
3<br />
0<br />
0<br />
4<br />
2<br />
0<br />
0<br />
2<br />
0<br />
0<br />
3<br />
2<br />
0<br />
0<br />
1<br />
0<br />
0<br />
2<br />
2<br />
0<br />
0<br />
0<br />
0<br />
1<br />
=<br />
+<br />
+<br />
+<br />
+<br />
=<br />
=<br />
+<br />
+<br />
+<br />
+<br />
=<br />
+<br />
+<br />
=<br />
=<br />
+<br />
+<br />
+<br />
+<br />
=<br />
+<br />
+<br />
=<br />
=<br />
+<br />
+<br />
+<br />
+<br />
=<br />
+<br />
+<br />
=<br />
=<br />
+<br />
+<br />
=<br />
=<br />
k<br />
k<br />
k<br />
k<br />
h<br />
y<br />
y<br />
x<br />
y<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
x<br />
y<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
x<br />
y<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
x<br />
y<br />
y<br />
x<br />
f<br />
k<br />
(0.4)<br />
(0.2),<br />
4<br />
0.5<br />
(0)<br />
,<br />
1<br />
Problem :<br />
2<br />
y<br />
y<br />
find<br />
to<br />
RK<br />
Use<br />
y<br />
x<br />
y<br />
dx<br />
dy<br />
=<br />
+<br />
+<br />
=<br />
See RK4 Formula<br />
Step 1
64<br />
Example: RK4<br />
0.8293<br />
0.2,<br />
1<br />
)<br />
,<br />
(<br />
0.2<br />
1<br />
1<br />
2<br />
=<br />
=<br />
+<br />
+<br />
=<br />
=<br />
y<br />
x<br />
x<br />
y<br />
y<br />
x<br />
f<br />
h<br />
( ) 2141<br />
1.<br />
2<br />
2<br />
6<br />
0.2<br />
2.0555<br />
)<br />
,<br />
(<br />
1.9311<br />
)<br />
2<br />
1<br />
,<br />
2<br />
1<br />
(<br />
1.9182<br />
)<br />
2<br />
1<br />
,<br />
2<br />
1<br />
(<br />
1.7893<br />
)<br />
,<br />
(<br />
4<br />
3<br />
2<br />
1<br />
1<br />
2<br />
3<br />
1<br />
1<br />
4<br />
2<br />
1<br />
1<br />
3<br />
1<br />
1<br />
1<br />
2<br />
1<br />
1<br />
1<br />
=<br />
+<br />
+<br />
+<br />
+<br />
=<br />
=<br />
+<br />
+<br />
=<br />
=<br />
+<br />
+<br />
=<br />
=<br />
+<br />
+<br />
=<br />
=<br />
=<br />
k<br />
k<br />
k<br />
k<br />
y<br />
y<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
h<br />
k<br />
y<br />
h<br />
x<br />
f<br />
k<br />
y<br />
x<br />
f<br />
k<br />
(0.4)<br />
(0.2),<br />
4<br />
0.5<br />
(0)<br />
,<br />
1<br />
Problem :<br />
2<br />
y<br />
y<br />
find<br />
to<br />
RK<br />
Use<br />
y<br />
x<br />
y<br />
dx<br />
dy<br />
=<br />
+<br />
+<br />
=<br />
Step 2
Example: RK4<br />
Problem :<br />
dy<br />
2<br />
= 1+<br />
y + x ,<br />
dx<br />
Use RK4<br />
to find<br />
y(0)<br />
= 0.5<br />
y(0.2),<br />
y(0.4)<br />
Summary of the solution<br />
x i<br />
y i<br />
0.0 0.5<br />
0.2 0.8293<br />
0.4 1.2141<br />
65
Summary<br />
Runge Kutta methods generate an<br />
accurate solution without the need to<br />
calculate high order derivatives.<br />
Second order RK have local truncation<br />
error of order O(h 3 ) and global truncation<br />
error of order O(h 2 ).<br />
Higher order RK have better local and<br />
global truncation errors.<br />
N function evaluations are needed in the<br />
N th order RK method.<br />
66
Solving Systems of ODEs<br />
67
Convert a single (or a system of) high<br />
order ODE to a system of first order<br />
ODEs.<br />
<br />
Use the methods discussed earlier in this<br />
topic to solve systems of first order<br />
ODEs.<br />
68
Outline<br />
<br />
<br />
<br />
<br />
<br />
<br />
Solution of a system of first order ODEs.<br />
Conversion of a high order ODE to a system of<br />
first order ODEs.<br />
Conversion of a system of high order ODEs to a<br />
system of first order ODEs.<br />
Use different methods to solve systems of first<br />
order ODEs.<br />
Use different methods to solve high order ODEs.<br />
Use different methods to solve systems of high<br />
order ODEs.<br />
69
Solving a System of First Order ODEs<br />
<br />
<br />
<strong>Method</strong>s discussed earlier such as Euler,<br />
Runge-Kutta,… are used to solve first<br />
order ordinary differential equations.<br />
The same formulas will be used to solve<br />
a system of first order ODEs.<br />
<br />
In this case, the differential equation is a<br />
vector equation and the dependent variable is<br />
a vector variable.<br />
70
Euler <strong>Method</strong> for Solving a System of<br />
First Order ODEs<br />
Recall Euler method for solving a first order ODE:<br />
Given<br />
dy(<br />
x)<br />
dx<br />
=<br />
f<br />
( y,<br />
x),<br />
y(<br />
a)<br />
=<br />
y<br />
a<br />
Euler <strong>Method</strong> :<br />
y(<br />
a<br />
y(<br />
a +<br />
y(<br />
a<br />
+ h)<br />
= y(<br />
a)<br />
+ h f ( y(<br />
a),<br />
a)<br />
2h)<br />
= y(<br />
a<br />
+ 3h)<br />
= y(<br />
a<br />
+ h)<br />
+ h f ( y(<br />
a<br />
+ 2h)<br />
+ h f ( y(<br />
a<br />
+ h),<br />
a + h)<br />
+ 2h),<br />
a + 2h)<br />
71
Example - Euler <strong>Method</strong><br />
Euler method to solve a system of n first order ODEs.<br />
Given<br />
Euler<br />
Y ( a<br />
Y ( a<br />
Y ( a<br />
⎡ f1(<br />
Y,<br />
x)<br />
⎤ ⎡ y1(<br />
a)<br />
⎤<br />
⎢<br />
( )<br />
f2(<br />
Y,<br />
x)<br />
⎥ ⎢<br />
y2(<br />
a)<br />
⎥<br />
d Y x<br />
= F(<br />
Y,<br />
x)<br />
= ⎢ ⎥,<br />
Y ( a)<br />
= ⎢ ⎥<br />
dx<br />
⎢ ... ⎥ ⎢ ... ⎥<br />
⎢ ⎥ ⎢ ⎥<br />
⎣ fn(<br />
Y,<br />
x)<br />
⎦ ⎣yn(<br />
a)<br />
⎦<br />
<strong>Method</strong> :<br />
+ h)<br />
= Y ( a)<br />
+ h<br />
+ 2h)<br />
= Y ( a + h)<br />
+<br />
+ 3h)<br />
= Y ( a<br />
+ 2h)<br />
+<br />
F(<br />
Y ( a),<br />
a)<br />
h F(<br />
Y ( a<br />
h F(<br />
Y ( a<br />
+ h),<br />
a<br />
+ h)<br />
+ 2h),<br />
a<br />
+ 2h)<br />
72
Solving a System of n First Order ODEs<br />
<br />
<br />
<br />
Exactly the same<br />
formula is used but<br />
the scalar variables<br />
and functions are<br />
replaced by vector<br />
variables and vector<br />
value functions.<br />
Y is a vector of<br />
length n.<br />
F(Y,x) is a vector<br />
valued function.<br />
⎡ y1(<br />
x)<br />
⎤<br />
⎢<br />
y2(<br />
x)<br />
⎥<br />
Y ( x)<br />
= ⎢ ⎥<br />
⎢ ... ⎥<br />
⎢ ⎥<br />
⎣yn(<br />
x)<br />
⎦<br />
⎡ d y<br />
⎢<br />
⎢<br />
( )<br />
d dx d Y x<br />
y<br />
=<br />
⎢<br />
dx ⎢ dx<br />
⎢ ...<br />
⎢d<br />
y<br />
⎢⎣<br />
dx<br />
Y ( a + h)<br />
= Y ( a)<br />
+ h<br />
1<br />
2<br />
n<br />
⎤<br />
⎥ ⎡ f<br />
⎥ ⎢<br />
⎥ ⎢<br />
f<br />
=<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎣ f<br />
⎥⎦<br />
( Y,<br />
x)<br />
⎤<br />
( Y,<br />
x)<br />
⎥<br />
⎥ =<br />
... ⎥<br />
⎥<br />
( Y,<br />
x)<br />
⎦<br />
F(<br />
Y ( a),<br />
a)<br />
n×<br />
1 vector<br />
F(<br />
Y,<br />
x)<br />
Y ( a + 2h)<br />
= Y ( a + h)<br />
+ h F(<br />
Y ( a + h),<br />
a + h)<br />
1<br />
2<br />
n<br />
Y<br />
Y ( a + 3h)<br />
= Y ( a + 2h)<br />
+ h F(<br />
Y ( a + 2h),<br />
a + 2h)<br />
is<br />
73
74<br />
Example :<br />
Euler method for solving a system of first order ODEs.<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡−<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
+<br />
+<br />
+<br />
−<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
+<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
+<br />
=<br />
+<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡−<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
+<br />
+<br />
+<br />
−<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
+<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
+<br />
=<br />
+<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡−<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
=<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
1.39<br />
0.78<br />
0.9)<br />
.1(1<br />
1.2<br />
0.12<br />
0.9<br />
(0.1)<br />
1<br />
(0.1)<br />
0.1<br />
(0.1)<br />
(0.1)<br />
(0.2)<br />
(0.2)<br />
)<br />
),<br />
(<br />
(<br />
)<br />
(<br />
)<br />
2<br />
(0<br />
2 :<br />
1.2<br />
0.9<br />
1)<br />
0.1(1<br />
1<br />
0.1<br />
1<br />
(0)<br />
1<br />
(0)<br />
0.1<br />
(0)<br />
(0)<br />
(0.1)<br />
(0.1)<br />
(0),0)<br />
(<br />
(0)<br />
)<br />
(0<br />
1:<br />
0.1<br />
1<br />
1<br />
(0)<br />
(0)<br />
(0)<br />
),<br />
,<br />
(<br />
1<br />
)<br />
(<br />
)<br />
(<br />
1<br />
2<br />
2<br />
1<br />
2<br />
1<br />
1<br />
2<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
1<br />
2<br />
2<br />
1<br />
y<br />
y<br />
y<br />
y<br />
y<br />
y<br />
h<br />
h<br />
Y<br />
h F<br />
h<br />
Y<br />
h<br />
Y<br />
STEP<br />
y<br />
y<br />
y<br />
y<br />
y<br />
y<br />
Y<br />
F<br />
h<br />
Y<br />
h<br />
Y<br />
STEP<br />
h<br />
with<br />
<strong>Method</strong><br />
Euler<br />
of<br />
steps<br />
Two<br />
y<br />
y<br />
Y<br />
x<br />
Y<br />
F<br />
y<br />
y<br />
x<br />
y<br />
x<br />
y<br />
&<br />
&
75<br />
Example :<br />
RK2 method for solving a system of first order ODEs<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡−<br />
=<br />
⎟<br />
⎟<br />
⎠<br />
⎞<br />
⎜<br />
⎜<br />
⎝<br />
⎛<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
+<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
+<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡−<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
+<br />
+<br />
=<br />
+<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
+<br />
−<br />
+<br />
=<br />
+<br />
+<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
=<br />
=<br />
=<br />
−<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡−<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
=<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
1.195<br />
0.89<br />
0.19<br />
0.12<br />
0.2<br />
0.1<br />
2<br />
1<br />
1<br />
1<br />
(0.1)<br />
(0.1)<br />
2)<br />
1<br />
0.5(<br />
(0)<br />
)<br />
(0<br />
0.19<br />
0.12<br />
0.1)<br />
(0)<br />
(<br />
1<br />
0.2<br />
(0)<br />
0.1<br />
)<br />
1,0<br />
(0)<br />
(<br />
2<br />
0.2<br />
0.1<br />
(0)<br />
1<br />
(0)<br />
0.1<br />
(0),0)<br />
(<br />
1<br />
1:<br />
0.1<br />
<strong>Method</strong><br />
Kutta<br />
second order Runge<br />
1<br />
1<br />
(0)<br />
(0)<br />
(0)<br />
),<br />
,<br />
(<br />
1<br />
)<br />
(<br />
)<br />
(<br />
2<br />
1<br />
1<br />
2<br />
1<br />
2<br />
2<br />
1<br />
1<br />
2<br />
2<br />
1<br />
y<br />
y<br />
K<br />
K<br />
Y<br />
h<br />
Y<br />
y<br />
y<br />
h<br />
K<br />
Y<br />
F<br />
h<br />
K<br />
y<br />
y<br />
Y<br />
F<br />
h<br />
K<br />
STEP<br />
h<br />
with<br />
of<br />
steps<br />
Two<br />
y<br />
y<br />
Y<br />
x<br />
Y<br />
F<br />
y<br />
y<br />
x<br />
y<br />
x<br />
y<br />
&<br />
&
76<br />
Example :<br />
RK2 method for solving a system of first order ODEs<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡−<br />
=<br />
⎟<br />
⎟<br />
⎠<br />
⎞<br />
⎜<br />
⎜<br />
⎝<br />
⎛<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
⎥ +<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
⎥ +<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡−<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
+<br />
+<br />
=<br />
+<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
+<br />
−<br />
+<br />
=<br />
+<br />
+<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
=<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡−<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
=<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
1.3780<br />
0.7611<br />
0.1771<br />
0.1384<br />
0.1890<br />
0.1195<br />
2<br />
1<br />
1.195<br />
0.89<br />
(0.2)<br />
(0.2)<br />
2)<br />
1<br />
0.5(<br />
(0.1)<br />
)<br />
(0.1<br />
0.1771<br />
0.1384<br />
0.1195)<br />
(0.1)<br />
(<br />
1<br />
0.189<br />
(0.1)<br />
0.1<br />
)<br />
1,0.1<br />
(0.1)<br />
(<br />
2<br />
0.1890<br />
0.1195<br />
(0.1)<br />
1<br />
(0.1)<br />
0.1<br />
(0.1),0.1)<br />
(<br />
1<br />
2 :<br />
1<br />
1<br />
(0)<br />
(0)<br />
(0)<br />
),<br />
,<br />
(<br />
1<br />
)<br />
(<br />
)<br />
(<br />
2<br />
1<br />
1<br />
2<br />
1<br />
2<br />
2<br />
1<br />
1<br />
2<br />
2<br />
1<br />
y<br />
y<br />
K<br />
K<br />
Y<br />
h<br />
Y<br />
y<br />
y<br />
h<br />
K<br />
Y<br />
F<br />
h<br />
K<br />
y<br />
y<br />
Y<br />
F<br />
h<br />
K<br />
STEP<br />
y<br />
y<br />
Y<br />
x<br />
Y<br />
F<br />
y<br />
y<br />
x<br />
y<br />
x<br />
y<br />
&<br />
&
<strong>Method</strong>s for Solving a System of First Order ODEs<br />
<br />
We have extended Euler and RK2 methods to<br />
solve systems of first order ODEs.<br />
<br />
Other methods used to solve first order ODE can<br />
be easily extended to solve systems of first<br />
order ODEs.<br />
77
High Order ODEs<br />
<br />
How do solve a second order ODE?<br />
&& x + 3 x&<br />
+ 6x<br />
=<br />
1<br />
<br />
How do solve high order ODEs?<br />
78
The General Approach to Solve ODEs<br />
High order ODE Convert System of first order ODEs Solve<br />
&& x + 3x&<br />
+ 6x<br />
= 1<br />
x&<br />
(0) = 1; x(0)<br />
=<br />
4<br />
Convert<br />
⎡z&<br />
⎢<br />
⎣z&<br />
1<br />
2<br />
⎤<br />
⎥<br />
⎦<br />
Z(0)<br />
⎡ z2<br />
⎤<br />
= ⎢ ⎥,<br />
⎣1 − 3z2<br />
− 6z1⎦<br />
=<br />
⎡4⎤<br />
⎢ ⎥<br />
⎣1⎦<br />
Solve<br />
Second order ODE<br />
Two first order ODEs<br />
CISE301_Topic8L6 79
Conversion Procedure<br />
High order ODE Convert System of first order ODEs Solve<br />
1. Select the dependent variables<br />
One way is to take the original dependent<br />
variable and its derivatives up to one degree less<br />
than the highest order derivative.<br />
2. Write the Differential Equations in terms of<br />
the new variables. The equations come from the<br />
way the new variables are defined or from the<br />
original equation.<br />
3. Express the equations in a matrix form.<br />
80
Remarks on the Conversion Procedure<br />
High order ODE Convert System of first order ODE Solve<br />
1. Any n th order ODE is converted to a system of n<br />
first order ODEs.<br />
2. There are an infinite number of ways to select<br />
the new variables. As a result, for each high<br />
order ODE there are an infinite number of set of<br />
equivalent first order systems of ODEs.<br />
3. Use a table to make the conversion easier.<br />
81
Example of Converting a High Order<br />
ODE to First Order ODEs<br />
Convert && x + 3x&<br />
+ 6x<br />
= 1, x&<br />
(0) = 1; x(0)<br />
= 4<br />
to a system of first order ODEs<br />
1.Select a<br />
(Second order ODE<br />
z<br />
z<br />
1<br />
2<br />
=<br />
=<br />
x<br />
x&<br />
new set of<br />
variables<br />
⇒<br />
We need two variables)<br />
One degree less than the<br />
highest order derivative<br />
82
Example of Converting a High Order<br />
ODE to First Order ODEs<br />
old new<br />
name name<br />
x<br />
x&<br />
z<br />
z<br />
1<br />
2<br />
Initial<br />
cond.<br />
4<br />
1<br />
Equation<br />
z&<br />
1<br />
z&<br />
2<br />
=<br />
z<br />
2<br />
= 1−<br />
3z<br />
2<br />
−<br />
6z<br />
1<br />
⎡ z&<br />
⎢<br />
⎣z&<br />
1<br />
2<br />
⎤<br />
⎥<br />
⎦<br />
=<br />
⎡<br />
⎢<br />
⎣1<br />
−<br />
z<br />
3z<br />
2<br />
2<br />
−<br />
6z<br />
1<br />
⎤<br />
⎥,<br />
⎦<br />
Z(0)<br />
=<br />
⎡4⎤<br />
⎢ ⎥<br />
⎣1⎦<br />
83
Example of Converting a High Order<br />
ODE to First Order ODEs<br />
Convert<br />
&&& x + 2&&<br />
x + 7x&<br />
+ 8x<br />
= 0<br />
&& x(0)<br />
= 9, x&<br />
(0) = 1; x(0)<br />
= 4<br />
1.Select a<br />
z<br />
z<br />
z<br />
1<br />
2<br />
3<br />
= x<br />
= x&<br />
= && x<br />
new set of<br />
variables (3 of<br />
them)<br />
One degree less than the<br />
highest order derivative<br />
84
85<br />
Example of Converting a High Order<br />
ODE to First Order ODEs<br />
⎥<br />
⎥<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
⎡<br />
=<br />
⎥<br />
⎥<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
−<br />
−<br />
=<br />
⎥<br />
⎥<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
−<br />
= −<br />
=<br />
=<br />
9<br />
1<br />
4<br />
(0)<br />
,<br />
8<br />
7<br />
2<br />
8<br />
7<br />
2<br />
9<br />
1<br />
4<br />
cond.<br />
name<br />
name<br />
Equation<br />
Initial<br />
new<br />
old<br />
1<br />
2<br />
3<br />
3<br />
2<br />
3<br />
2<br />
1<br />
1<br />
2<br />
3<br />
3<br />
3<br />
3<br />
2<br />
2<br />
2<br />
1<br />
1<br />
Z<br />
z<br />
z<br />
z<br />
z<br />
z<br />
z<br />
z<br />
z<br />
z<br />
z<br />
z<br />
z<br />
z<br />
x<br />
z<br />
z<br />
z<br />
x<br />
z<br />
z<br />
z<br />
x<br />
&<br />
&<br />
&<br />
&<br />
&&<br />
&<br />
&<br />
&
Conversion Procedure for Systems of<br />
High Order ODEs<br />
System of high order ODEs Convert System of first order ODE Solve<br />
1. Select the dependent variables<br />
Take the original dependent variables and their<br />
derivatives up to one degree less than the<br />
highest order derivative for each variable.<br />
2. Write the Differential Equations in terms of<br />
the new variables. The equations come from the<br />
way the new variables are defined or from the<br />
original equation.<br />
3. Express the equations in a matrix form.<br />
86
Example of Converting a High Order<br />
ODE to First Order ODEs<br />
Convert<br />
&&& x + 5&&<br />
x +<br />
&& y + 2xy<br />
+ x&<br />
= 2<br />
x(0)<br />
= 4; x&<br />
(0) = 2; && x(0)<br />
z<br />
z<br />
z<br />
z<br />
z<br />
= x<br />
= x&<br />
= && x<br />
= y<br />
= y&<br />
2x&<br />
+ 8y<br />
= 0<br />
= 9; y(0)<br />
= 1; y&<br />
(0) = −3<br />
1.Select a new set of variables ((3+<br />
2) variables)<br />
1<br />
2<br />
3<br />
4<br />
5<br />
One degree less<br />
than the highest<br />
order derivative<br />
87
Example of Converting a High Order<br />
ODE to First Order ODEs<br />
old new<br />
name name<br />
x<br />
x&<br />
&& x<br />
y<br />
y&<br />
z<br />
z<br />
z<br />
z<br />
z<br />
1<br />
2<br />
3<br />
4<br />
5<br />
Initial<br />
cond.<br />
4<br />
2<br />
9<br />
1<br />
− 3<br />
Equation<br />
z&<br />
z&<br />
1<br />
z&<br />
z&<br />
z&<br />
2<br />
3<br />
4<br />
5<br />
=<br />
=<br />
z<br />
z<br />
2<br />
2<br />
3<br />
= −5z<br />
=<br />
=<br />
z<br />
5<br />
−<br />
3<br />
z<br />
− 2z<br />
2<br />
2<br />
− 2z<br />
1<br />
−8z<br />
z<br />
4<br />
4<br />
88
Solution of a Second Order ODE<br />
Solve the equation using Euler method. Use h=0.1<br />
&& x + 2x&<br />
x(0)<br />
=<br />
+ 8x<br />
= 1;<br />
Select a<br />
F(<br />
Z)<br />
=<br />
=<br />
x&<br />
(0)<br />
2<br />
= −2<br />
new set of<br />
The second order equation is expressed as :<br />
Z&<br />
⎡z&<br />
⎢<br />
⎣z&<br />
1<br />
2<br />
⎤<br />
⎥<br />
⎦<br />
variables:<br />
⎡ z<br />
= ⎢<br />
⎣2<br />
− 2z<br />
2<br />
2<br />
z<br />
1<br />
−8z<br />
1<br />
=<br />
x,<br />
z<br />
2<br />
⎤<br />
⎥,<br />
Z(0)<br />
⎦<br />
=<br />
=<br />
x&<br />
⎡ 1 ⎤<br />
⎢ ⎥<br />
⎣−<br />
2⎦<br />
89
90<br />
Solution of a Second Order ODE<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
−<br />
−<br />
−<br />
+<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
=<br />
+<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
−<br />
−<br />
−<br />
+<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
=<br />
+<br />
=<br />
+<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
=<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
−<br />
=<br />
2.2<br />
0.58<br />
8(0.8)<br />
2.2)<br />
2(<br />
2<br />
2.2<br />
0.1<br />
2.2<br />
0.8<br />
(0.1))<br />
(<br />
(0.1)<br />
(0.2)<br />
2.2<br />
0.8<br />
8(1)<br />
2)<br />
2(<br />
2<br />
2<br />
0.1<br />
2<br />
1<br />
(0))<br />
(<br />
(0)<br />
0.1)<br />
(0<br />
0.1<br />
,<br />
2<br />
1<br />
(0)<br />
,<br />
8<br />
2<br />
2<br />
)<br />
(<br />
1<br />
2<br />
2<br />
Z<br />
hF<br />
Z<br />
Z<br />
Z<br />
hF<br />
Z<br />
Z<br />
h<br />
Z<br />
z<br />
z<br />
z<br />
Z<br />
F
Summary<br />
Formulas used in solving a first order ODE<br />
are used to solve systems of first order<br />
ODEs.<br />
Instead of scalar variables and functions, we<br />
have vector variables and vector functions.<br />
High order ODEs are converted to a set of<br />
first order ODEs.<br />
91