{VERSION 2 3 "IBM INTEL NT" "2.3" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Helvetica" 1 9 255 0 0 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "2D Math" -1 2 "Times" 1 10 0 0 0 0 0 0 2 0 0 0 0 0 0 }{CSTYLE "2D Comment" 2 18 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 256 "" 0 1 255 135 20 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 257 "" 0 1 0 0 20 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 } {PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 0 2 2 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Output" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 11 12 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple P lot" 0 13 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Title" 0 18 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 1 0 0 0 0 0 0 }3 0 0 -1 12 12 0 0 0 0 0 0 19 0 } {PSTYLE "R3 Font 0" -1 256 1 {CSTYLE "" -1 -1 "Helvetica" 0 12 0 0 0 0 2 1 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 2" -1 257 1 {CSTYLE "" -1 -1 "Courier" 0 10 0 0 0 0 2 2 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 3" -1 258 1 {CSTYLE "" -1 -1 "Courier" 0 14 0 0 0 0 2 2 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 4" -1 259 1 {CSTYLE "" -1 -1 "Courier" 0 14 0 0 0 0 2 2 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 5" -1 260 1 {CSTYLE "" -1 -1 "Courier" 0 14 0 0 0 0 2 2 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 \+ Font 6" -1 261 1 {CSTYLE "" -1 -1 "Courier" 0 14 0 0 0 0 2 2 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 7" -1 262 1 {CSTYLE "" -1 -1 "Courier" 0 14 0 0 0 0 2 2 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 8" -1 263 1 {CSTYLE "" -1 -1 "Courier" 0 14 0 0 0 0 2 2 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 18 "" 0 "" {TEXT -1 48 "Diffusion and Reaction in a One Dimensional Slab" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 86 "Our ex ample involves the concentration in diffusion and reaction. The govern ing ODE is" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "ODE := D*Diff (C,z,z)+r=0: ODE;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/,&*&%\"DG\"\"\"- %%DiffG6%%\"CG%\"zGF,F'F'%\"rGF'\"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 6 "where " }{TEXT 257 1 "D" }{TEXT -1 31 " is the diffusion c oefficient, " }{TEXT 258 1 "r" }{TEXT -1 26 " is the reaction rate and " }{TEXT 259 1 "C" }{TEXT -1 55 " is the concentration. The rate of r eaction is given by" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "Reac tion := r=k*C: Reaction;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/%\"rG*&% \"kG\"\"\"%\"CGF'" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 40 "which we sub stitute into the ODE to give" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "ODE2:=subs(Reaction, ODE): ODE2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/,&*&%\"DG\"\"\"-%%DiffG6%%\"CG%\"zGF,F'F'*&%\"kGF'F+F'F'\"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 44 "The boundary conditions for thi s example are" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "BC0 := C(0 )=C[0]: BC0;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/-%\"CG6#\"\"!&F%F&" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "BC1:= Diff(C(L),z)=0: BC1; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/-%%DiffG6$-%\"CG6#%\"LG%\"zG\"\"! " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 195 "We are going to use a finite difference method of solving the ODE. The governing equation is assum ed to hold for the concentration at certain selected points (nodes), h ere indicated by the index " }{TEXT 256 1 "i" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "i:='i': ODE3:=subs(C=C[i],ODE2): ODE3;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/,&*&%\"DG\"\"\"-%%DiffG6%&%\"CG6#%\"iG%\"zG F/F'F'*&%\"kGF'F+F'F'\"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 26 "We \+ set the number of nodes" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "n :=11;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"nG\"#6" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 88 "We use a central difference approximation to th e second derivative in the above equation" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 60 "fddiff:=Diff(C[i],z,z) = (C[i+1]-2*C[i]+C[i-1])/h^2 : fddiff;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/-%%DiffG6%&%\"CG6#%\"iG% \"zGF+*&,(&F(6#,&F*\"\"\"F1F1F1F'!\"#&F(6#,&F*F1!\"\"F1F1F1%\"hGF2" }} }{EXCHG {PARA 0 "" 0 "" {TEXT -1 125 "We can now generate finite diffe rence approximations for each interior node (the boundaries are dealt \+ with separately below)." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 " for i from 2 to n-1 do\n eqn[i] :=subs(fddiff,ODE3);\n print(eqn[i ]); \nod:" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/,&*(%\"DG\"\"\",(&%\"CG6 #\"\"$F'&F*6#\"\"#!\"#&F*6#F'F'F'%\"hGF0F'*&%\"kGF'F-F'F'\"\"!" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#/,&*(%\"DG\"\"\",(&%\"CG6#\"\"%F'&F*6# \"\"$!\"#&F*6#\"\"#F'F'%\"hGF0F'*&%\"kGF'F-F'F'\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/,&*(%\"DG\"\"\",(&%\"CG6#\"\"&F'&F*6#\"\"%!\"#&F*6# \"\"$F'F'%\"hGF0F'*&%\"kGF'F-F'F'\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/,&*(%\"DG\"\"\",(&%\"CG6#\"\"'F'&F*6#\"\"&!\"#&F*6#\"\"%F'F'%\" hGF0F'*&%\"kGF'F-F'F'\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/,&*(%\" DG\"\"\",(&%\"CG6#\"\"(F'&F*6#\"\"'!\"#&F*6#\"\"&F'F'%\"hGF0F'*&%\"kGF 'F-F'F'\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/,&*(%\"DG\"\"\",(&%\" CG6#\"\")F'&F*6#\"\"(!\"#&F*6#\"\"'F'F'%\"hGF0F'*&%\"kGF'F-F'F'\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/,&*(%\"DG\"\"\",(&%\"CG6#\"\"*F'&F* 6#\"\")!\"#&F*6#\"\"(F'F'%\"hGF0F'*&%\"kGF'F-F'F'\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/,&*(%\"DG\"\"\",(&%\"CG6#\"#5F'&F*6#\"\"*!\"#&F*6 #\"\")F'F'%\"hGF0F'*&%\"kGF'F-F'F'\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/,&*(%\"DG\"\"\",(&%\"CG6#\"#6F'&F*6#\"#5!\"#&F*6#\"\"*F'F'%\"hG F0F'*&%\"kGF'F-F'F'\"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 26 "The b oundary condition at " }{XPPEDIT 18 0 "z=0" "/%\"zG\"\"!" }{TEXT -1 4 " is " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "BC0a:=subs(C(0)=C[ 1],BC0): BC0a;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/&%\"CG6#\"\"\"&F%6# \"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 6 "where " }{XPPEDIT 18 0 "C [0]" "&%\"CG6#\"\"!" }{TEXT -1 152 " is the initial concentration. The derivative boundary condition at the other boundary must be replaced \+ using a 2 term backward difference approximation" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "fddiffb2:=Diff(C[i],z)=1/2*(3*C[i]-4*C[i-1]+C [i-2])/h: fddiffb2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/-%%DiffG6$&%\" CG6#\"#6%\"zG,$*&,(F'\"\"$&F(6#\"#5!\"%&F(6#\"\"*\"\"\"F7%\"hG!\"\"#F7 \"\"#" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 34 "The boundary condition n ow becomes" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "BC1a:=subs(C( L)=C[i],fddiffb2,i=n,BC1): BC1a;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/, $*&,(&%\"CG6#\"#6\"\"$&F(6#\"#5!\"%&F(6#\"\"*\"\"\"F3%\"hG!\"\"#F3\"\" #\"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 40 "We place all the equati ons into a list. " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "eqnlis t :=[BC0a,seq(eqn[i],i=2..n-1),BC1a];" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%(eqnlistG7-/&%\"CG6#\"\"\"&F(6#\"\"!/,&*(%\"DGF*,(&F(6#\"\"$F*&F( 6#\"\"#!\"#F'F*F*%\"hGF9F**&%\"kGF*F6F*F*F-/,&*(F1F*,(&F(6#\"\"%F*F3F9 F6F*F*F:F9F**&F " 0 "" {MPLTEXT 1 0 50 "Pa rams := \{D=1.2e-9,k=1e-3,h=1e-3/(n-1),C[0]=0.2\};" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%'ParamsG<&/%\"hG$\"+++++5!#8/&%\"CG6#\"\"!$\"\"#!\" \"/%\"kG$\"\"\"!\"$/%\"DG$\"#7!#5" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 15 "The step size, " }{XPPEDIT 18 0 "h" "I\"hG6\"" }{TEXT -1 99 ", is \+ determined by the fact that the distance over which diffusion and reac tion take place is just " }{XPPEDIT 18 0 "1e-3" "$\"\"\"!\"$" }{TEXT -1 3 " m." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 67 "We substitute these variables into the finite diff erence equations." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "eqnlis t2:=subs(Params,eqnlist);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%)eqnlis t2G7-/&%\"CG6#\"\"\"$\"\"#!\"\"/,(&F(6#\"\"$$\"+++++7!#5&F(6#F,$!++++! R#F5F'F3\"\"!/,(&F(6#\"\"%F3F0F8F6F3F:/,(&F(6#\"\"&F3F=F8F0F3F:/,(&F(6 #\"\"'F3FBF8F=F3F:/,(&F(6#\"\"(F3FGF8FBF3F:/,(&F(6#\"\")F3FLF8FGF3F:/, (&F(6#\"\"*F3FQF8FLF3F:/,(&F(6#\"#5F3FVF8FQF3F:/,(&F(6#\"#6F3FenF8FVF3 F:/,(Fjn$\"+++++:!\"&Fen$!+++++?FaoFV$\"+++++]!\"'F:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 46 "The variables appearing in these equations are " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "vars:=indets(eqnlist2,n ame);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%varsG<-&%\"CG6#\"#5&F'6#\" \"*&F'6#\"#6&F'6#\"\")&F'6#\"\"(&F'6#\"\"'&F'6#\"\"&&F'6#\"\"%&F'6#\" \"\"&F'6#\"\"$&F'6#\"\"#" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 15 "and t hey number" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "nops(vars);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#6" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 26 "The number of equations is" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "nops(eqnlist2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\" #6" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 198 "So there appear to be no f urther degrees of freedom. Before proceeding it might help to determin e the structure of the equations. Here is a procedure for looking at t he structure of equation sytems." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 385 "Eqnanalysis := proc (Eqns:\{set,list,vector\},x:\{se t,list,vector\})\nlocal neqns, Imat, i, j;\n# Determine number of equa tions\nneqns := nops(Eqns);\n# Now to construct the incidence matrix\n Imat := linalg[matrix](neqns,neqns,0);\nfor i from 1 to neqns do\n fo r j from 1 to neqns do\n if has (Eqns[i], x[j]) then \n Imat[ i,j] := 1; \n fi;\n od; \nod;\nplots[sparsematrixplot](Imat);\nend :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "Eqnanalysis(eqnlist2,[ seq(C[i],i=1..n)]);" }}{PARA 13 "" 1 "" {INLPLOT "6%-%'POINTSG6A7$$\" \"(\"\"!F'7$$\"\"&F)$\"\"'F)7$$\"\"\"F)$\"\"#F)7$F2$\"\"$F)7$F+$\"\"%F )7$F0F07$F'$\"\")F)7$F<$\"\"*F)7$F8F57$F+F+7$$\"#6F)$\"#5F)7$FFF?7$FFF D7$F?F?7$FFFF7$F5F57$F8F87$F5F27$F " 0 "" {MPLTEXT 1 0 27 "solve(\{op(eqnlist2)\},vars);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#<-/&%\"CG6#\"\"%$\"+x^xDE!#5/&F&6#\"\")$\"+pc[\\JF+/&F& 6#\"#5$\"+uvtdKF+/&F&6#\"#6$\"+![68F$F+/&F&6#\"\"*$\"+ae, " 0 "" {MPLTEXT 1 0 26 "solve( \{op(eqnlist)\},vars);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#<-/&%\"CG6# \"\"%,$**%\"DG\"\"$&F&6#\"\"!\"\"\",6*(F+\"\"'%\"kGF,%\"hGF3\"%5B*(F+ \"\"&F4F(F5\"\")!%mL*(F+F(F4F8F5\"#5\"% " 0 "" {MPLTEXT 1 0 15 "subs(Params,\");" }}{PARA 12 "" 1 " " {XPPMATH 20 "6#<-/&%\"CG6#\"\"\"$\"\"#!\"\"/&F&6#\"\"%$\"+z^xDE!#5/& F&6#F*$\"+SstFAF2/&F&6#\"\"*$\"+be, " 0 "" {MPLTEXT 1 0 36 "read `c:/maple/numerics/newton.mpl`:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "with(linalg):" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 37 "A list of initial guesses is created." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "Initial:=[seq(C[i]=0.2,i=1..n)];" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(InitialG7-/&%\"CG6#\"\"\"$\"\"#!\" \"/&F(6#F,F+/&F(6#\"\"$F+/&F(6#\"\"%F+/&F(6#\"\"&F+/&F(6#\"\"'F+/&F(6# \"\"(F+/&F(6#\"\")F+/&F(6#\"\"*F+/&F(6#\"#5F+/&F(6#\"#6F+" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 37 "We invoke Newton's method as follows:" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "result:=Newton(eqnlist2,Ini tial,tolerance=1e-6,output=\{variables\});" }}{PARA 11 "" 1 "" {XPPMATH 20 "6-/&%\"CG6#\"\"\"$\"\"#!\"\"/&F%6#F)F(/&F%6#\"\"$F(/&F%6# \"\"%F(/&F%6#\"\"&F(/&F%6#\"\"'F(/&F%6#\"\"(F(/&F%6#\"\")F(/&F%6#\"\"* F(/&F%6#\"#5F(/&F%6#\"#6F(" }}{PARA 12 "" 1 "" {XPPMATH 20 "6-/&%\"CG6 #\"\"\"$\"\"#!\"\"/&F%6#F)$\"+OstFA!#5/&F%6#\"\"$$\"+%**4pV#F0/&F%6#\" \"%$\"+q^xDEF0/&F%6#\"\"&$\"+'))eFz#F0/&F%6#\"\"'$\"+8'pk$HF0/&F%6#\" \"($\"+e(4d0$F0/&F%6#\"\")$\"+dc[\\JF0/&F%6#\"\"*$\"+Te,% 'resultG7-/&%\"CG6#\"\"\"$\"\"#!\"\"/&F(6#F,$\"+PstFA!#5/&F(6#\"\"$$\" +(**4pV#F3/&F(6#\"\"%$\"+u^xDEF3/&F(6#\"\"&$\"+!*)eFz#F3/&F(6#\"\"'$\" +<'pk$HF3/&F(6#\"\"($\"+i(4d0$F3/&F(6#\"\")$\"+gc[\\JF3/&F(6#\"\"*$\"+ We, " 0 "" {MPLTEXT 1 0 56 "plot( [seq([k,rhs(result[k])],k=1..n)],labels=['n','C']);" }}{PARA 13 "" 1 " " {INLPLOT "6$-%'CURVESG6$7-7$$\"\"\"\"\"!$\"1+++++++?!#;7$$\"\"#F*$\" 1+++PstFAF-7$$\"\"$F*$\"1+++(**4pV#F-7$$\"\"%F*$\"1+++u^xDEF-7$$\"\"&F *$\"1+++!*)eFz#F-7$$\"\"'F*$\"1+++<'pk$HF-7$$\"\"(F*$\"1+++i(4d0$F-7$$ \"\")F*$\"1+++gc[\\JF-7$$\"\"*F*$\"1+++We,