21.06.2014 Views

Numerical Methods Contents - SAM

Numerical Methods Contents - SAM

Numerical Methods Contents - SAM

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.

8 1/5 3/40 44/45 19372/6561 9017/3168 35/384<br />

9 0 9/40 −56/15 −25360/2187 −355/33 0<br />

10 0 0 32/9 64448/6561 46732/5247<br />

500/1113<br />

11 0 0 0 −212/729 49/176 125/192<br />

12 0 0 0 0 −5103/18656<br />

−2187/6784<br />

13 0 0 0 0 0 11/84<br />

14 0 0 0 0 0 0<br />

15 ] ;<br />

16 E = [71/57600; 0 ; −71/16695; 71/1920; −17253/339200; 22/525; −1/40];<br />

17 % . (choice of stepsize and main loop omitted)<br />

18 % ADVANCING ONE STEP.<br />

19 hA = h ∗ A ;<br />

20 hB = h ∗ B ;<br />

21 f ( : , 2 ) = feval ( odeFcn , t +hA ( 1 ) , y+ f ∗hB ( : , 1 ) , odeArgs { : } ) ;<br />

22 f ( : , 3 ) = feval ( odeFcn , t +hA ( 2 ) , y+ f ∗hB ( : , 2 ) , odeArgs { : } ) ;<br />

23 f ( : , 4 ) = feval ( odeFcn , t +hA ( 3 ) , y+ f ∗hB ( : , 3 ) , odeArgs { : } ) ;<br />

24 f ( : , 5 ) = feval ( odeFcn , t +hA ( 4 ) , y+ f ∗hB ( : , 4 ) , odeArgs { : } ) ;<br />

25 f ( : , 6 ) = feval ( odeFcn , t +hA ( 5 ) , y+ f ∗hB ( : , 5 ) , odeArgs { : } ) ;<br />

Ôº ½½º<br />

29 h = tnew − t ; % Purify h.<br />

26<br />

27 tnew = t + hA ( 6 ) ;<br />

28 i f done , tnew = t f i n a l ; end % Hit end point exactly.<br />

Special case of oscillating Zhabotinski-Belousov reaction [19]:<br />

BrO − 3 + Br− ↦→ HBrO 2<br />

HBrO 2 + Br − ↦→ Org<br />

BrO − 3 + HBrO 2 ↦→ 2 HBrO 2 + Ce(IV)<br />

(11.5.1)<br />

2 HBrO 2 ↦→ Org<br />

Ce(IV) ↦→ Br −<br />

y 1 := c(BrO − 3 ): ẏ 1 = −k 1 y 1 y 2 − k 3 y 1 y 3 ,<br />

y 2 := c(Br − ): ẏ 2 = −k 1 y 1 y 2 − k 2 y 2 y 3 + k 5 y 5 ,<br />

y 3 := c(HBrO 2 ): ẏ 3 = k 1 y 1 y 2 − k 2 y 2 y 3 + k 3 y 1 y 3 − 2k 4 y3 2 ,<br />

y 4 := c(Org): ẏ 4 = k 2 y 2 y 3 + k 4 y3 2 ,<br />

y 5 := c(Ce(IV)): ẏ 5 = k 3 y 1 y 3 − k 5 y 5 ,<br />

with (non-dimensionalized) reaction constants:<br />

k 1 = 1.34 , k 2 = 1.6 · 10 9 , k 3 = 8.0 · 10 3 , k 4 = 4.0 · 10 7 , k 5 = 1.0 .<br />

periodic chemical reaction ➽ Video 1, Video 2<br />

(11.5.2)<br />

MATLAB simulation with initial state y 1 (0) = 0.06, y 2 (0) = 0.33 · 10 −6 , y 3 (0) = 0.501 · 10 −10 ,<br />

y 4 (0) = 0.03, y 5 (0) = 0.24 · 10 −7 :<br />

Ôº½ ½½º<br />

30 ynew = y + f ∗hB ( : , 6 ) ;<br />

31 % . (stepsize control, see Sect. 11.5 dropped<br />

10 −3 Concentration of Br −<br />

10 −4<br />

10 −6<br />

△<br />

10 −5<br />

10 −7<br />

Example 11.4.7 (<strong>Numerical</strong> integration of logistic ODE in MATLAB).<br />

10 −6<br />

MATLAB-CODE: usage of ode45<br />

fn = @(t,y) 5*y*(1-y);<br />

[t,y] = ode45(fn,[0 1.5],y0);<br />

plot(t,y,’r-’);<br />

MATLAB-integrator: ode45():<br />

Handle passing r.h.s.<br />

initial and final time<br />

initial state y 0<br />

✸<br />

c(t)<br />

10 −7<br />

10 −8<br />

10 −9<br />

10 −10<br />

0 20 40 60 80 100 120 140 160 180 200<br />

Fig. 144<br />

t<br />

c(t)<br />

10 −5 t<br />

10 −8<br />

10 −9<br />

10 −10<br />

10 −11<br />

Concentration of HBrO 2<br />

Fig. 145<br />

0 20 40 60 80 100 120 140 160 180 200<br />

We observe a strongly non-uniform behavior of the solution in time.<br />

11.5 Stepsize control<br />

Example 11.5.1 (Oregonator reaction).<br />

Ôº¼ ½½º<br />

This is very common with evolutions arising from practical models (circuit models, chemical reaction<br />

models, mechanical systems)<br />

Ôº¾ ½½º

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

Saved successfully!

Ooh no, something went wrong!