{VERSION 6 0 "IBM INTEL NT" "6.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 "Hyperlink" -1 17 "" 0 1 0 128 128 1 2 0 1 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 } {CSTYLE "" -1 23 "Courier" 1 10 0 0 0 0 0 0 0 0 0 0 3 0 0 1 }{CSTYLE " Green Emphasis" -1 256 "Times" 1 12 0 128 0 1 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "Maroon emphasis" -1 257 "Times" 1 12 128 0 128 1 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 } {CSTYLE "" -1 259 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 260 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 257 261 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 262 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 263 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 264 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 265 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }{CSTYLE "Purple Emphasis" -1 266 "Times" 1 12 102 0 230 1 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "Red Emphasi s" -1 267 "Times" 1 12 255 0 0 1 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" 267 268 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 257 269 "" 1 24 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 267 270 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 267 271 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" 267 272 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "Dark \+ Red Emphasis" -1 273 "Times" 1 12 128 0 0 1 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" 257 274 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" 267 275 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "Purple Emphasis " -1 276 "Times" 1 12 102 0 230 1 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "Blue E mphasis" -1 277 "Times" 0 0 0 0 255 1 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 278 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 279 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 280 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 281 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 282 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 283 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 284 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 285 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 286 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 287 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 288 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 289 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 290 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 291 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 292 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 293 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 294 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 295 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 296 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 297 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 298 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 299 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 300 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 301 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 302 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 303 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 304 "" 0 10 0 0 0 0 0 0 0 0 0 0 3 0 0 1 }{CSTYLE "" -1 305 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 306 "" 0 10 0 0 0 0 0 0 0 0 0 0 3 0 0 1 } {CSTYLE "" -1 307 "" 0 10 0 0 0 0 0 0 0 0 0 0 3 0 0 1 }{CSTYLE "" -1 308 "" 0 10 0 0 0 0 0 0 0 0 0 0 3 0 0 1 }{CSTYLE "Grey Emphasis" -1 309 "Times" 1 12 96 52 84 1 0 1 0 0 0 0 0 0 0 0 }{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 "Heading 1" -1 3 1 {CSTYLE "" -1 -1 "Ti mes" 1 18 0 0 128 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 4 3 0 3 0 2 2 0 1 } {PSTYLE "Heading 2" -1 4 1 {CSTYLE "" -1 -1 "Times" 1 14 128 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 2 1 0 1 0 2 2 0 1 }{PSTYLE "Text Output" -1 6 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 2 2 2 2 2 1 2 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 Output" -1 12 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Map le 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 "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 }{PSTYLE "Normal" -1 257 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }} {SECT 0 {PARA 3 "" 0 "" {TEXT -1 25 "Numerical Differentiation" }} {PARA 0 "" 0 "" {TEXT -1 37 "by Peter Stone, Nanaimo, B.C., Canada" }} {PARA 0 "" 0 "" {TEXT -1 19 "Version: 25.3.2007" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{SECT 1 {PARA 4 "" 0 " " {TEXT -1 5 "load " }{TEXT 0 7 "desolve" }{TEXT -1 1 " " }}{PARA 0 " " 0 "" {TEXT -1 17 "The Maple m-file " }{TEXT 309 7 "DEsol.m" }{TEXT -1 32 " is required by this worksheet. " }}{PARA 0 "" 0 "" {TEXT -1 121 "It can be read into a Maple session by a command similar to the o ne that follows, where the file path gives its location." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "read \"K:\\\\Maple/procdrs/DEsol.m \";" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 25 "Numerical differentiation" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{PARA 0 "" 0 "" {TEXT -1 71 "Suppose that we are given a functi on in the tabulated form of a set of " }{TEXT 278 1 "x" }{TEXT -1 8 " \+ values " }{XPPEDIT 18 0 "x[1],x[2],` . . . `,x[n];" "6&&%\"xG6#\"\"\"& F$6#\"\"#%(~.~.~.~G&F$6#%\"nG" }{TEXT -1 19 " and corresponding " } {TEXT 279 1 "y" }{TEXT -1 8 " values " }{XPPEDIT 18 0 "y[1],y[2],` . . . `,y[n];" "6&&%\"yG6#\"\"\"&F$6#\"\"#%(~.~.~.~G&F$6#%\"nG" }{TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 82 "Then we wish to estimate the \+ first and second derivatives at each of these points." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 69 "We concentrate on thre e consecutive points and assume that the three " }{TEXT 280 1 "x" } {TEXT -1 27 " values are equally spaced." }}{PARA 0 "" 0 "" {TEXT -1 66 "We try to estimate the1st and 2nd derivatives at the central point " }{XPPEDIT 18 0 "``(x,f(x))" "6#-%!G6$%\"xG-%\"fG6#F&" }{TEXT -1 50 " , where we use f to denote the function involved." }}{PARA 0 "" 0 "" {TEXT -1 4 "Let " }{TEXT 293 1 "h" }{TEXT -1 28 " be the spacing betwe en the " }{TEXT 292 1 "x" }{TEXT -1 45 " values, so the three points i n question are:" }}{PARA 256 "" 0 "" {TEXT -1 3 "Q( " }{XPPEDIT 18 0 " x-h,f(x-h);" "6$,&%\"xG\"\"\"%\"hG!\"\"-%\"fG6#,&F$F%F&F'" }{TEXT -1 7 " ), P( " }{XPPEDIT 18 0 "x,f(x);" "6$%\"xG-%\"fG6#F#" }{TEXT -1 10 " ) and R( " }{XPPEDIT 18 0 "x+h,f(x+h);" "6$,&%\"xG\"\"\"%\"hGF%-%\"f G6#,&F$F%F&F%" }{TEXT -1 4 " ). " }}{PARA 256 "" 0 "" {TEXT -1 1 " " } {GLPLOT2D 400 300 300 {PLOTDATA 2 "66-%'CURVESG6$7S7$$\"\"!F)$\"\"\"F) 7$$\"3)ommm\"RP&z%!#>$\"3XK+b!y\\6+\"!#<7$$\"3?ML$37.y'*)F/$\"3X,2ku5- /5F27$$\"3ymm;9O,m8!#=$\"3LV/(f'*H$45F27$$\"3!pmm\"*Hd$Q=F;$\"3\"p*pz( y(*o,\"F27$$\"3[LL3$F;$\"3UUOJm)e50\"F27$$\"35nmTv+JiOF;$\"3G#\\Ua diq1\"F27$$\"39++vLo`FTF;$\"3%[\")p:!G=&3\"F27$$\"31MLLQ(zgg%F;$\"3WC% zF&)zg5\"F27$$\"3&pmm\"*e!eF]F;$\"3:FG!H$GQE6F27$$\"3\"4++]r!4-bF;$\"3 5Y/=6]O^6F27$$\"3_+++D#\\&yfF;$\"3YS(yTD:(y6F27$$\"3]+++&G0xV'F;$\"3w% e#oY-A27F27$$\"3emmTvHmaoF;$\"3ESF`A?$\\B\"F27$$\"3EMLL)*fY]tF;$\"3KsK '>vY,F\"F27$$\"3QMLL$>w/x(F;$\"3T+eN,:!>I\"F27$$\"3Y++v)*y/f#)F;$\"31M #p4Of5M\"F27$$\"3]LLLVm^\"p)F;$\"3s,n!yI7xP\"F27$$\"39,+v)R.g;*F;$\"3$ G[H:4y+U\"F27$$\"3\"=+]i*p#yh*F;$\"3sw*[1)H^i9F27$$\"3YLL3_d#*35F2$\"3 #*f%3mel*3:F27$$\"3WL$32zPFQ#)=F27$$\"3=+](=lQIP\"F2$ \"3-f8xpvhU>F27$$\"3)****\\#oDbA9F2$\"3_Ntr/z#=,#F27$$\"3ALLLCI/n9F2$ \"3OYDiF 2$\"3Oh#f)Q+^bGF27$$\"3;+++Z;#*o>F2$\"3j'f7gAE$QHF27$$\"3gLLeD`lOCJF27$$\"3B+]()*=_@F2$\"3BsF%)e%zfJ$F27$$\"3;+++++++AF2$\"3P ++++++?MF2-%'COLOURG6&%$RGBG$\"#5!\"\"F(F(-F$6$7$7$F(F(7$FezF(-Fjz6&F \\[lF)F)F)-F$6$7$7$$\"3A+++++++SF;$\"33++++++!3\"F27$$\"3/+++++++=F2$ \"36++++++?EF2-%&COLORG6&F\\[lF)$\"\"(F_[lF)-F$6%7$7$F[\\lF(Fj[lFe[l-% *LINESTYLEG6#\"\"#-F$6%7$7$$\"33+++++++6F2F(7$Fe]l$\"3)************\\g \"F2Fe[lF]]l-F$6%7$7$F`\\lF(F_\\lFe[lF]]l-F$6&7%Fj[lFg]lF_\\l-%'SYMBOL G6#%'CIRCLEGFe[l-%&STYLEG6#%&POINTG-F$6&F`^l-Fb^l6#%(DIAMONDGFe[lFe^l- F$6&F`^l-Fb^l6#%&CROSSGFe[lFe^l-%%TEXTG6%7$$\"#AF_[l$\"#JF_[lQ)y~=~f(x )6\"-Fjz6&F\\[l$\"*++++\"!\")F(F(-Fd_l6%7$$\"$3#!\"#$\"#EF_[lQ.R(x+h,f (x+h))F\\`lFe[l-Fd_l6%7$$\"#DFg`l$\"#8F_[lQ.Q(x-h,f(x-h))F\\`lFe[l-Fd_ l6%7$$\"$G\"Fg`l$\"$b\"Fg`lQ*P(x,f(x))F\\`lFe[l-Fd_l6%7$$\"\"%F_[l$F_[ lF_[lQ$x-hF\\`lFe[l-Fd_l6%7$$\"#6F_[l$!#8Fg`lQ\"xF\\`lFe[l-Fd_l6%7$$\" #=F_[lFgblQ$x+hF\\`lFe[l-%*AXESTICKSG6$F)F)-%*AXESSTYLEG6#%%NONEG-%+AX ESLABELSG6%FiblQ!F\\`l-%%FONTG6#%(DEFAULTG-%%VIEWG6$;F(Fg_lF^dl" 1 2 0 1 10 0 2 9 1 1 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2 " "Curve 3" "Curve 4" "Curve 5" "Curve 6" "Curve 7" "Curve 8" "Curve 9 " "Curve 10" "Curve 11" "Curve 12" "Curve 13" "Curve 14" "Curve 15" "C urve 16" }}}{PARA 256 "" 0 "" {TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 27 "Fit a quadratic polynomial " }{XPPEDIT 18 0 "p(x) = a*x^2+b*x+c ;" "6#/-%\"pG6#%\"xG,(*&%\"aG\"\"\"*$F'\"\"#F+F+*&%\"bGF+F'F+F+%\"cGF+ " }{TEXT -1 22 " through these points." }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT -1 30 "The1st and 2nd derivatives of " } {XPPEDIT 18 0 "p(x)" "6#-%\"pG6#%\"xG" }{TEXT -1 7 " are p'" } {XPPEDIT 18 0 "``(x) = 2*a*x+b;" "6#/-%!G6#%\"xG,&*(\"\"#\"\"\"%\"aGF+ F'F+F+%\"bGF+" }{TEXT -1 7 " and p\"" }{XPPEDIT 18 0 "``(x) = 2*a;" "6 #/-%!G6#%\"xG*&\"\"#\"\"\"%\"aGF*" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 35 "The following three equa tions hold:" }}{PARA 256 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "PIECE WISE([a*(x-h)^2+b*(x-h)+c = f(x-h), ``],[a*x^2+b*x+c = f(x), ``],[a*(x +h)^2+b*(x+h)+c = f(x+h), ``]);" "6#-%*PIECEWISEG6%7$/,(*&%\"aG\"\"\"* $,&%\"xGF+%\"hG!\"\"\"\"#F+F+*&%\"bGF+,&F.F+F/F0F+F+%\"cGF+-%\"fG6#,&F .F+F/F0%!G7$/,(*&F*F+*$F.F1F+F+*&F3F+F.F+F+F5F+-F76#F.F:7$/,(*&F*F+*$, &F.F+F/F+F1F+F+*&F3F+,&F.F+F/F+F+F+F5F+-F76#,&F.F+F/F+F:" }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 56 "Subtracting the1st equation from the 3rd equation gives:" }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 256 "" 0 "" {TEXT -1 3 " " }{XPPEDIT 18 0 "f(x+h)-f(x-h) = 4*a*x*h+2*b*h;" "6#/,&-%\"fG6#,&%\"xG\"\"\"%\"hGF*F*-F&6#,&F)F*F+!\" \"F/,&**\"\"%F*%\"aGF*F)F*F+F*F**(\"\"#F*%\"bGF*F+F*F*" }{TEXT -1 2 ", " }}{PARA 0 "" 0 "" {TEXT -1 16 "and dividing by " }{XPPEDIT 18 0 "2* h" "6#*&\"\"#\"\"\"%\"hGF%" }{TEXT -1 7 " gives:" }}{PARA 256 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "2*a*x+b = (f(x+h)-f(x-h))/(2*h);" "6#/ ,&*(\"\"#\"\"\"%\"aGF'%\"xGF'F'%\"bGF'*&,&-%\"fG6#,&F)F'%\"hGF'F'-F.6# ,&F)F'F1!\"\"F5F'*&F&F'F1F'F5" }{TEXT -1 2 " ." }}{PARA 0 "" 0 "" {TEXT -1 68 "We could use this expression as an estimate of the1st der ivative of " }{XPPEDIT 18 0 "f(x)" "6#-%\"fG6#%\"xG" }{TEXT -1 4 " at \+ " }{TEXT 281 1 "x" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 256 "" 0 "" {TEXT 269 1 " " }{TEXT -1 4 " f '" }{XPPEDIT 18 0 "` `(x)" "6#-%!G6#%\"xG" }{TEXT -1 1 " " }{TEXT 258 1 "~" }{TEXT -1 2 " \+ " }{XPPEDIT 18 0 "(f(x+h)-f(x-h))/(2*h);" "6#*&,&-%\"fG6#,&%\"xG\"\"\" %\"hGF*F*-F&6#,&F)F*F+!\"\"F/F**&\"\"#F*F+F*F/" }{TEXT -1 3 ". " }} {PARA 256 "" 0 "" {TEXT -1 1 " " }{TEXT 268 16 "________________" } {TEXT -1 1 " " }{TEXT 261 0 "" }}{PARA 0 "" 0 "" {TEXT -1 34 "The thre e equations above give ris" }{TEXT 260 0 "" }{TEXT -1 23 "e to the two equations:" }}{PARA 256 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "PIECE WISE([a*(-2*h*x+h^2)-b*h = f(x-h)-f(x), ``],[a*(2*h*x+h^2)+b*h = f(x+h )-f(x), ``]);" "6#-%*PIECEWISEG6$7$/,&*&%\"aG\"\"\",&*(\"\"#F+%\"hGF+% \"xGF+!\"\"*$F/F.F+F+F+*&%\"bGF+F/F+F1,&-%\"fG6#,&F0F+F/F1F+-F76#F0F1% !G7$/,&*&F*F+,&*(F.F+F/F+F0F+F+*$F/F.F+F+F+*&F4F+F/F+F+,&-F76#,&F0F+F/ F+F+-F76#F0F1F<" }{TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 33 "Adding these two equations gives:" }} {PARA 256 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "2*a*h^2 = f(x+h)-2*f (x)+f(x-h);" "6#/*(\"\"#\"\"\"%\"aGF&%\"hGF%,(-%\"fG6#,&%\"xGF&F(F&F&* &F%F&-F+6#F.F&!\"\"-F+6#,&F.F&F(F2F&" }{TEXT -1 1 "," }}{PARA 0 "" 0 " " {TEXT -1 16 "and dividing by " }{XPPEDIT 18 0 "h^2;" "6#*$%\"hG\"\"# " }{TEXT -1 7 " gives:" }}{PARA 256 "" 0 "" {TEXT -1 3 " " } {XPPEDIT 18 0 "2*a = (f(x+h)-2*f(x)+f(x-h))/(h^2);" "6#/*&\"\"#\"\"\"% \"aGF&*&,(-%\"fG6#,&%\"xGF&%\"hGF&F&*&F%F&-F+6#F.F&!\"\"-F+6#,&F.F&F/F 3F&F&*$F/F%F3" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 69 "We could use this expression as an estima te of the 2nd derivative of " }{XPPEDIT 18 0 "f(x)" "6#-%\"fG6#%\"xG" }{TEXT -1 4 " at " }{TEXT 282 1 "x" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 256 "" 0 "" {TEXT -1 5 " f \"" }{XPPEDIT 18 0 " ``(x);" "6#-%!G6#%\"xG" }{TEXT -1 1 " " }{TEXT 259 1 "~" }{TEXT -1 2 " " }{XPPEDIT 18 0 "(f(x+h)-2*f(x)+f(x-h))/(h^2);" "6#*&,(-%\"fG6#,&% \"xG\"\"\"%\"hGF*F**&\"\"#F*-F&6#F)F*!\"\"-F&6#,&F)F*F+F0F*F**$F+F-F0 " }{TEXT -1 4 ". " }}{PARA 256 "" 0 "" {TEXT -1 1 " " }{TEXT 275 20 "____________________" }{TEXT -1 1 " " }{TEXT 274 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 45 "For a tabulated functi on with equally spaced " }{TEXT 283 1 "x" }{TEXT -1 8 " values " } {XPPEDIT 18 0 "x[1],x[2],` . . . `,x[n];" "6&&%\"xG6#\"\"\"&F$6#\"\"#% (~.~.~.~G&F$6#%\"nG" }{TEXT -1 20 ", and corresponding " }{TEXT 284 1 "y" }{TEXT -1 8 " values " }{XPPEDIT 18 0 "y[1],y[2],` . . . `,y[n];" "6&&%\"yG6#\"\"\"&F$6#\"\"#%(~.~.~.~G&F$6#%\"nG" }{TEXT -1 23 ", the1s t derivative at " }{XPPEDIT 18 0 "x[i];" "6#&%\"xG6#%\"iG" }{TEXT -1 24 " can be approximated by " }}{PARA 256 "" 0 "" {TEXT -1 1 " " } {XPPEDIT 18 0 "(y[i+1]-y[i-1])/(2*h);" "6#*&,&&%\"yG6#,&%\"iG\"\"\"F*F *F*&F&6#,&F)F*F*!\"\"F.F**&\"\"#F*%\"hGF*F." }{TEXT -1 2 ", " }}{PARA 0 "" 0 "" {TEXT -1 26 "and the 2nd derivative at " }{XPPEDIT 18 0 "x[i ];" "6#&%\"xG6#%\"iG" }{TEXT -1 23 " can be approximated by" }}{PARA 256 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "(y[i+1]-2*y[i]+y[i-1])/(h^ 2);" "6#*&,(&%\"yG6#,&%\"iG\"\"\"F*F*F**&\"\"#F*&F&6#F)F*!\"\"&F&6#,&F )F*F*F/F*F**$%\"hGF,F/" }{TEXT -1 2 " ," }}{PARA 0 "" 0 "" {TEXT -1 6 "where " }{TEXT 285 1 "h" }{TEXT -1 28 " is the spacing between the " }{TEXT 286 1 "x" }{TEXT -1 8 " values." }}{PARA 0 "" 0 "" {TEXT -1 111 "Note that we cannot use these expressions to obtain estimates for the derivative at the end points because the " }{TEXT 287 1 "y" } {TEXT -1 8 " values " }{XPPEDIT 18 0 "y[-1];" "6#&%\"yG6#,$\"\"\"!\"\" " }{TEXT -1 5 " and " }{XPPEDIT 18 0 "y[n+1];" "6#&%\"yG6#,&%\"nG\"\" \"F(F(" }{TEXT -1 14 " do not exist." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 266 4 "Note" }{TEXT -1 18 ": The expression \+ " }{XPPEDIT 18 0 "(f(x+h)-f(x-h))/(2*h)" "6#*&,&-%\"fG6#,&%\"xG\"\"\"% \"hGF*F*-F&6#,&F)F*F+!\"\"F/F**&\"\"#F*F+F*F/" }{TEXT -1 63 " in the \+ formula which gives a numerical approximation for f '(" }{TEXT 301 1 " x" }{TEXT -1 58 "), gives rise to the alternative definition of deriva tive:" }}{PARA 256 "" 0 "" {TEXT -1 5 " f '" }{XPPEDIT 18 0 "``(x) = \+ Limit((f(x+h)-f(x-h))/(2*h),h = 0);" "6#/-%!G6#%\"xG-%&LimitG6$*&,&-% \"fG6#,&F'\"\"\"%\"hGF1F1-F.6#,&F'F1F2!\"\"F6F1*&\"\"#F1F2F1F6/F2\"\"! " }{TEXT -1 16 " ------- (i), " }}{PARA 0 "" 0 "" {TEXT -1 53 "which can be used in place of the standard definition" }}{PARA 256 "" 0 "" {TEXT -1 5 " f '" }{XPPEDIT 18 0 "``(x) = Limit((f(x+h)-f(x))/h,h = 0 );" "6#/-%!G6#%\"xG-%&LimitG6$*&,&-%\"fG6#,&F'\"\"\"%\"hGF1F1-F.6#F'! \"\"F1F2F5/F2\"\"!" }{TEXT -1 16 " ------- (ii). " }}{PARA 0 "" 0 "" {TEXT -1 225 "The limiting process involved in (i) can be viewed as th e secant line QR in the above diagram approaching the tangent at the p oint P by way of the two points Q and R simultaneously moving along th e curve towards the point P. " }}{PARA 0 "" 0 "" {TEXT -1 68 "As an ex ample of applying (i) to obtain a derivative consider . . . " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "f \+ := x -> x^3-3*x^2;\nLimit((f(x+h)-f(x-h))/(2*h),h=0);\nvalue(%);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fGf*6#%\"xG6\"6$%)operatorG%&arrow GF(,&*$)9$\"\"$\"\"\"F1*$)F/\"\"#F1!\"$F(F(F(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%&LimitG6$,$*&,**$),&%\"xG\"\"\"%\"hGF-\"\"$F-F-*$)F+ \"\"#F-!\"$*$),&F,F-F.!\"\"F/F-F7*$)F6F2F-F/F-F.F7#F-F2/F.\"\"!" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#,&*$)%\"xG\"\"#\"\"\"\"\"$F&!\"'" }}} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 44 "For a qua dratic function f, the expression " }{XPPEDIT 18 0 "(f(x+h)-f(x-h))/( 2*h)" "6#*&,&-%\"fG6#,&%\"xG\"\"\"%\"hGF*F*-F&6#,&F)F*F+!\"\"F/F**&\" \"#F*F+F*F/" }{TEXT -1 20 " is independent of " }{TEXT 288 1 "h" } {TEXT -1 167 ", and so gives the derivative without the need for evalu ating the limit. Geometrically, the green secant line QR in the pictur e is always parallel to the tangent at P." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "f := x -> x^2-7*x+5; \n(f(x+h)-f(x-h))/(2*h);\nnormal(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#>%\"fGf*6#%\"xG6\"6$%)operatorG%&arrowGF(,(*$)9$\"\"#\"\"\"F1F/!\"( \"\"&F1F(F(F(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,$*&,(*$),&%\"xG\"\" \"%\"hGF*\"\"#F*F*F+!#9*$),&F)F*F+!\"\"F,F*F1F*F+F1#F*F," }}{PARA 11 " " 1 "" {XPPMATH 20 "6#,&%\"xG\"\"#!\"(\"\"\"" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 40 "A utility routine for comparing values: " }{TEXT 0 14 "comparewithfcn" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 64 "This utility routine is required by examp les in a later section." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 21 "comparewithfcn: usage" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 302 18 "Calling Sequence:\n" }}{PARA 0 "" 0 "" {TEXT 303 2 " " }{TEXT -1 36 " comparewithfcn( pts, f ,opti ons )" }}{PARA 0 "" 0 "" {TEXT -1 44 " comparewithfcn( pts, fx, x \+ , options ) " }{TEXT 305 1 "\n" }{TEXT -1 0 "" }}{PARA 257 "" 0 "" {TEXT -1 11 "Parameters:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT -1 0 "" }{TEXT 23 17 " pts - " }{TEXT 306 18 "a list of points " }{XPPEDIT 18 0 "[[x[1], y[1]], [x[2], y[2]] .. [x[n ], y[n]]];" "6#7$7$&%\"xG6#\"\"\"&%\"yG6#F(;7$&F&6#\"\"#&F*6#F07$&F&6# %\"nG&F*6#F6" }{TEXT 307 1 "." }}{PARA 0 "" 0 "" {TEXT -1 5 " " }} {PARA 0 "" 0 "" {TEXT 23 15 " f or fx - " }{TEXT -1 87 " a func tion of one variable or an expression fx defining a function of one va riable." }}{PARA 0 "" 0 "" {TEXT -1 6 " " }}{PARA 0 "" 0 "" {TEXT 23 17 " x - " }{TEXT 304 65 "the independent variabl e is required when the 2nd argument is an " }{TEXT -1 10 "expression" }{TEXT 308 4 " fx." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 23 3 " " }{TEXT -1 0 "" }}{PARA 257 "" 0 "" {TEXT -1 12 "Description:" }}{PARA 0 "" 0 "" {TEXT -1 14 "The procedure " }{TEXT 0 14 "comparewithfcn" } {TEXT -1 78 " tabulates the list of points vertically as the first two columns of a matrix." }}{PARA 0 "" 0 "" {TEXT -1 263 "The values of t he 2nd components are compared with the values obtained by applying th e given function to the corresponding 1st components, and listing thes e \"exact values\" in the 3rd column of the matrix. The absolute or re lative error is given in the 4th column." }}{PARA 0 "" 0 "" {TEXT -1 68 "Alternatively, the same information can be printed out line by lin e." }}{PARA 0 "" 0 "" {TEXT -1 128 "The maximum of the absolute or rel ative errors is given. When the absolute error is tabulated, the mean \+ absolute error is given." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 257 "" 0 "" {TEXT -1 8 "Options:" }}{PARA 0 "" 0 "" {TEXT -1 22 "mode=line byline/matrix" }}{PARA 0 "" 0 "" {TEXT -1 106 "With the option \"mode= linebyline\" the information is printed out line by line. This is the \+ default option." }}{PARA 0 "" 0 "" {TEXT -1 112 "With the option \"mod e=matrix\" the tabulated information is given in a matrix as a return \+ value of the procedure." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 25 "errtype=relative/absolute" }}{PARA 0 "" 0 "" {TEXT -1 152 "This option determines whether the absolute or relative error \+ is given. The default is \"errtype=relative\" in which case the relati ve error is tabulated." }}{PARA 0 "" 0 "" {TEXT -1 73 "\"errtype=RELAT IVE\" and \"errtype=REL\" are equivalent to \"errtype=relative\"" }} {PARA 0 "" 0 "" {TEXT -1 75 "\"errtype=ABSOLUTE\" and \"errtype=ABS\" are equivalent to \"errtype=absolute\"." }}{PARA 0 "" 0 "" {TEXT -1 43 "\"errtype\" can also be typed as \"errortype\"." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 276 4 "Note" }{TEXT -1 77 ": I f the true value of the function is zero, the relative error is infini te. " }}{PARA 0 "" 0 "" {TEXT -1 113 "The maximum relative error is co mputed for the remaining relative errors, ignoring any infinite relati ve errors. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 276 16 "How to activate:" }{TEXT 277 1 "\n" }{TEXT -1 154 "To make the procedure active open the subsection , place the cursor anywhere after the prompt [ > and press [Enter].\n You can then close up the subsection." }}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 30 "comparewithfcn: implementation" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "comparewithfcn" {MPLTEXT 1 0 6115 "co mparewithfcn:=\nproc(pts,f)\n local xx,y1,y2,r,i,j,n,rows,fn,x,prec, prcsn,saveDigits,\n startoptions,Options,md,t,maxerr,format1,format2 ,g,e,zero,\n proctype,ertyp,xmax,prec1,prec2,vars,averr;\n\n proct ype := false;\n if nargs<2 then\n error \"invalid arguments; th e basic syntax is 'comparewithfcn([[x1,y1],..,[xn,yn]],f(x),x)' or 'co mparewithfcn([[x1,y1],..,[xn,yn]],f)'\"\n end if;\n if not type(pt s,listlist) then\n error \"the 1st argument, %1, is invalid .. it should be a list of points\",pts;\n end if;\n if nargs>2 and not \+ type(args[3],equation) then\n x := args[3];\n if not type(x, name) then\n error \"the 3rd optional argument must be the nam e of the independent variable\"\n end if;\n startoptions := \+ 4;\n vars := indets(f,name) minus indets(f,realcons);\n if v ars<>\{x\} then \n if not type(f,algebraic) or not has(indets( f),\{Int,Sum\}) then\n error \"the 2nd argument, %1, is inv alid .. it should be an expression which depends only on the single va riable %2\",f,x;\n end if;\n end if;\n else\n if t ype(f,procedure) or (type(f,`@`) and type(\{op(f)\},set(procedure))) t hen\n proctype := true;\n startoptions := 3;\n el se\n error \"the 2nd argument, %1, is invalid .. it should be \+ a function of one variable or an expression in the one variable given \+ as a 3rd argument\",f;\n end if;\n end if; \n\n # Get the o ptions.\n md := 0;\n ertyp := 1;\n if nargs>=startoptions then\n Options :=[args[startoptions..nargs]];\n if not type(Option s,list(equation)) then\n error \"each optional argument must b e an equation\"\n end if;\n if hasoption(Options,'mode','md' ,'Options') then\n if not (md='linebyline' or md='matrix') the n\n error \"\\\"mode\\\" must be 'matrix' or 'linebyline'\" \n end if;\n if md='linebyline' then md := 0 else md : = 1 end if;\n end if;\n if hasoption(Options,'errtype','erty p','Options') or \n hasoption(Options,'errortype','ertyp','Opt ions') then\n if not member(ertyp,\{'absolute','ABSOLUTE','ABS ','relative','RELATIVE','REL'\}) then\n error \"\\\"errtype \\\" option must be 'absolute' <-> 'ABSOLUTE' <-> 'ABS' or 'relative' \+ <-> 'RELATIVE' <-> 'REL'\"\n end if;\n if member(ertyp ,\{'absolute','ABSOLUTE','ABS'\})\n then ertyp := 0 else ertyp := 1 end if;\n end if;\n if nops(Options)>0 then\n \+ error \"%1 is not a valid option for %2\",op(1,Options), procname;\n \+ end if;\n end if;\n n := nops(pts);\n prcsn := 0;\n\n # Ch eck the data and find its maximum precision.\n for i to n do\n \+ if nops(pts[i])<>2 then\n error \"the 1st argument must be a l ist of points, where each point is itself a list with two members\"\n \+ end if;\n t := pts[i,1];\n if type(t,float) and type(t, numeric) then\n prec1 := length(convert(op(1,t),string));\n \+ elif type(t,realcons) then\n prec1 := Digits;\n else\n error \"the 1st argument must be a list of points, where each point is itself a list of two real numbers\"\n end if;\n t \+ := pts[i,2];\n if type(t,float) and type(t,numeric) then\n \+ prec2 := length(convert(op(1,t),string));\n elif type(t,realcon s) then\n prec2 := Digits;\n else\n error \"the 1 st argument must be a list of points, where each point is itself a lis t of two real numbers\"\n end if;\n prec := max(prec1,prec2) ;\n if prec>prcsn then prcsn := prec end if;\n end do;\n save Digits := Digits;\n Digits := prcsn;\n prec := trunc(prcsn/2);\n \+ \n if proctype then\n fn := f;\n else\n fn := unapply(e valf(f),x);\n end if;\n rows := NULL;\n maxerr := 0;\n averr : = 0;\n zero := false;\n format1 := cat(\"%\",convert(prcsn+3,strin g),\".\",convert(prcsn-1,string),g);\n format2 := cat(\"%\",conve rt(prec+3,string),\".\",convert(prec-1,string),e);\n\n for i from 1 \+ to n do\n xx := evalf(pts[i,1]);\n y1 := evalf(pts[i,2]);\n \+ y2 := traperror(evalf(fn(xx)));\n if y2=lasterror or not typ e(y2,numeric) then\n error \"function failed to evaluate to a \+ real floating point number at %1\",xx;\n end if;\n \n i f ertyp=0 then\n r := evalf(abs(y1-y2));\n averr := av err+r;\n if r>maxerr then\n maxerr := r;\n \+ xmax := xx;\n end if;\n else\n if y2<>0 then\n r := evalf(abs(y1-y2)/abs(y2));\n if r>maxerr t hen\n maxerr := r;\n xmax := xx;\n \+ end if;\n else\n zero := true;\n r : = infinity;\n end if;\n end if;\n\n if md=0 then\n \+ printf(format1,xx);\n printf(` `);\n printf(for mat1,y1);\n printf(` function val: `);\n printf(form at1,y2);\n if ertyp=0 then\n printf(` abs err: \+ `);\n printf(format2,r);\n else\n printf (` rel err: `);\n if y2<>0 then\n printf( format2,r)\n else\n printf(infinity);\n \+ end if;\n end if;\n printf(`\\n`);\n else\n rows := rows,[xx,y1,y2,r];\n end if;\n end do;\n \n \+ print(``);\n if ertyp=0 then\n printf(` Maximum \+ absolute error: `);\n else\n printf(` Maximum rela tive error: `); \n end if;\n printf(format2,maxerr);\n\n if maxerr<>0 then\n printf(`\\n obtained for the input value: `);\n printf(format1,xmax);\n end if;\n \n if ertyp =1 and zero then\n printf(`\\n excluding any cases w here the function value is zero.`);\n end if;\n\n if ertyp=0 then \n averr := averr/n;\n print(``);\n printf(` \+ Mean absolute error: `);\n printf(format2,averr); \n end \+ if;\n\n Digits := saveDigits;\n if md=1 then\n print(``);\n \+ if ertyp=0 then\n return array([[x,\"discrete value\",\"fu nction value\",\"absolute err\"],rows]);\n else\n return \+ array([[x,\"discrete value\",\"function value\",\"relative err\"],rows ]);\n end if;\n else\n return NULL;\n end if;\nend proc: " }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT -1 34 "Examples appear in a later section" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 33 "Numerical differ entiation example" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 121 "First we set up a tabulated function by evaluating the a rctangent function at intervals of 0.1 between 0 and 2 inclusive." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "n := 20;\nh := evalf(2/n);\nxvals := [seq(h*i,i=0..n)];\nyvals := \+ map(arctan,xvals);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"nG\"#?" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"hG$\"+++++5!#5" }}{PARA 12 "" 1 " " {XPPMATH 20 "6#>%&xvalsG77$\"\"!F'$\"+++++5!#5$\"+++++?F*$\"+++++IF* $\"+++++SF*$\"+++++]F*$\"+++++gF*$\"+++++qF*$\"+++++!)F*$\"+++++!*F*$F )!\"*$\"+++++6F<$\"+++++7F<$\"+++++8F<$\"+++++9F<$\"+++++:F<$\"+++++;F <$\"+++++F<$F,F<" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%&yvalsG77$\"\"!F'$\"+\\_'o'**!#6$\"+)fbR(>!#5$\"+Xzc9HF-$\"+rP 10QF-$\"+!4wkj%F-$\"+.]>/aF-$\"+W'fs5'F-$\"+A%4uu'F-$\"+=5:GtF-$\"+M;) R&yF-$\"+nE\")H$)F-$\"+10eg()F-$\"+1q+^\"*F-$\"+3%oa]*F-$\"+Ks$z#)*F-$ \"+6q>75!\"*$\"+gA2R5FJ$\"+Aypj5FJ$\"+)R=j3\"FJ$\"+=([r5\"FJ" }}} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 40 "Now we co mpute numerical approximations " }{XPPEDIT 18 0 "d[i];" "6#&%\"dG6#%\" iG" }{TEXT -1 9 " for the " }{TEXT 266 16 "first derivative" }{TEXT -1 65 " at all points, except for the end points, by using the formula " }{XPPEDIT 18 0 "d[i] = (y[i+1]-y[i-1])/(2*h);" "6#/&%\"dG6#%\"iG*& ,&&%\"yG6#,&F'\"\"\"F.F.F.&F+6#,&F'F.F.!\"\"F2F.*&\"\"#F.%\"hGF.F2" } {TEXT -1 6 " for " }{TEXT 289 1 "i" }{TEXT -1 11 " from 2 to " } {TEXT 290 1 "n" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 12 "The com mand " }{TEXT 0 3 "zip" }{TEXT -1 42 " can be used to construct a list of points" }{XPPEDIT 18 0 "``(x[i],d[i]);" "6#-%!G6$&%\"xG6#%\"iG&%\" dG6#F)" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 128 "dvals1 := [seq((yvals[i+1]-yvals[i -1])/(2*h),i=2..n)]:\nxvals1 := [seq(h*i,i=1..n-1)]:\ndpts1 := zip((x, y)->[x,y],xvals1,dvals1);\n" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%&dpts 1G757$$\"+++++5!#5$\"+!*zxp)*F)7$$\"+++++?F)$\"++rS*e*F)7$$\"+++++IF)$ \"+l3ab\"*F)7$$\"+++++SF)$\"+D2a4')F)7$$\"+++++]F)$\"+ghl&*zF)7$$\"+++ ++gF)$\"+qx\"RN(F)7$$\"+++++qF)$\"+&4sgr'F)7$$\"+++++!)F)$\"+qoX/hF)7$ $\"+++++!*F)$\"+g5'G`&F)7$$F(!\"*$\"+X#3$3]F)7$$\"+++++6FV$\"+gV*H`%F) 7$$\"+++++7FV$\"+&prf5%F)7$$\"+++++8FV$\"+5&RWs$F)7$$\"+++++9FV$\"+I6l %Q$F)7$$\"+++++:FV$\"+5&3D3$F)7$$\"+++++;FV$\"+So#R\"GF)7$$\"+++++FV$\"++[as@F)" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 140 "The numerical \+ approximations for the first derivative can then be compared with the \+ values of the analytical formula for the derivative of " }{XPPEDIT 18 0 "f(x) = arctan(x);" "6#/-%\"fG6#%\"xG-%'arctanG6#F'" }{TEXT -1 14 ", namely, f '" }{XPPEDIT 18 0 "``(x) = 1/(1+x^2);" "6#/-%!G6#%\"x G*&\"\"\"F),&F)F)*$F'\"\"#F)!\"\"" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "diff(arctan( x),x);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&\"\"\"F$,&F$F$*$)%\"xG\"\" #F$F$!\"\"" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 27 "Make sure that the routine " }{TEXT 0 14 "comparewithfcn" } {TEXT -1 5 " . . " }{HYPERLNK 17 "comparewithfcn" 1 "" "comparewithfcn " }{TEXT -1 46 " is active before evaluating the next command." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "comparewithfcn(dpts1,1/(1+x^2),x);" }}{PARA 6 "" 1 "" {TEXT -1 81 " .1 .986977799 function val: .99009901 rel err : 3.1524e-03" }}{PARA 6 "" 1 "" {TEXT -1 81 " .2 .9589407 1 function val: .961538462 rel err: 2.7017e-03" }}{PARA 6 " " 1 "" {TEXT -1 81 " .3 .915554087 function val: .91 7431193 rel err: 2.0460e-03" }}{PARA 6 "" 1 "" {TEXT -1 81 " .4 \+ .860954073 function val: .862068966 rel err: 1.293 3e-03" }}{PARA 6 "" 1 "" {TEXT -1 81 " .5 .799565616 fu nction val: .8 rel err: 5.4298e-04" }}{PARA 6 "" 1 "" {TEXT -1 81 " .6 .735391777 function val: .735294118 rel err: 1.3282e-04" }}{PARA 6 "" 1 "" {TEXT -1 81 " .7 \+ .67160721 function val: .67114094 rel err: 6.9474e-04" }}{PARA 6 "" 1 "" {TEXT -1 81 " .8 .610445687 function \+ val: .609756098 rel err: 1.1309e-03" }}{PARA 6 "" 1 "" {TEXT -1 81 " .9 .553286106 function val: .552486188 r el err: 1.4479e-03" }}{PARA 6 "" 1 "" {TEXT -1 81 " 1 .5 00830825 function val: .5 rel err: 1.6616e-03" }} {PARA 6 "" 1 "" {TEXT -1 81 " 1.1 .453299436 function va l: .452488688 rel err: 1.7918e-03" }}{PARA 6 "" 1 "" {TEXT -1 81 " 1.2 .41059717 function val: .409836066 rel \+ err: 1.8571e-03" }}{PARA 6 "" 1 "" {TEXT -1 81 " 1.3 .3724 43951 function val: .371747212 rel err: 1.8742e-03" }}{PARA 6 "" 1 "" {TEXT -1 81 " 1.4 .338465113 function val: \+ .337837838 rel err: 1.8567e-03" }}{PARA 6 "" 1 "" {TEXT -1 81 " 1 .5 .308250851 function val: .307692308 rel err: 1. 8153e-03" }}{PARA 6 "" 1 "" {TEXT -1 81 " 1.6 .281392684 \+ function val: .280898876 rel err: 1.7580e-03" }}{PARA 6 "" 1 " " {TEXT -1 81 " 1.7 .257504055 function val: .2570694 09 rel err: 1.6908e-03" }}{PARA 6 "" 1 "" {TEXT -1 81 " 1.8 \+ .23623069 function val: .235849057 rel err: 1.6181e-03 " }}{PARA 6 "" 1 "" {TEXT -1 81 " 1.9 .21725448 functio n val: .21691974 rel err: 1.5432e-03" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%!G" }}{PARA 6 "" 1 "" {TEXT -1 48 " Maxim um relative error: 3.1524e-03" }}{PARA 6 "" 1 "" {TEXT -1 57 " \+ obtained for the input value: .1 " }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 120 "plot([1/(1+ x^2),dpts1,dpts1],x=0..2,color=[red,green,blue],\n style=[line,line, point],thickness=[1,2,1],symbol=circle);" }}{PARA 13 "" 1 "" {GLPLOT2D 360 270 270 {PLOTDATA 2 "6(-%'CURVESG6&7S7$$\"\"!F)$\"\"\"F) 7$$\"39LLLL3VfV!#>$\"3%Q#G#>TJ5)**!#=7$$\"3'pmm;H[D:)F/$\"3-[%=myuR$** F27$$\"3LLLLe0$=C\"F2$\"3]))Rbtx7[)*F27$$\"3ILLL3RBr;F2$\"3\"4R@dt'GG( *F27$$\"3Ymm;zjf)4#F2$\"3+\\Yy'Gn\"y&*F27$$\"3=LL$e4;[\\#F2$\"3T^Fwp)e ST*F27$$\"3p****\\i'y]!HF2$\"39%y(>hMt@#*F27$$\"3,LL$ezs$HLF2$\"3M[UVF z8-!*F27$$\"3_****\\7iI_PF2$\"3o$fy>i$zl()F27$$\"3#pmmm@Xt=%F2$\"3/B** f%\\'=3&)F27$$\"3QLLL3y_qXF2$\"3k?FC\\;+s#)F27$$\"3i******\\1!>+&F2$\" 3cfD!y`$y)*zF27$$\"3()******\\Z/NaF2$\"3xF27$$\"3'*******\\$fC &eF2$\"3;nOlF&=([uF27$$\"3ELL$ez6:B'F2$\"3g\\xBcQ'H?(F27$$\"3Smmm;=C#o 'F2$\"3%RCS(oi78pF27$$\"3-mmmm#pS1(F2$\"31:+Y_i1rmF27$$\"3]****\\i`A3v F2$\"3%*>!QybZ\\R'F27$$\"3slmmm(y8!zF2$\"3))=B1v/VchF27$$\"3V++]i.tK$) F2$\"33yROq$*)>!fF27$$\"39++](3zMu)F2$\"3[0@F#Rytm&F27$$\"3#pmm;H_?<*F 2$\"3y70A([Z5V&F27$$\"3emm;zihl&*F2$\"3Zz@(GW/>A&F27$$\"39LLL3#G,***F2 $\"3$H\"*Q@LQ\\+&F27$$\"3\"p>$F27$$\"3Ymm\"H!o-*\\\"Fcs$\"3s!HESx)ozIF27$$\"3))*** \\7k.6a\"Fcs$\"3mk3w#eiH'HF27$$\"3emmmT9C#e\"Fcs$\"3-k(z9O)HaGF27$$\"3 \"****\\i!*3`i\"Fcs$\"3iuIV&zBgu#F27$$\"3QLLL$*zym;Fcs$\"3O@x6oaxYEF27 $$\"3GLL$3N1#4Fcs$\"3jh0eH klS@F27$$\"3/++v.Uac>Fcs$\"3Mw%pb0B72#F27$$\"\"#F)$\"35+++++++?F2-%'CO LOURG6&%$RGBG$\"*++++\"!\")F(F(-%&STYLEG6#%%LINEG-%*THICKNESSG6#F+-F$6 &757$$\"3/+++++++5F2$\"3W+++!*zxp)*F27$Fgz$\"3G++++rS*e*F27$$\"3))**** **********HF2$\"3I+++l3ab\"*F27$$\"3A+++++++SF2$\"3,+++D2a4')F27$$\"3+ +++++++]F2$\"3y******fhl&*zF27$$\"3w**************fF2$\"3C+++qx\"RN(F2 7$$\"3a**************pF2$\"3p*****\\4sgr'F27$$\"3U+++++++!)F2$\"3:+++q oX/hF27$$\"3A+++++++!*F2$\"3b+++g5'G`&F27$F*$\"3\\+++X#3$3]F27$$\"33++ +++++6Fcs$\"3++++gV*H`%F27$$\"3%**************>\"Fcs$\"3D+++&prf5%F27$ $\"3/+++++++8Fcs$\"3'*******4&RWs$F27$$\"3!**************R\"Fcs$\"3%)* *****H6l%Q$F27$$\"3++++++++:Fcs$\"3#*******4&3D3$F27$$\"33+++++++;Fcs$ \"3/+++So#R\"GF27$$\"3%**************p\"Fcs$\"35+++]0/vDF27$$\"3/+++++ ++=Fcs$\"3%*********oIiBF27$$\"3!***************=Fcs$\"3+++++[as@F2-Fj z6&F\\[lF(F][lF(F`[l-Fe[l6#Ffz-F$6&Fi[l-Fjz6&F\\[lF(F(F][l-Fa[l6#%&POI NTGFd[l-%'SYMBOLG6#%'CIRCLEG-%+AXESLABELSG6$Q\"x6\"Q!Fhbl-%%VIEWG6$;F( Fez%(DEFAULTG" 1 2 4 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" "Curve 3" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 40 "Now we compute numerical approximations \+ " }{XPPEDIT 18 0 "d2[i]" "6#&%#d2G6#%\"iG" }{TEXT -1 9 " for the " } {TEXT 266 17 "second derivative" }{TEXT -1 13 " at the same " }{TEXT 291 1 "x" }{TEXT -1 30 " values by using the formula " }{XPPEDIT 18 0 "d2[i] = (y[i+1]-2*y[i]+y[i-1])/(h^2);" "6#/&%#d2G6#%\"iG*&,(&%\"yG6 #,&F'\"\"\"F.F.F.*&\"\"#F.&F+6#F'F.!\"\"&F+6#,&F'F.F.F3F.F.*$%\"hGF0F3 " }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 146 "hs := h*h;\ndvals2 := [seq((yvals[i+1]-2*yval s[i]+yvals[i-1])/hs,i=2..n)]:\nxvals2 := [seq(h*i,i=1..n-1)]:\ndpts2 : = zip((x,y)->[x,y],xvals2,dvals2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# >%#hsG$\"+++++5!#6" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%&dpts2G757$$\" +++++5!#5$!++_uT>F)7$$\"+++++?F)$!+5EnlOF)7$$\"+++++IF)$!++@l6]F)7$$\" +++++SF)$!++2N3fF)7$$\"+++++]F)$!++1MpjF)7$$\"+++++gF)$!++wUlkF)7$$\"+ ++++qF)$!++l[\"H'F)7$$\"+++++!)F)$!++y\"3%fF)7$$\"+++++!*F)$!++%)4\"\\ &F)7$$F(!\"*$!++&e***\\F)7$$\"+++++6FV$!++!>j]%F)7$$\"+++++7FV$!++P8MS F)7$$\"+++++8FV$!++'4lf$F)7$$\"+++++9FV$!++#e#*>$F)7$$\"+++++:FV$!++Uf VGF)7$$\"+++++;FV$!++)Q!GDF)7$$\"+++++FV$!++gD!z\"F)" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "Diff(arctan(x),x$2);\nvalue( %);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%%DiffG6$-%'arctanG6#%\"xG-%\" $G6$F)\"\"#" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,$*&,&\"\"\"F&*$)%\"xG \"\"#F&F&!\"#F)F&F+" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT -1 141 "The numerical approximations for the 2nd derivative ca n then be compared with the values of the analytical formula for the 2 nd derivative of " }{XPPEDIT 18 0 "f(x) = arctan(x);" "6#/-%\"fG6#%\"x G-%'arctanG6#F'" }{TEXT -1 12 ", namely f \"" }{XPPEDIT 18 0 "``(x)=-2 *x/((1+x^2)^2)" "6#/-%!G6#%\"xG,$*(\"\"#\"\"\"F'F+*$,&F+F+*$F'F*F+F*! \"\"F/" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "comparewithfcn(dpts2,-2*x/(1+x^2)^2 ,x);" }}{PARA 6 "" 1 "" {TEXT -1 84 " .1 -.19417452 f unction val: -.1960592099 rel err: 9.6129e-03" }}{PARA 6 "" 1 " " {TEXT -1 84 " .2 -.366567261 function val: -.36982 24852 rel err: 8.8021e-03" }}{PARA 6 "" 1 "" {TEXT -1 84 " .3 \+ -.50116521 function val: -.505007996 rel err: 7.60 94e-03" }}{PARA 6 "" 1 "" {TEXT -1 84 " .4 -.59083507 \+ function val: -.594530321 rel err: 6.2154e-03" }}{PARA 6 "" 1 "" {TEXT -1 84 " .5 -.63693406 function val: -.64 \+ rel err: 4.7905e-03" }}{PARA 6 "" 1 "" {TEXT -1 84 " .6 \+ -.64654276 function val: -.6487889273 rel err: 3.4 621e-03" }}{PARA 6 "" 1 "" {TEXT -1 84 " .7 -.62914865 \+ function val: -.6306022251 rel err: 2.3051e-03" }}{PARA 6 "" 1 "" {TEXT -1 84 " .8 -.59408178 function val: -.59 48839976 rel err: 1.3485e-03" }}{PARA 6 "" 1 "" {TEXT -1 84 " .9 -.54910984 function val: -.549433778 rel err: 5 .8959e-04" }}{PARA 6 "" 1 "" {TEXT -1 84 " 1.000000000 -.49999585 \+ function val: -.5 rel err: 8.3000e-06" }}{PARA 6 " " 1 "" {TEXT -1 84 " 1.100000000 -.4506319 function val: -. 4504412277 rel err: 4.2330e-04" }}{PARA 6 "" 1 "" {TEXT -1 84 " 1 .200000000 -.40341337 function val: -.4031174415 rel err: 7.3410e-04" }}{PARA 6 "" 1 "" {TEXT -1 84 " 1.300000000 -.3596509 6 function val: -.3593095728 rel err: 9.5012e-04" }}{PARA 6 "" 1 "" {TEXT -1 84 " 1.400000000 -.31992582 function val: - .3195763331 rel err: 1.0936e-03" }}{PARA 6 "" 1 "" {TEXT -1 84 " \+ 1.500000000 -.28435942 function val: -.2840236686 rel err : 1.1821e-03" }}{PARA 6 "" 1 "" {TEXT -1 84 " 1.600000000 -.252803 88 function val: -.252493372 rel err: 1.2298e-03" }}{PARA 6 "" 1 "" {TEXT -1 84 " 1.700000000 -.2249687 function val: \+ -.2246879151 rel err: 1.2497e-03" }}{PARA 6 "" 1 "" {TEXT -1 84 " 1.800000000 -.2004986 function val: -.200249199 rel e rr: 1.2455e-03" }}{PARA 6 "" 1 "" {TEXT -1 84 " 1.900000000 -.1790 256 function val: -.1788058592 rel err: 1.2289e-03" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#%!G" }}{PARA 6 "" 1 "" {TEXT -1 48 " \+ Maximum relative error: 9.6129e-03" }}{PARA 6 "" 1 "" {TEXT -1 58 " obtained for the input value: .1 \+ " }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 125 "plot([-2*x/(1+x^2)^2,dpts2,dpts2],x=0..2,color=[red, green,blue],\n style=[line,line,point],thickness=[1,2,1],symbol=circ le);" }}{PARA 13 "" 1 "" {GLPLOT2D 360 270 270 {PLOTDATA 2 "6(-%'CURVE SG6&7fn7$$\"\"!F)F(7$$\"3emmm;arz@!#>$!33jsi88HbVF-7$$\"39LLLL3VfVF-$! 3-x*y'Qh\"eo)F-7$$\"31++]i&*)fD'F-$!3wo\"46Qh9C\"!#=7$$\"3'pmm;H[D:)F- $!3#>1))zy\\!4;F:7$$\"3-++v$pU&G5F:$!3$30T[hUU,#F:7$$\"3LLLLe0$=C\"F:$ !3jj*)p[Tz3CF:7$$\"3KLLLLA`c9F:$!3_k&4&>))G$z#F:7$$\"3ILLL3RBr;F:$!3mI *Q)GpHjJF:7$$\"3-++vV^\"\\)=F:$!3W(H*)4%>e:NF:7$$\"3Ymm;zjf)4#F:$!3q^T T?(e0&QF:7$$\"3q****\\Piq'H#F:$!3g;O$eALY9%F:7$$\"3=LL$e4;[\\#F:$!3>I] T,o.AWF:7$$\"3p****\\i'y]!HF:$!3&4olA+&F:$!30Lj l+f[+kF:7$$\"3u*******ps%=_F:$!3O:?H$e&HZkF:7$$\"3()******\\Z/NaF:$!3q @%H^.'zxkF:7$$\"3N******\\?vVcF:$!35sVbVLp#\\'F:7$$\"3'*******\\$fC&eF :$!3cMuwjxG%\\'F:7$$\"3/mm\"Hd&)>/'F:$!3-4l\"p]#)\\['F:7$$\"3ELL$ez6:B 'F:$!3OH!)f%o^hY'F:7$$\"3Smmm;=C#o'F:$!3M[$4cWiqQ'F:7$$\"3-mmmm#pS1(F: $!3kz6&Q9juG'F:7$$\"3]****\\i`A3vF:$!3X!4$RA2.ThF:7$$\"3slmmm(y8!zF:$! 3E_v%*oO]*)fF:7$$\"3V++]i.tK$)F:$!309n@$of^!eF:7$$\"39++](3zMu)F:$!3aW KC&>nmh&F:7$$\"3#pmm;H_?<*F:$!3d20$f'y#3T&F:7$$\"3emm;zihl&*F:$!3\\tzL 6#fn@&F:7$$\"39LLL3#G,***F:$!3c_s,\"*e$\\+&F:7$$\"3^g*='*RF:7$$\"3%)***\\i&p@[7F^v$!3a`cji)y]\"QF:7$$ \"3#)****\\2'HKH\"F^v$!3m&))Q0_-:i$F:7$$\"3_mmmwanL8F^v$!3YN+G\"y;YX$F :7$$\"3'******\\2goP\"F^v$!3%*)3J&eH(RG$F:7$$\"3CLLeR<*fT\"F^v$!3nYSW( eF:7$$\"3ELLL`v&Q(=F^v$!3Q^dRk#H9%=F:7$$\"30 ++DOl5;>F^v$!3QeX?Jr2cF^v$!3q#4Z)47qy;F:7$$\"\"#F)$! 3-+++++++;F:-%'COLOURG6&%$RGBG$\"*++++\"!\")F(F(-%&STYLEG6#%%LINEG-%*T HICKNESSG6#\"\"\"-F$6&757$$\"3/+++++++5F:$!3!********>X<%>F:7$$\"35+++ ++++?F:$!3y******4EnlOF:7$$\"3))**************HF:$!3G++++@l6]F:7$$\"3A +++++++SF:$!3=++++2N3fF:7$$\"3++++++++]F:$!3o*******fS$pjF:7$$\"3w**** **********fF:$!3%********fFaY'F:7$$\"3a**************pF:$!3u*******\\' [\"H'F:7$$\"3U+++++++!)F:$!3/++++y\"3%fF:7$$\"3A+++++++!*F:$!3e******* R)4\"\\&F:7$$Fb^lF)$!3=++++&e***\\F:7$$\"33+++++++6F^v$!3u*********=j] %F:7$$\"3%**************>\"F^v$!3$********pLT.%F:7$$\"3/+++++++8F^v$!3 =++++'4lf$F:7$$\"3!**************R\"F^v$!3G++++#e#*>$F:7$$\"3++++++++: F^v$!3u*******>%fVGF:7$$\"33+++++++;F^v$!3\")*******zQ!GDF:7$$\"3%**** **********p\"F^v$!3%*********po\\AF:7$$\"3/+++++++=F^v$!3**********f) \\+#F:7$$\"3!***************=F^v$!31++++gD!z\"F:-Fe]l6&Fg]lF(Fh]lF(F[^ l-F`^l6#Fa]l-F$6&Fe^l-Fe]l6&Fg]lF(F(Fh]l-F\\^l6#%&POINTGF_^l-%'SYMBOLG 6#%'CIRCLEG-%+AXESLABELSG6$Q\"x6\"Q!6\"-%%VIEWG6$;F(F`]l%(DEFAULTG" 1 2 4 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" "Curve 3" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 35 "Impro ving accuracy by extrapolation" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{PARA 0 "" 0 "" {TEXT -1 168 "There are more complicated (h igher order) formulas than those given for computing numerical approxi mations for the first and second derivatives of a tabulated function. " }}{PARA 0 "" 0 "" {TEXT -1 88 "However, there is another way of impr oving accuracy which is of a fairly general nature." }}{PARA 0 "" 0 " " {TEXT -1 57 "The idea is to compute approximations for two step size s " }{TEXT 294 1 "h" }{TEXT -1 5 " and " }{XPPEDIT 18 0 "h/2;" "6#*&% \"hG\"\"\"\"\"#!\"\"" }{TEXT -1 139 ", and use these values to perform an extrapolation so as to obtain values which are equivalent to those obtained by a higher order formula." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 16 "If the function " }{XPPEDIT 18 0 "f(x) " "6#-%\"fG6#%\"xG" }{TEXT -1 34 " has derivatives of all orders at " }{TEXT 295 1 "x" }{TEXT -1 45 ", then we have the Taylor series expans ions: " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 256 "" 0 "" {TEXT -1 1 " " }{XPPEDIT 18 0 "f(x+h) = f(x)+``;" "6#/-%\"fG6#,&%\"xG\"\"\"%\"h GF),&-F%6#F(F)%!GF)" }{TEXT -1 3 "f '" }{XPPEDIT 18 0 "``(x)*h+``;" "6 #,&*&-%!G6#%\"xG\"\"\"%\"hGF)F)F&F)" }{TEXT -1 4 "f ''" }{XPPEDIT 18 0 "``(x);" "6#-%!G6#%\"xG" }{TEXT -1 1 " " }{XPPEDIT 18 0 "h^2/2!+``; " "6#,&*&%\"hG\"\"#-%*factorialG6#F&!\"\"\"\"\"%!GF+" }{TEXT -1 6 "f ' ''(" }{XPPEDIT 18 0 "x;" "6#%\"xG" }{TEXT -1 2 ") " }{XPPEDIT 18 0 "h^ 3/3!;" "6#*&%\"hG\"\"$-%*factorialG6#F%!\"\"" }{TEXT -1 6 " + f" } {XPPEDIT 18 0 "`@@`(``,4);" "6#-%#@@G6$%!G\"\"%" }{XPPEDIT 18 0 "``(x) ;" "6#-%!G6#%\"xG" }{TEXT -1 1 " " }{XPPEDIT 18 0 "h^4/4!+``;" "6#,&*& %\"hG\"\"%-%*factorialG6#F&!\"\"\"\"\"%!GF+" }{TEXT -1 1 "f" } {XPPEDIT 18 0 "`@@`(``,5);" "6#-%#@@G6$%!G\"\"&" }{XPPEDIT 18 0 "``(x) ;" "6#-%!G6#%\"xG" }{TEXT -1 1 " " }{XPPEDIT 18 0 "h^5/5!+` . . . `;" "6#,&*&%\"hG\"\"&-%*factorialG6#F&!\"\"\"\"\"%(~.~.~.~GF+" }}{PARA 256 "" 0 "" {TEXT -1 1 " " }{XPPEDIT 18 0 "f(x-h) = f(x)-``;" "6#/-%\" fG6#,&%\"xG\"\"\"%\"hG!\"\",&-F%6#F(F)%!GF+" }{TEXT -1 3 "f '" } {XPPEDIT 18 0 "``(x)*h+``;" "6#,&*&-%!G6#%\"xG\"\"\"%\"hGF)F)F&F)" } {TEXT -1 4 "f ''" }{XPPEDIT 18 0 "``(x);" "6#-%!G6#%\"xG" }{TEXT -1 1 " " }{XPPEDIT 18 0 "h^2/2!-``;" "6#,&*&%\"hG\"\"#-%*factorialG6#F&!\" \"\"\"\"%!GF*" }{TEXT -1 6 "f '''(" }{XPPEDIT 18 0 "x;" "6#%\"xG" } {TEXT -1 2 ") " }{XPPEDIT 18 0 "h^3/3!;" "6#*&%\"hG\"\"$-%*factorialG6 #F%!\"\"" }{TEXT -1 6 " + f" }{XPPEDIT 18 0 "`@@`(``,4);" "6#-%#@@G6 $%!G\"\"%" }{XPPEDIT 18 0 "``(x);" "6#-%!G6#%\"xG" }{TEXT -1 1 " " } {XPPEDIT 18 0 "h^4/4!-``;" "6#,&*&%\"hG\"\"%-%*factorialG6#F&!\"\"\"\" \"%!GF*" }{TEXT -1 1 "f" }{XPPEDIT 18 0 "`@@`(``,5);" "6#-%#@@G6$%!G\" \"&" }{XPPEDIT 18 0 "``(x);" "6#-%!G6#%\"xG" }{TEXT -1 1 " " } {XPPEDIT 18 0 "h^5/5!+` . . . `;" "6#,&*&%\"hG\"\"&-%*factorialG6#F&! \"\"\"\"\"%(~.~.~.~GF+" }{TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT -1 67 "Subtracting the 2nd equation from the 1st equation and dividing by " }{XPPEDIT 18 0 "2*h" "6#*&\"\"#\"\"\"% \"hGF%" }{TEXT -1 8 " gives:" }}{PARA 256 "" 0 "" {TEXT -1 2 " " } {XPPEDIT 18 0 "(f(x+h)-f(x-h))/(2*h);" "6#*&,&-%\"fG6#,&%\"xG\"\"\"%\" hGF*F*-F&6#,&F)F*F+!\"\"F/F**&\"\"#F*F+F*F/" }{TEXT -1 7 " = f '" } {XPPEDIT 18 0 "``(x)+``;" "6#,&-%!G6#%\"xG\"\"\"F%F(" }{TEXT -1 5 "f ' ''" }{XPPEDIT 18 0 "``(x);" "6#-%!G6#%\"xG" }{TEXT -1 1 " " }{XPPEDIT 18 0 "h^2/3!+``;" "6#,&*&%\"hG\"\"#-%*factorialG6#\"\"$!\"\"\"\"\"%!GF ," }{TEXT -1 1 "f" }{XPPEDIT 18 0 "`@@`(``,5);" "6#-%#@@G6$%!G\"\"&" } {XPPEDIT 18 0 "``(x);" "6#-%!G6#%\"xG" }{TEXT -1 1 " " }{XPPEDIT 18 0 "h^4/5!+` . . . `;" "6#,&*&%\"hG\"\"%-%*factorialG6#\"\"&!\"\"\"\"\"%( ~.~.~.~GF," }{TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 10 "Write f '(" }{XPPEDIT 18 0 "x;" "6#%\"xG" }{TEXT -1 15 ") = D(f) and " }{XPPEDIT 18 0 "D[h];" "6#&%\"DG6#%\"hG" } {TEXT -1 6 "(f) = " }{XPPEDIT 18 0 "(f(x+h)-f(x-h))/(2*h);" "6#*&,&-% \"fG6#,&%\"xG\"\"\"%\"hGF*F*-F&6#,&F)F*F+!\"\"F/F**&\"\"#F*F+F*F/" } {TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 13 "Then we have " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 256 "" 0 "" {TEXT -1 10 " D(f) = " } {XPPEDIT 18 0 "D[h];" "6#&%\"DG6#%\"hG" }{TEXT -1 6 "(f) + " } {XPPEDIT 18 0 "C[1]*h^2+C[2]*h^4+` . . . `;" "6#,(*&&%\"CG6#\"\"\"F(*$ %\"hG\"\"#F(F(*&&F&6#F+F(*$F*\"\"%F(F(%(~.~.~.~GF(" }{TEXT -1 14 " -- ----- (i)," }}{PARA 0 "" 0 "" {TEXT -1 6 "where " }{XPPEDIT 18 0 "C[1] ;" "6#&%\"CG6#\"\"\"" }{TEXT -1 4 "and " }{XPPEDIT 18 0 "C[2];" "6#&% \"CG6#\"\"#" }{TEXT -1 15 " are constants." }}{PARA 0 "" 0 "" {TEXT -1 13 "Substituting " }{XPPEDIT 18 0 "2*h" "6#*&\"\"#\"\"\"%\"hGF%" } {TEXT -1 5 " for " }{TEXT 296 1 "h" }{TEXT -1 8 " gives: " }}{PARA 256 "" 0 "" {TEXT -1 10 " D(f) = " }{XPPEDIT 18 0 "D[2*h];" "6#&%\"D G6#*&\"\"#\"\"\"%\"hGF(" }{TEXT -1 6 "(f) + " }{XPPEDIT 18 0 "4*C[1]*h ^2+16*C[2]*h^4+` . . . `;" "6#,(*(\"\"%\"\"\"&%\"CG6#F&F&%\"hG\"\"#F&* (\"#;F&&F(6#F+F&F*F%F&%(~.~.~.~GF&" }{TEXT -1 15 " ------- (ii)." }} {PARA 0 "" 0 "" {TEXT -1 56 "Taking 4 times equation (i) minus equatio n (ii) we have:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 256 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "D(f) = (4*D[h](f)-D[2*h](f))/3;" "6#/- %\"DG6#%\"fG*&,&*&\"\"%\"\"\"-&F%6#%\"hG6#F'F,F,-&F%6#*&\"\"#F,F0F,6#F '!\"\"F,\"\"$F8" }{TEXT -1 18 " + terms having " }{XPPEDIT 18 0 "h^4 ;" "6#*$%\"hG\"\"%" }{TEXT -1 13 "as a factor. " }}{PARA 256 "" 0 "" {TEXT -1 2 " " }{TEXT 270 30 "______________________________" }{TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 57 "Neglecting the higher order terms we can use the formula " } {XPPEDIT 18 0 "(4*D[h](f)-D[2*h](f))/3;" "6#*&,&*&\"\"%\"\"\"-&%\"DG6# %\"hG6#%\"fGF'F'-&F*6#*&\"\"#F'F,F'6#F.!\"\"F'\"\"$F5" }{TEXT -1 78 " \+ to obtain more accurate numerical approximations for numerical deriv atives." }}{PARA 0 "" 0 "" {TEXT -1 26 "This formula is called an " } {TEXT 266 21 "extrapolation formula" }{TEXT -1 1 "." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 47 "An example of \+ applying an extrapolation formula" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{PARA 0 "" 0 "" {TEXT -1 226 "Applying the extra polation idea of the previous section to the computation numerical der ivatives of a tabulated function is a bit artificial because it relies on being able to obtain extra tabulated values for the function at " }{TEXT 297 1 "x" }{TEXT -1 177 " values in between those already consi dered. If this is possible, then maybe the derivative can be found ana lytically and the process of numerical differentiation is irrelevant. " }}{PARA 0 "" 0 "" {TEXT -1 151 "Having said this, let's take the exa mple considered previously of finding numerical approximations for the first derivative of the arctangent function." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 60 "First obtain numerical ap proximations for the derivative at " }{TEXT 298 1 "x" }{TEXT -1 69 " v alues between 0 and 2 with a spacing of 0.1, just as we did before." } }{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 136 "n := 20;\nh := evalf(2/n):\nxvals := [seq(h*i,i=0..n)];\nyvals \+ := map(arctan,xvals):\ndvalsA := [seq((yvals[i+1]-yvals[i-1])/(2*h),i= 2..n)];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"nG\"#?" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%&xvalsG77$\"\"!F'$\"+++++5!#5$\"+++++?F*$\"+++++ IF*$\"+++++SF*$\"+++++]F*$\"+++++gF*$\"+++++qF*$\"+++++!)F*$\"+++++!*F *$F)!\"*$\"+++++6F<$\"+++++7F<$\"+++++8F<$\"+++++9F<$\"+++++:F<$\"++++ +;F<$\"+++++F<$F,F<" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'dvalsAG75$\"+!*zxp)*!#5$\"++rS*e*F($\"+l3ab\"*F($\"+ D2a4')F($\"+ghl&*zF($\"+qx\"RN(F($\"+&4sgr'F($\"+qoX/hF($\"+g5'G`&F($ \"+X#3$3]F($\"+gV*H`%F($\"+&prf5%F($\"+5&RWs$F($\"+I6l%Q$F($\"+5&3D3$F ($\"+So#R\"GF($\"+]0/vDF($\"++pIiBF($\"++[as@F(" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 126 "Now double the number of steps, that is, halve the step-size, and recalculate the numerical ap proximations for the derivative." }}{PARA 0 "" 0 "" {TEXT -1 116 "(We \+ could avoid repeating the function evaluations which we already perfor med, but let's not worry about that here.)" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 180 "n0 := n; # Save t he original value of n.\nn := n + n;\nh := evalf(2/n):\nxvals := [seq( h*i,i=0..n)]:\nyvals := map(arctan,xvals):\ndvalsB := [seq((yvals[i+1] -yvals[i-1])/(2*h),i=2..n)];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#n0G \"#?" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"nG\"#S" }}{PARA 12 "" 1 " " {XPPMATH 20 "6#>%'dvalsBG7I$\"+]_'o'**!#5$\"+!>bJ*)*F($\"+I2ps(*F($ \"+]:()3'*F($\"+qM71%*F($\"+Ichp\"*F($\"+g#e\\!*)F($\"+q1\"zh)F($\"+!> BTJ)F($\"+![G*)*zF($\"+I\"*=xwF($\"+q4?`tF($\"+5kkIqF($\"+?))e7nF($\"+ !y(\\,kF($\"+SbH*4'F($\"+gfT2eF($\"+q!po_&F($\"+ghIe_F($\"+q<3-]F($\"+ I.JeZF($\"+]k\"p_%F($\"+!RywI%F($\"+]ZE+TF($\"++]E/RF($\"+5W@>PF($\"+? ShWNF($\"+qk%*zLF($\"+S#)oCKF($\"+]!>$yIF($\"+!yG.%HF($\"+5FA5GF($\"++ \\_(o#F($\"++-yrDF($\"++ibiCF($\"++SWfBF($\"++w0iAF($\"++P.q@F($\"++?. $3#F(" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 175 "Now using only the numerical derivatives, which we have been comp uted for both step sizes, apply the extrapolation formula to obtain a \+ final new list of numerical derivatives." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "dvals := [seq(evalf(( 4*dvalsB[i+i]-dvalsA[i])/3),i=1..n0-1)];" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%&dvalsG75$\"+$fZ4!**!#5$\"+(pf`h*F($\"+:sIu\"*F($\"+_1q?')F($ \"+]#>++)F($\"+P?'HN(F($\"+GxU6nF($\"+'4vv4'F($\"+S<([_&F($\"+yi++]F($ \"+![!*[_%F($\"+NCO)4%F($\"+5FZp@F(" }}}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT -1 46 "Pair up these derivatives with the as sociated " }{TEXT 299 1 "x" }{TEXT -1 120 " values to obtain a list of points, so that we can make a comparison with the values of the known analytical derivative " }{XPPEDIT 18 0 "1/(1+x^2);" "6#*&\"\"\"F$,&F$ F$*$%\"xG\"\"#F$!\"\"" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 88 "h := evalf(2/n0):\nxvals 1 := [seq(h*i,i=1..n-1)]:\ndpts := zip((x,y)->[x,y],xvals1,dvals);" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#>%%dptsG757$$\"+++++5!#5$\"+$fZ4!**F)7 $$\"+++++?F)$\"+(pf`h*F)7$$\"+++++IF)$\"+:sIu\"*F)7$$\"+++++SF)$\"+_1q ?')F)7$$\"+++++]F)$\"+]#>++)F)7$$\"+++++gF)$\"+P?'HN(F)7$$\"+++++qF)$ \"+GxU6nF)7$$\"+++++!)F)$\"+'4vv4'F)7$$\"+++++!*F)$\"+S<([_&F)7$$F(!\" *$\"+yi++]F)7$$\"+++++6FV$\"+![!*[_%F)7$$\"+++++7FV$\"+NCO)4%F)7$$\"++ +++8FV$\"+5FZFV$\"+nm>p@F)" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "comparewithfcn(dpts,1/(1+x^2),x);" }}{PARA 6 "" 1 "" {TEXT -1 81 " .1 .990094759 function \+ val: .99009901 rel err: 4.2931e-06" }}{PARA 6 "" 1 "" {TEXT -1 81 " .2 .96153597 function val: .961538462 r el err: 2.5915e-06" }}{PARA 6 "" 1 "" {TEXT -1 81 " .3 .9 17430722 function val: .917431193 rel err: 5.1361e-07" }} {PARA 6 "" 1 "" {TEXT -1 81 " .4 .862070065 function va l: .862068966 rel err: 1.2757e-06" }}{PARA 6 "" 1 "" {TEXT -1 81 " .5 .800001925 function val: .8 rel \+ err: 2.4063e-06" }}{PARA 6 "" 1 "" {TEXT -1 81 " .6 .7352 96204 function val: .735294118 rel err: 2.8371e-06" }}{PARA 6 "" 1 "" {TEXT -1 81 " .7 .671142773 function val: \+ .67114094 rel err: 2.7315e-06" }}{PARA 6 "" 1 "" {TEXT -1 81 " \+ .8 .60975751 function val: .609756098 rel err: 2. 3157e-06" }}{PARA 6 "" 1 "" {TEXT -1 81 " .9 .552487174 \+ function val: .552486188 rel err: 1.7850e-06" }}{PARA 6 "" 1 " " {TEXT -1 81 " 1 .500000628 function val: .5 \+ rel err: 1.2556e-06" }}{PARA 6 "" 1 "" {TEXT -1 81 " 1.1 \+ .452489048 function val: .452488688 rel err: 7.9604e-07 " }}{PARA 6 "" 1 "" {TEXT -1 81 " 1.2 .409836244 functio n val: .409836066 rel err: 4.3408e-07" }}{PARA 6 "" 1 "" {TEXT -1 81 " 1.3 .371747271 function val: .371747212 r el err: 1.5898e-07" }}{PARA 6 "" 1 "" {TEXT -1 81 " 1.4 .3 37837825 function val: .337837838 rel err: 3.7888e-08" }} {PARA 6 "" 1 "" {TEXT -1 81 " 1.5 .307692256 function va l: .307692308 rel err: 1.6705e-07" }}{PARA 6 "" 1 "" {TEXT -1 81 " 1.6 .2808988 function val: .280898876 rel \+ err: 2.7198e-07" }}{PARA 6 "" 1 "" {TEXT -1 81 " 1.7 .2570 69342 function val: .257069409 rel err: 2.6063e-07" }}{PARA 6 "" 1 "" {TEXT -1 81 " 1.8 .23584897 function val: \+ .235849057 rel err: 3.6718e-07" }}{PARA 6 "" 1 "" {TEXT -1 81 " 1 .9 .216919667 function val: .21691974 rel err: 3. 3653e-07" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%!G" }}{PARA 6 "" 1 "" {TEXT -1 48 " Maximum relative error: 4.2931e-06" }} {PARA 6 "" 1 "" {TEXT -1 57 " obtained for the input valu e: .1 " }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 46 "Au tomatic generation of extrapolation formulas" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{PARA 0 "" 0 "" {TEXT -1 35 "Consider again t he three equations:" }}{PARA 256 "" 0 "" {TEXT -1 10 " D(f) = " } {XPPEDIT 18 0 "D[h];" "6#&%\"DG6#%\"hG" }{TEXT -1 6 "(f) + " } {XPPEDIT 18 0 "C[1]*h^2+C[2]*h^4+C[3]*h^6+` . . . `;" "6#,**&&%\"CG6# \"\"\"F(*$%\"hG\"\"#F(F(*&&F&6#F+F(*$F*\"\"%F(F(*&&F&6#\"\"$F(*$F*\"\" 'F(F(%(~.~.~.~GF(" }{TEXT -1 23 " ---------- (i), " }}{PARA 256 "" 0 "" {TEXT -1 10 " D(f) = " }{XPPEDIT 18 0 "D[h];" "6#&%\"DG6#%\" hG" }{TEXT -1 6 "(f) + " }{XPPEDIT 18 0 "4*C[1]*h^2+16*C[2]*h^4+64*C[3 ]*h^6+` . . . `;" "6#,**(\"\"%\"\"\"&%\"CG6#F&F&%\"hG\"\"#F&*(\"#;F&&F (6#F+F&F*F%F&*(\"#kF&&F(6#\"\"$F&F*\"\"'F&%(~.~.~.~GF&" }{TEXT -1 19 " ---------- (ii), " }}{PARA 256 "" 0 "" {TEXT -1 10 " D(f) = " } {XPPEDIT 18 0 "D[h];" "6#&%\"DG6#%\"hG" }{TEXT -1 6 "(f) + " } {XPPEDIT 18 0 "16*C[1]*h^2+256*C[2]*h^4+4096*C[3]*h^6+` . . . `;" "6#, **(\"#;\"\"\"&%\"CG6#F&F&%\"hG\"\"#F&*(\"$c#F&&F(6#F+F&F*\"\"%F&*(\"%' 4%F&&F(6#\"\"$F&F*\"\"'F&%(~.~.~.~GF&" }{TEXT -1 19 " ---------- (ii) . " }}{PARA 0 "" 0 "" {TEXT -1 28 "Equations (i) and (ii) give:" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 256 "" 0 "" {TEXT -1 2 " " } {XPPEDIT 18 0 "D(f) = (4*D[h](f)-D[2*h](f))/3+K[1]*h^4+K[2]*h^6+` . . \+ . `;" "6#/-%\"DG6#%\"fG,**&,&*&\"\"%\"\"\"-&F%6#%\"hG6#F'F-F--&F%6#*& \"\"#F-F1F-6#F'!\"\"F-\"\"$F9F-*&&%\"KG6#F-F-*$F1F,F-F-*&&F=6#F7F-*$F1 \"\"'F-F-%(~.~.~.~GF-" }{TEXT -1 15 " ------- (iv)." }}{PARA 0 "" 0 " " {TEXT -1 45 "Similarly, the equations (ii) and (iii) give:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 256 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "D(f) = (4*D[2*h](f)+D[4*h](f))/3+16*K[1]*h^4+64*K[2]*h^6+` . . . `;" "6#/-%\"DG6#%\"fG,**&,&*&\"\"%\"\"\"-&F%6#*&\"\"#F-%\"hGF-6#F'F-F --&F%6#*&F,F-F3F-6#F'F-F-\"\"$!\"\"F-*(\"#;F-&%\"KG6#F-F-F3F,F-*(\"#kF -&F?6#F2F-F3\"\"'F-%(~.~.~.~GF-" }{TEXT -1 14 " ------- (v)." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 4 "The " }{XPPEDIT 18 0 "h^4" "6#*$%\"hG\"\"%" } {TEXT -1 81 " terms can be eliminated by subtracting equation (v) from 16 times equation (iv)." }}{PARA 0 "" 0 "" {TEXT -1 48 "We then divid e by 15 to obtain a formula for D( " }{TEXT 262 1 "f" }{TEXT -1 3 " ). " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 12 "Denot ing D( " }{TEXT 265 1 "f" }{TEXT -1 6 " ) by " }{XPPEDIT 18 0 "d[1]" " 6#&%\"dG6#\"\"\"" }{TEXT -1 6 ", D(2 " }{TEXT 264 1 "f" }{TEXT -1 6 " \+ ) by " }{XPPEDIT 18 0 "d[2]" "6#&%\"dG6#\"\"#" }{TEXT -1 10 " and D( 4 " }{TEXT 263 1 "f" }{TEXT -1 6 " ) by " }{XPPEDIT 18 0 "d[4]" "6#&%\" dG6#\"\"%" }{TEXT -1 9 ", we have" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "(16*(4*d[1]-d[2])/3-(4*d[2]- d[4])/3)/15;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(&%\"dG6#\"\"\"#\"#k \"#X*&#\"\"%\"\"*F'&F%6#\"\"#F'!\"\"*&#F'F*F'&F%6#F-F'F'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 38 "This gives the extrapolation formula: \+ " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 256 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "D(f) = (64*D[h](f)-20*D[2*h](f)+D[4*h](f))/45;" "6#/-% \"DG6#%\"fG*&,(*&\"#k\"\"\"-&F%6#%\"hG6#F'F,F,*&\"#?F,-&F%6#*&\"\"#F,F 0F,6#F'F,!\"\"-&F%6#*&\"\"%F,F0F,6#F'F,F,\"#XF:" }{TEXT -1 18 " + te rms having " }{XPPEDIT 18 0 "h^6;" "6#*$%\"hG\"\"'" }{TEXT -1 14 " as \+ a factor. " }}{PARA 256 "" 0 "" {TEXT -1 1 " " }{TEXT 272 37 "________ _____________________________" }{TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 77 "The following procedure a utomates the construction of extrapolation formulas." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 280 "extrap := proc(n)\n local dd,d,i,j;\n dd := array(1 .. n,1 .. n,[]);\n fo r i from 1 to n do\n dd[i,1] := d[2^(n-i)] end do:\n for j \+ from 2 to n do for i from j to n do\n dd[i,j] := (4^(j-1)*dd[i ,j-1]-dd[i-1,j-1])/(4^(j-1)-1)\n end do;\n end do; \nend proc: " }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "extrap(4);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,*&%\"d G6#\"\"\"#\"%'4%\"%NG*&#\"#k\"$N\"F'&F%6#\"\"#F'!\"\"*&#\"\"%F.F'&F%6# F5F'F'*&#F'F*F'&F%6#\"\")F'F2" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 38 "This gives the extrapolation formula: " } }{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 256 "" 0 "" {TEXT -1 2 " " } {XPPEDIT 18 0 "D(f) = (4096*D[h](f)-1344*D[2*h](f)+84*D[4*h](f)-D[8*h] (f))/2835;" "6#/-%\"DG6#%\"fG*&,**&\"%'4%\"\"\"-&F%6#%\"hG6#F'F,F,*&\" %W8F,-&F%6#*&\"\"#F,F0F,6#F'F,!\"\"*&\"#%)F,-&F%6#*&\"\"%F,F0F,6#F'F,F ,-&F%6#*&\"\")F,F0F,6#F'F:F,\"%NGF:" }{TEXT -1 18 " + terms having \+ " }{XPPEDIT 18 0 "h^8;" "6#*$%\"hG\"\")" }{TEXT -1 13 "as a factor. " }}{PARA 256 "" 0 "" {TEXT -1 2 " " }{TEXT 271 47 "___________________ ____________________________" }{TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 5 "Tasks" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{SECT 1 {PARA 4 "" 0 " " {TEXT -1 2 "Q1" }}{PARA 0 "" 0 "" {TEXT -1 26 "(a) Tabulate the func tion " }{XPPEDIT 18 0 "f(x) = ln(x+1)" "6#/-%\"fG6#%\"xG-%#lnG6#,&F'\" \"\"F,F," }{TEXT -1 23 " at 21 equally spaced " }{TEXT 300 1 "x" } {TEXT -1 31 " values between 0 and 2. " }}{PARA 0 "" 0 "" {TEXT -1 130 "(b) Compute numerical approximations for the first and second \+ derivatives at all points except for the end points of the interval." }}{PARA 0 "" 0 "" {TEXT -1 183 "(c) Compare the numerical approximatio ns for the 1st and 2nd derivatives with the values of the analytical e xpressions for the 1st and 2nd derivatives both in a table and graphic ally." }}{PARA 0 "" 0 "" {TEXT -1 43 "________________________________ ___________" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" } }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 43 "___________________________________________" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{SECT 1 {PARA 4 "" 0 " " {TEXT -1 2 "Q2" }}{PARA 0 "" 0 "" {TEXT -1 94 "Use an example to che ck that the extrapolation formula derived in connection with the formu la " }{XPPEDIT 18 0 "(y[i+1]-y[i-1])/(2*h);" "6#*&,&&%\"yG6#,&%\"iG\" \"\"F*F*F*&F&6#,&F)F*F*!\"\"F.F**&\"\"#F*%\"hGF*F." }{TEXT -1 148 " gi ving numerical approximations for the first derivative, also produces \+ similar improvements in the accuracy of the values obtained by the for mula " }{XPPEDIT 18 0 "(y[i+1]-2*y[i]+y[i-1])/(h^2);" "6#*&,(&%\"yG6#, &%\"iG\"\"\"F*F*F**&\"\"#F*&F&6#F)F*!\"\"&F&6#,&F)F*F*F/F*F**$%\"hGF,F /" }{TEXT -1 59 " giving numerical approximations for the second deriv ative." }}{PARA 0 "" 0 "" {TEXT -1 37 "You could use either of the exa mples " }{XPPEDIT 18 0 "f(x) = arctan(x)" "6#/-%\"fG6#%\"xG-%'arctanG6 #F'" }{TEXT -1 4 " or " }{XPPEDIT 18 0 "f(x) = ln(1+x)" "6#/-%\"fG6#% \"xG-%#lnG6#,&\"\"\"F,F'F," }{TEXT -1 11 " for this. " }}{PARA 0 "" 0 "" {TEXT -1 43 "___________________________________________" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" } }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 43 "___________________________________________" }}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 1 ";" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{SECT 1 {PARA 0 "" 0 "" {TEXT -1 24 "Code for dr awing picture" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 663 "f := x -> 1+x^2/2:\np1 := plot(f(x),x=0..2.2,ti ckmarks=[0,0],axes=none):\np2 := plot([[0,0],[2.2,0]],color=black):\np 3 := plot([[.4,f(.4)],[1.8,f(1.8)]],color=COLOR(RGB,0,.7,0)):\np4 := p lot([[[.4,0],[.4,f(.4)]],[[1.1,0],[1.1,f(1.1)]],\n [[1.8,0],[1.8,f( 1.8)]]],color=black,linestyle=2):\np5 := plot([[[.4,f(.4)],[1.1,f(1.1) ],[1.8,f(1.8)]]$3],\n style=point,symbol=[circle,diamond,cross],col or=black):\nt1 := plots[textplot]([2.2,3.1,`y = f(x)`],color=red):\nt2 := plots[textplot]([[2.08,2.6,`R(x+h,f(x+h))`],\n[.25,1.3,`Q(x-h,f(x- h))`],[1.28,1.55,`P(x,f(x))`],\n[0.4,-0.1,`x-h`],[1.1,-0.13,`x`],[1.8, -0.13,`x+h`]],color=black):\nplots[display]([p1,p2,p3,p4,p5,t1,t2]);" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{MARK "4 0 0" 0 } {VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }