{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 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 }} {SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "restart:with(plots): with(StringTools):" }}{PARA 7 "" 1 "" {TEXT -1 50 "Warning, the name c hangecoords has been redefined\n" }}{PARA 7 "" 1 "" {TEXT -1 58 "Warni ng, the assigned name Group now has a global binding\n" }}}{PARA 0 "" 0 "" {TEXT -1 97 "Set up the parameters: r the interval length l and n umber of grid point in the spatial direction." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "r:=0.50;l:=1.0;n:=5;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"rG$\"#]!\"#" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\" lG$\"#5!\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"nG\"\"&" }}}{PARA 0 "" 0 "" {TEXT -1 68 "Compute mesh spacing h, time step k, and total \+ number of time steps." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "h:= l/n;k:=r*h^2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"hG$\"+++++?!#5" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"kG$\"+++++?!#6" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "tsteps:=round(0.3/k);" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%'tstepsG\"#:" }}}{PARA 0 "" 0 "" {TEXT -1 20 "Bound ary conditions." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "al:=0.0;a r:=0.0;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#alG$\"\"!F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#arG$\"\"!F&" }}}{PARA 0 "" 0 "" {TEXT -1 93 "Set up grid xh and initial solution unew from the initial conditions \+ and boundary conditions." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 " xh[0+1]:=0.0;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%#xhG6#\"\"\"$\"\"! F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "unew[0+1]:=al;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>&%%unewG6#\"\"\"$\"\"!F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "for i from 1 to n-1 do" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 13 "xh[i+1]:=i*h:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "unew[i+1]:=sin(Pi*i*h):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "o d:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "xh[n+1]:=l;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%#xhG6#\"\"'$\"#5!\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "unew[n+1]:=ar;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%%unewG6#\"\"'$\"\"!F)" }}}{PARA 0 "" 0 "" {TEXT -1 70 "Graphics: plotting initial condition and initial approximate solut ion." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "an:=seq([xh[i],unew[ i]],i=1..n+1):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 144 "p[1]:=di splay(pointplot([an],style=line,view=[0..1,0..1],color=blue),\nplot(si n(Pi*x),x=0..1),color=red,title=Join([\"t=\",convert(0,string)],\"\")) :" }}}{PARA 0 "" 0 "" {TEXT -1 19 "Time stepping loop." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "for j from 1 to tsteps do" }}{PARA 0 "" 0 "" {TEXT -1 26 "resetting initial solution" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 22 "for i from 1 to n+1 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "uold[i]:=unew[i];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od;" }}{PARA 0 "" 0 "" {TEXT -1 64 "timestepping the solution (comp uting solution at next time step)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "unew[0+1]:=al;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "for i from 1 \+ to n-1 do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "unew[i+1]:=evalf(r*uol d[i-1+1]+(1-2*r)*uold[i+1]+r*uold[i+1+1]);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "unew[n+1]:=a r;" }}{PARA 0 "" 0 "" {TEXT -1 69 "plotting exact solution and approxi mate solution at the new time step" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "an:=seq([xh[i],unew[i]],i=1..n+1);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 162 "p[j+1]:=display(pointplot([an],style=line,view=[0..1,0..1],co lor=blue),plot(exp(-Pi^2*k*j)*sin(Pi*x),x=0..1),color=red,title=Join([ \"t=\",convert(k*j,string)],\"\")):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od:" }}}{PARA 0 "" 0 "" {TEXT -1 44 "More graphics stuff to create \+ the animation." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "pseq:=seq( p[j],j=1..tsteps+1):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "dis play(pseq,insequence=true);" }}{PARA 13 "" 1 "" {GLPLOT2D 338 338 338 {PLOTDATA 2 "6#-%(ANIMATEG627'-%'CURVESG6%7(7$$\"\"!F-F,7$$\"+++++?!#5 $\"+CD&y(eF17$$\"+++++SF1$\"+l^c5&*F17$$\"+++++gF1$\"+j^c5&*F17$$\"+++ ++!)F1$\"+AD&y(eF17$$\"#5!\"\"F,-%'COLOURG6&%$RGBGF,F,$\"*++++\"!\")-% &STYLEG6#%%LINEG-F(6$7SF+7$$\"3emmm;arz@!#>$\"3%3.y1UFC%oFX7$$\"3[LL$e 9ui2%FX$\"3S0E$\\*>5x7!#=7$$\"3nmmm\"z_\"4iFX$\"33DjyhcJQ>Fjn7$$\"3[mm mT&phN)FX$\"37lrkN&>^f#Fjn7$$\"3CLLe*=)H\\5Fjn$\"3em9&><)3PKFjn7$$\"3g mm\"z/3uC\"Fjn$\"3a'*\\FO+J>QFjn7$$\"3%)***\\7LRDX\"Fjn$\"3aoUu_Vb1WFj n7$$\"3]mm\"zR'ok;Fjn$\"3+&QluJ6Y*\\Fjn7$$\"3w***\\i5`h(=Fjn$\"37)3%>R SrebFjn7$$\"3WLLL3En$4#Fjn$\"3#Gr/vm^L6'Fjn7$$\"3qmm;/RE&G#Fjn$\"3)z2c 6m@$ylFjn7$$\"3\")*****\\K]4]#Fjn$\"3gg91)eyJ2(Fjn7$$\"3$******\\PAvr# Fjn$\"3Jeb.k3SPvFjn7$$\"3)******\\nHi#HFjn$\"315uCQmy^zFjn7$$\"3jmm\"z *ev:JFjn$\"3GPV)\\lE&)H)Fjn7$$\"3?LLL347TLFjn$\"3U!)pl,3Ys')Fjn7$$\"3, LLLLY.KNFjn$\"3?ReX^FIb*)Fjn7$$\"3w***\\7o7Tv$Fjn$\"3xCo`B?tV#*Fjn7$$ \"3'GLLLQ*o]RFjn$\"3MA\"*H%*[bh%*Fjn7$$\"3A++D\"=lj;%Fjn$\"37MQc!38!f' *Fjn7$$\"31++vV&R
Y2aFjn$\"38Ta,b;==**Fjn7$$\"39mm;zXu9cFjn$\"3KH9byt39)*Fjn7$$\"3l***
***\\y))GeFjn$\"3Cg?.#[jGm*Fjn7$$\"3'*)***\\i_QQgFjn$\"3[;[BH*4EZ*Fjn7
$$\"3@***\\7y%3TiFjn$\"3I/x\\msZ\\#*Fjn7$$\"35****\\P![hY'Fjn$\"3or<>P
>%y&*)Fjn7$$\"3kKLL$Qx$omFjn$\"3=(y2)*flvl)Fjn7$$\"3!)*****\\P+V)oFjn$
\"3O(fb)4!G%)H)Fjn7$$\"3?mm\"zpe*zqFjn$\"3;3LRnG)*RzFjn7$$\"3%)*****\\
#\\'QH(Fjn$\"3mxh\")=G%Q^(Fjn7$$\"3GKLe9S8&\\(Fjn$\"3!Q-Ps/p=3(Fjn7$$
\"3R***\\i?=bq(Fjn$\"3%[u6(H[5+mFjn7$$\"3\"HLL$3s?6zFjn$\"3\"f39`W775'
Fjn7$$\"3a***\\7`Wl7)Fjn$\"3%o.si9n;b&Fjn7$$\"3#pmmm'*RRL)Fjn$\"3=grZU
%\\$)*\\Fjn7$$\"3Qmm;a<.Y&)Fjn$\"3)yb&GQOe5WFjn7$$\"3=LLe9tOc()Fjn$\"3
jF4MZeM3QFjn7$$\"3u******\\Qk\\*)Fjn$\"3e*\\4grK-C$Fjn7$$\"3CLL$3dg6<*
Fjn$\"3Ol0h>4buDFjn7$$\"3ImmmmxGp$*Fjn$\"3W4aoh2]o>Fjn7$$\"3A++D\"oK0e
*Fjn$\"3%p_.9l%)RJ\"Fjn7$$\"3A++v=5s#y*Fjn$\"3e`LKC3s?oFX7$$\"\"\"F-$
\"3Z_t9*zYYA\"!#L-FH6&FJFDF,F,-%&TITLEG6#Q$t=06\"-%+AXESLABELSG6$Q\"xF
i]lQ!Fi]l-%%VIEWG6$;F,F^]lFb^l7'-F(6%7(F+7$F/$\"+#e#GbZF17$F5$\"+W)3Up
(F17$F:$\"+V)3Up(F17$F?Fh^lFCFGFN-F(6$7SF+7$FV$\"3R'*3#3iMnh&FX7$Ffn$
\"3?b\"*ewIL[5Fjn7$F\\o$\"35%*pB\"p-6f\"Fjn7$Fao$\"3%)*pmZW_-8#Fjn7$Ff
o$\"3E:3(eTCsl#Fjn7$F[p$\"3Sb$*)38_^8$Fjn7$F`p$\"3L_!f(>E?