{VERSION 5 0 "IBM INTEL NT" "5.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Comment" 2 18 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Warning" -1 7 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 2 2 2 2 2 1 1 1 3 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Plot" -1 13 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Title" -1 18 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 1 2 2 2 1 1 1 1 }3 1 0 0 12 12 1 0 1 0 2 2 19 1 }{PSTYLE "Author" -1 19 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 8 8 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 256 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 }} {SECT 0 {PARA 18 "" 0 "" {TEXT -1 40 "Finite Difference - Convection D iffusion" }}{PARA 19 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 122 "This worksheet illustrates the finite difference method for a sim ple one-dimensional steady convection diffusion equation." }}{PARA 0 " " 0 "" {TEXT -1 33 "Restart Maple and load libraries." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "with(LinearAlgebra):with(plots):" }}{PARA 7 "" 1 "" {TEXT -1 50 "Warning, the name changecoords has been redefined\n" }}} {PARA 0 "" 0 "" {TEXT -1 24 "We consider the equation" }}{PARA 256 "" 0 "" {XPPEDIT 18 0 "-diff(u,x,x)+k*diff(u,x) = 0;" "6#/,&-%%diffG6%%\" uG%\"xGF)!\"\"*&%\"kG\"\"\"-%%diffG6$%\"uG%\"xGF-F-\"\"!" }{TEXT -1 6 " " }{XPPEDIT 18 0 "u(0) = 0;" "6#/-%\"uG6#\"\"!F'" }{TEXT -1 5 " " }{XPPEDIT 18 0 "u(1) = 1;" "6#/-%\"uG6#\"\"\"F'" }{TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT -1 21 "define the parameter " }{XPPEDIT 18 0 "k;" "6#%\"kG" }{TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "k:=50;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"kG\"#]" }}}{PARA 0 "" 0 "" {TEXT -1 26 "the number of grid points " }{XPPEDIT 18 0 "n;" " 6#%\"nG" }{TEXT -1 22 " and the mesh spacing " }{XPPEDIT 18 0 "h;" "6# %\"hG" }{TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "n:=11 ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"nG\"#6" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 11 "h:=1/(n-1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #>%\"hG#\"\"\"\"#5" }}}{PARA 0 "" 0 "" {TEXT -1 66 "After discretizati on we get a system of linear algebraic equations" }}{PARA 256 "" 0 "" {XPPEDIT 18 0 "Au = b;" "6#/%#AuG%\"bG" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 29 "define the matrix and vectors" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "A:=Matrix(n,n);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"AG-%'RTABLEG6+\")#pm#=%)anythingG%'MatrixG%,rectangularG%.Fortr an_orderG7\"\"\"#;\"\"\"\"#6F/" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "u:=Vector(n);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"uG-%'RTAB LEG6*\")[LB=%)anythingG&%'VectorG6#%'columnG%,rectangularG%.Fortran_or derG7\"\"\"\";F1\"#6" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "f:= Vector(n);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG-%'RTABLEG6*\")?c9 ;%)anythingG&%'VectorG6#%'columnG%,rectangularG%.Fortran_orderG7\"\"\" \";F1\"#6" }}}{PARA 0 "" 0 "" {TEXT -1 4 "set " }{XPPEDIT 18 0 "f[1]; " "6#&%\"fG6#\"\"\"" }{TEXT -1 7 " and " }{XPPEDIT 18 0 "f[n];" "6#& %\"fG6#%\"nG" }{TEXT -1 36 " to account for boundary conditions" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "f[1]:=0;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%\"fG6#\"\"\"\"\"!" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "f[n]:=1;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%\"fG6# \"#6\"\"\"" }}}{PARA 0 "" 0 "" {TEXT -1 35 "Compute the elements of th e matrix " }{XPPEDIT 18 0 "A;" "6#%\"AG" }{TEXT -1 34 " using centered finite differences" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "for i from 2 to n-1 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "A[i,i]:=2/h^2 " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "end do:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "for i from 2 to n-1 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "A[i,i-1]:=-k/(2*h)-1/h^2" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "end do:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 " for i from 2 to n-1 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "A[i,i+1]: =k/(2*h)-1/h^2" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "end do:" }}}{PARA 0 "" 0 "" {TEXT -1 61 "set first and last equation to account for boun dary condition" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "A[1,1]:=1; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%\"AG6$\"\"\"F'F'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "A[n,n]:=1;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%\"AG6$\"#6F'\"\"\"" }}}{PARA 0 "" 0 "" {TEXT -1 19 " solve linear system" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "u:=Li nearSolve(A,f);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"uG-%'RTABLEG6* \")GMB=%)anythingG&%'VectorG6#%'columnG%,rectangularG%.Fortran_orderG7 \"\"\"\";F1\"#6" }}}{PARA 0 "" 0 "" {TEXT -1 19 "Set up for graphics" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "q:=[seq([(i-1)*h,u[i]],i=1 ..n)]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "ap:=listplot(q,th ickness=2,color=black):" }}}{PARA 0 "" 0 "" {TEXT -1 14 "Exact solutio n" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "e:=(exp(k*x)-1)/(exp(k) -1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"eG*&,&-%$expG6#,$%\"xG\"#] \"\"\"F-!\"\"F-,&-F(6#F,F-F-F.F." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "ep:=plot(e,x=0..1,thickness=2,linestyle=2,color=black ):" }}}{PARA 0 "" 0 "" {TEXT -1 55 "Plot and compare approximate solut ion to exact solution" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "dis play(ep,ap);" }}{PARA 13 "" 1 "" {GLPLOT2D 296 222 222 {PLOTDATA 2 "6& -%'CURVESG6&7\\o7$$\"\"!F)F(7$$\"3emmm;arz@!#>$\"3\"p\\G1gkq!Q!#R7$$\" 3[LL$e9ui2%F-$\"3%Q;H9R!p(G\"!#Q7$$\"3nmmm\"z_\"4iF-$\"3m/Qj\\H>3TF67$ $\"3[mmmT&phN)F-$\"37IC^$*R/R7!#P7$$\"3CLLe*=)H\\5!#=$\"3ccP1LSQVOFA7$ $\"3gmm\"z/3uC\"FE$\"3JPRk-jBV)*FA7$$\"3%)***\\7LRDX\"FE$\"3-SNw=dl[F! #O7$$\"3]mm\"zR'ok;FE$\"3^g'QXd=J%zFR7$$\"3w***\\i5`h(=FE$\"3%o@-T'e$p G#!#N7$$\"3WLLL3En$4#FE$\"3'p9v0SJgy'Fgn7$$\"3qmm;/RE&G#FE$\"3'*R;Zl$= (oMl=+_Fbo7$$\"3$******\\PAvr#FE$ \"3\"3#[/*>yc`\"!#L7$$\"3)******\\nHi#HFE$\"3a$*o`1H;gVF]p7$$\"3jmm\"z *ev:JFE$\"3:N))3\"HWZ7\"!#K7$$\"3?LLL347TLFE$\"3#*fR!\\I&yqMFhp7$$\"3, LLLLY.KNFE$\"3p\"flI1Qb,*Fhp7$$\"3w***\\7o7Tv$FE$\"3irQxh^qOF!#J7$$\"3 'GLLLQ*o]RFE$\"3]Xca(f()GJ(Fhq7$$\"3A++D\"=lj;%FE$\"37zVY'=B*\\@!#I7$$ \"31++vV&R
Lv9R\\N\"
!#G7$$\"3&em;zRQb@&FE$\"3%ySz-eE,3%Fis7$$\"3\\***\\(=>Y2aFE$\"3k20*\\
\"y>l5!#F7$$\"39mm;zXu9cFE$\"3T<,f)*f)G+$Fdt7$$\"3l******\\y))GeFE$\"3
M?!fy)e#3w)Fdt7$$\"3'*)***\\i_QQgFE$\"3oIB)>0bs\\#!#E7$$\"3@***\\7y%3T
iFE$\"3#p\"Q>D\"*[!)oFdu7$$\"35****\\P![hY'FE$\"3oQRpm-,?@!#D7$$\"3kKL
L$Qx$omFE$\"3%Rekx$4QFeF_v7$$\"3!)*****\\P+V)oFE$\"3]AG$HN;`r\"!#C7$$
\"3?mm\"zpe*zqFE$\"3o4\\Z\\SeiXFjv7$$\"3%)*****\\#\\'QH(FE$\"3=ZguyGaH
8!#B7$$\"3GKLe9S8&\\(FE$\"3N(=#fo!yqj$Few7$$\"3R***\\i?=bq(FE$\"3R<[(y
[[8/\"!#A7$$\"3\"HLL$3s?6zFE$\"322PCpMN7HF`x7$$\"3a***\\7`Wl7)FE$\"3#H
Oh*4$zva)F`x7$$\"3#pmmm'*RRL)FE$\"327ZLRm*4T#!#@7$$\"3Qmm;a<.Y&)FE$\"3
Yuc:[_AipF`y7$$\"3=LLe9tOc()FE$\"3W)ps!o>!H*>!#?7$$\"3u******\\Qk\\*)F
E$\"3q/6)f>#=Q_F[z7$$\"31nmT5ASg!*FE$\"3d:$[@e'e8\"*F[z7$$\"3CLL$3dg6<
*FE$\"3!GcRF5;ce\"F-7$$\"3y***\\(oTAq#*FE$\"3eh5`5x--EF-7$$\"3ImmmmxGp
$*FE$\"3!yuM-Zz*pUF-7$$\"3sK$eRA5\\Z*FE$\"33.)*zbZsSsF-7$$\"3A++D\"oK0
e*FE$\"3#R*z\">9IyA\"FE7$$\"3B+]il(z5j*FE$\"3i<\"=Se$)3e\"FE7$$\"3C+++
]oi\"o*FE$\"3TFOQA\\XN?FE7$$\"3B+]PMR Lv9R\\N\"!#G7$$\"3&em;zRQb@&FE$\"3
%ySz-eE,3%Fis7$$\"3\\***\\(=>Y2aFE$\"3k20*\\\"y>l5!#F7$$\"39mm;zXu9cFE
$\"3T<,f)*f)G+$Fdt7$$\"3l******\\y))GeFE$\"3M?!fy)e#3w)Fdt7$$\"3'*)***
\\i_QQgFE$\"3oIB)>0bs\\#!#E7$$\"3@***\\7y%3TiFE$\"3#p\"Q>D\"*[!)oFdu7$
$\"35****\\P![hY'FE$\"3oQRpm-,?@!#D7$$\"3kKLL$Qx$omFE$\"3%Rekx$4QFeF_v
7$$\"3!)*****\\P+V)oFE$\"3]AG$HN;`r\"!#C7$$\"3?mm\"zpe*zqFE$\"3o4\\Z\\
SeiXFjv7$$\"3%)*****\\#\\'QH(FE$\"3=ZguyGaH8!#B7$$\"3GKLe9S8&\\(FE$\"3
N(=#fo!yqj$Few7$$\"3R***\\i?=bq(FE$\"3R<[(y[[8/\"!#A7$$\"3\"HLL$3s?6zF
E$\"322PCpMN7HF`x7$$\"3a***\\7`Wl7)FE$\"3#HOh*4$zva)F`x7$$\"3#pmmm'*RR
L)FE$\"327ZLRm*4T#!#@7$$\"3Qmm;a<.Y&)FE$\"3Yuc:[_AipF`y7$$\"3=LLe9tOc(
)FE$\"3W)ps!o>!H*>!#?7$$\"3u******\\Qk\\*)FE$\"3q/6)f>#=Q_F[z7$$\"31nm
T5ASg!*FE$\"3d:$[@e'e8\"*F[z7$$\"3CLL$3dg6<*FE$\"3!GcRF5;ce\"F-7$$\"3y
***\\(oTAq#*FE$\"3eh5`5x--EF-7$$\"3ImmmmxGp$*FE$\"3!yuM-Zz*pUF-7$$\"3s
K$eRA5\\Z*FE$\"33.)*zbZsSsF-7$$\"3A++D\"oK0e*FE$\"3#R*z\">9IyA\"FE7$$
\"3B+]il(z5j*FE$\"3i<\"=Se$)3e\"FE7$$\"3C+++]oi\"o*FE$\"3TFOQA\\XN?FE7
$$\"3B+]PMR