30.12.2016 Views

Euler’s Method

2016+week5-6

2016+week5-6

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!