03.04.2013 Views

Maple Solutions to the Chemical Engineering Problem Set

Maple Solutions to the Chemical Engineering Problem Set

Maple Solutions to the Chemical Engineering Problem Set

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

We define yz ( ) as <strong>the</strong> first derivative term.<br />

> ODE3:=diff(C[A](z),z)=y(z): ODE3;<br />

∂<br />

C ( z ) = yz ( )<br />

∂z<br />

A<br />

The second derivative is obtained on differentiation.<br />

> diff(ODE3,z);<br />

∂<br />

=<br />

∂<br />

2<br />

z 2<br />

∂<br />

C ( z ) ( )<br />

A ∂z<br />

yz<br />

Substitution of <strong>the</strong> original ODE gives <strong>the</strong> following expression for <strong>the</strong> ODE<br />

> ODE4:=subs(ODE,"): ODE4;<br />

The parameter values are specified<br />

> Params :={D[A,B]=1.2e-9,k=1e-3};<br />

k C ( z )<br />

A ∂<br />

= ( )<br />

D ∂z<br />

A, B<br />

yz<br />

Params := { k = .001 ,<br />

D = .12 10 }<br />

A, B -8<br />

and substituted in<strong>to</strong> <strong>the</strong> set of differential equations.<br />

> Deqns := subs(Params,{ODE3,ODE4});<br />

∂<br />

∂<br />

Deqns := { C ( z ) = yz ( ) ,<br />

833333.3333 C ( z)<br />

= ( ) }<br />

∂z<br />

A A ∂z<br />

yz<br />

The initial conditions are <strong>the</strong> known initial concentration and a guess for <strong>the</strong> unknown first derivative<br />

term.<br />

> IC := {C[A](0)=0.2,y(0)=-130};<br />

IC := { y0 ( ) = -130 ,<br />

C ( 0 ) = .2}<br />

A<br />

We combine <strong>the</strong> sets of ODEs and initial conditions.<br />

> Alleqns := Deqns union IC;<br />

∂<br />

∂<br />

Alleqns := { C ( z ) = yz ( ) , y0 ( ) = -130 , C ( 0 ) = .2 ,<br />

833333.3333 C ( z)<br />

= ( ) }<br />

∂z<br />

A A A ∂z<br />

yz<br />

dsolve is invoked <strong>to</strong> make a procedure for numerical computation of <strong>the</strong> result.<br />

> g:=dsolve(Alleqns,{C[A](z),y(z)}, type=numeric, method=rkf45, output=procedurelist);<br />

g := proc( rkf45_x)<br />

... end<br />

We compute <strong>the</strong> "solution" (subject <strong>to</strong> <strong>the</strong> guessed initial value of y) as follows<br />

> g(1e-3);<br />

[ z = .001 , C ( z ) = .1404605642564124 ,<br />

yz ( ) = 2.764382915334039]<br />

A<br />

where <strong>the</strong> value of 0.001 in <strong>the</strong> call <strong>to</strong> g is <strong>the</strong> final value of z.<br />

We need <strong>to</strong> find an initial value of y that leads <strong>to</strong> y.001 ( )<br />

= 0 (more or less). We make a procedure <strong>to</strong><br />

au<strong>to</strong>mate <strong>the</strong> preceding computations:<br />

> f := proc(y0)<br />

local IC, Deqns, Params, Alleqns,g, err;<br />

Params :={D[A,B]=1.2e-9,k=1e-3, y[f,0]=0};<br />

Deqns := {833333.3333*C[A](z) = diff(y(z),z), diff(C[A](z),z) = y(z)};<br />

Page 30

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

Saved successfully!

Ooh no, something went wrong!