{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 "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 " Dark Red Emphasis" -1 256 "Times" 1 12 128 0 0 1 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "Green Emphasis" -1 257 "Times" 1 12 0 128 0 1 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "Maroon Emphasis" -1 258 "Times" 1 12 128 0 128 1 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 259 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 260 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 261 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 262 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 263 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 264 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 } {CSTYLE "" -1 265 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 266 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "Purple Emphasis" -1 267 "Times" 1 12 102 0 230 1 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "Red Emphasi s" -1 268 "Times" 1 12 255 0 0 1 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "Blue Em phasis" -1 269 "Times" 0 0 0 0 255 1 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 270 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 271 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "Grey Emphasis" -1 272 "Times" 1 12 96 52 84 1 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 273 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 274 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 275 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 276 "" 1 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 277 "" 1 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 278 "" 1 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 279 "" 1 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 280 "" 1 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 281 "" 1 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 282 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 283 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 284 "" 0 10 0 0 0 0 0 0 0 0 0 0 3 0 0 1 } {CSTYLE "" -1 285 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 286 "" 0 10 0 0 0 0 0 0 0 0 0 0 3 0 0 1 }{CSTYLE "" -1 287 "" 0 10 0 0 0 0 0 0 0 0 0 0 3 0 0 1 }{CSTYLE "" -1 288 "" 0 10 0 0 0 0 0 0 0 0 0 0 3 0 0 1 }{CSTYLE "" -1 289 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 290 "" 1 12 0 0 0 0 0 0 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 "Times" 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 "Maple O utput" -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 "Bullet Item" -1 15 1 {CSTYLE "" -1 -1 "Tim es" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 3 3 1 0 1 0 2 2 15 2 } {PSTYLE "Normal" -1 256 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 }{PSTYLE "Normal" -1 257 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 3 "" 0 "" {TEXT -1 47 "Adaptive Runge-Kutta methods for \+ 2nd order DE's" }}{PARA 0 "" 0 "" {TEXT -1 37 "by Peter Stone, Nanaimo , B.C., Canada" }}{PARA 0 "" 0 "" {TEXT -1 20 "Version: 10.10.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 272 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 one 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 38 "Runge-Kutta methods for 2nd order DE's" } }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{PARA 0 "" 0 "" {TEXT -1 140 "As in the case of the order 2 Taylor series method, we conside r the numerical solution of a second order differential equation of th e form: " }}{PARA 257 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "d^2*y/(d *x^2) = F(x,y,dy/dx);" "6#/*(%\"dG\"\"#%\"yG\"\"\"*&F%F(*$%\"xGF&F(!\" \"-%\"FG6%F+F'*&%#dyGF(%#dxGF," }{TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 52 "A typical example is a li near differential equation:" }}{PARA 257 "" 0 "" {XPPEDIT 18 0 "d^2*y/ (d*x^2)+f(x);" "6#,&*(%\"dG\"\"#%\"yG\"\"\"*&F%F(*$%\"xGF&F(!\"\"F(-% \"fG6#F+F(" }{TEXT -1 1 " " }{XPPEDIT 18 0 "dy/dx+g(x)*y = k(x);" "6#/ ,&*&%#dyG\"\"\"%#dxG!\"\"F'*&-%\"gG6#%\"xGF'%\"yGF'F'-%\"kG6#F." } {TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 5 "Let " }{XPPEDIT 18 0 "dy /dx = u;" "6#/*&%#dyG\"\"\"%#dxG!\"\"%\"uG" }{TEXT -1 10 " so that " }{XPPEDIT 18 0 "d^2*y/(d*x^2) = F(x,y,u);" "6#/*(%\"dG\"\"#%\"yG\"\"\" *&F%F(*$%\"xGF&F(!\"\"-%\"FG6%F+F'%\"uG" }{TEXT -1 2 ".\n" }}{PARA 0 " " 0 "" {TEXT -1 31 "Thus we have the two equations:" }}{PARA 257 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "dy/dx = u" "6#/*&%#dyG\"\"\"%#dxG! \"\"%\"uG" }{TEXT -1 1 " " }}{PARA 257 "" 0 "" {TEXT -1 2 " " } {XPPEDIT 18 0 "du/dx = F(x,y,u)" "6#/*&%#duG\"\"\"%#dxG!\"\"-%\"FG6%% \"xG%\"yG%\"uG" }{TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 99 "This p air of equations fits into the more general scheme of a system of two \+ equations of the form: " }}{PARA 257 "" 0 "" {TEXT -1 2 " " } {XPPEDIT 18 0 "dy/dx = G(x,y,u);" "6#/*&%#dyG\"\"\"%#dxG!\"\"-%\"GG6%% \"xG%\"yG%\"uG" }{TEXT -1 1 " " }}{PARA 257 "" 0 "" {TEXT -1 2 " " } {XPPEDIT 18 0 "du/dx = F(x,y,u)" "6#/*&%#duG\"\"\"%#dxG!\"\"-%\"FG6%% \"xG%\"yG%\"uG" }{TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 9 "in whic h " }{XPPEDIT 18 0 "G(x,y,u)=u" "6#/-%\"GG6%%\"xG%\"yG%\"uGF)" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 15 "Suppose that y(" }{XPPEDIT 18 0 "x[0];" "6#&%\"xG6#\"\"!" }{TEXT -1 4 ") = " }{XPPEDIT 18 0 "y[0];" "6#&%\"yG6#\"\"!" }{TEXT -1 7 " and u(" }{XPPEDIT 18 0 "x[0];" "6#&%\" xG6#\"\"!" }{TEXT -1 4 ") = " }{XPPEDIT 18 0 "u[0];" "6#&%\"uG6#\"\"! " }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 109 "A step-by-step metho d for constructing a discrete solution involves tracking both of the d ependent variables " }{TEXT 270 1 "y" }{TEXT -1 5 " and " }{TEXT 271 1 "u" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 63 "For example, Eule r's method for 2nd order DE's takes the form: " }}{PARA 257 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "x[1] = x[0] + h" "6#/&%\"xG6#\"\"\",&& F%6#\"\"!F'%\"hGF'" }{TEXT -1 1 " " }}{PARA 257 "" 0 "" {TEXT -1 8 " \+ " }{XPPEDIT 18 0 "y[1] = y[0] + h*u[0]" "6#/&%\"yG6#\"\"\",&&F%6 #\"\"!F'*&%\"hGF'&%\"uG6#F+F'F'" }{TEXT -1 2 " " }}{PARA 257 "" 0 "" {TEXT -1 25 " " }{XPPEDIT 18 0 "u[1] = u[0] + \+ h*F(x[0],y[0],u[0])" "6#/&%\"uG6#\"\"\",&&F%6#\"\"!F'*&%\"hGF'-%\"FG6% &%\"xG6#F+&%\"yG6#F+&F%6#F+F'F'" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 76 "The mid-point Runge-Kutta order 2 method for 2nd order DE 's takes the form: " }}{PARA 257 "" 0 "" {TEXT -1 1 " " }{XPPEDIT 18 0 "x[1] = x[0] + h " "6#/&%\"xG6#\"\"\",&&F%6#\"\"!F'%\"hGF'" }{TEXT -1 1 " " }}{PARA 257 "" 0 "" {TEXT -1 5 " " }{XPPEDIT 18 0 "y[mid] = y[0]+h/2;" "6#/&%\"yG6#%$midG,&&F%6#\"\"!\"\"\"*&%\"hGF,\"\"#!\"\"F ," }{TEXT -1 1 " " }}{PARA 257 "" 0 "" {TEXT -1 28 " \+ " }{XPPEDIT 18 0 "u[mid] = u[0]+h/2;" "6#/&%\"uG6#%$midG,&&F %6#\"\"!\"\"\"*&%\"hGF,\"\"#!\"\"F," }{TEXT -1 1 " " }{XPPEDIT 18 0 "F (x[0],y[0],u[0])" "6#-%\"FG6%&%\"xG6#\"\"!&%\"yG6#F)&%\"uG6#F)" } {TEXT -1 1 " " }}{PARA 257 "" 0 "" {TEXT -1 10 " " }{XPPEDIT 18 0 "y[1] = y[0]+h*u[mid];" "6#/&%\"yG6#\"\"\",&&F%6#\"\"!F'*&%\"hGF' &%\"uG6#%$midGF'F'" }{TEXT -1 1 " " }}{PARA 257 "" 0 "" {TEXT -1 39 " \+ " }{XPPEDIT 18 0 "u[1] = u[0]+h* F(x[0]+h/2,y[mid],u[mid]);" "6#/&%\"uG6#\"\"\",&&F%6#\"\"!F'*&%\"hGF'- %\"FG6%,&&%\"xG6#F+F'*&F-F'\"\"#!\"\"F'&%\"yG6#%$midG&F%6#F;F'F'" } {TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 85 "Higher order Runge-Kutta formulas can be adapted for 2nd order DE's in a similar way." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{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 examples 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 282 18 "Calling Sequence:\n" }}{PARA 0 "" 0 "" {TEXT 283 2 " " } {TEXT -1 36 " comparewithfcn( pts, f ,options )" }}{PARA 0 "" 0 "" {TEXT -1 44 " comparewithfcn( pts, fx, x , options ) " }{TEXT 285 1 "\n" }{TEXT -1 0 "" }}{PARA 256 "" 0 "" {TEXT -1 11 "Parameters:" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 23 17 " pts - " }{TEXT 286 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 287 1 "." }}{PARA 0 "" 0 "" {TEXT -1 5 " " }}{PARA 0 "" 0 " " {TEXT 23 15 " f or fx - " }{TEXT -1 87 " a function of one va riable or an expression fx defining a function of one variable." }} {PARA 0 "" 0 "" {TEXT -1 6 " " }}{PARA 0 "" 0 "" {TEXT 23 17 " \+ x - " }{TEXT 284 65 "the independent variable is required wh en the 2nd argument is an " }{TEXT -1 10 "expression" }{TEXT 288 4 " f x." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 23 3 " " }{TEXT -1 0 "" } }{PARA 256 "" 0 "" {TEXT -1 12 "Description:" }}{PARA 0 "" 0 "" {TEXT -1 14 "The procedure " }{TEXT 0 14 "comparewithfcn" }{TEXT -1 78 " tab ulates the list of points vertically as the first two columns of a mat rix." }}{PARA 0 "" 0 "" {TEXT -1 263 "The values of the 2nd components are compared with the values obtained by applying the given function \+ to the corresponding 1st components, and listing these \"exact values \" in the 3rd column of the matrix. The absolute or relative error is \+ given in the 4th column." }}{PARA 0 "" 0 "" {TEXT -1 68 "Alternatively , the same information can be printed out line by line." }}{PARA 0 "" 0 "" {TEXT -1 128 "The maximum of the absolute or relative errors is g iven. When the absolute error is tabulated, the mean absolute error is given." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 256 "" 0 "" {TEXT -1 8 "Options:" }}{PARA 0 "" 0 "" {TEXT -1 22 "mode=linebyline/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 \"mode=matrix\" the ta bulated information is given in a matrix as a return value of the proc edure." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 25 "errtype=relative/absolute" }}{PARA 0 "" 0 "" {TEXT -1 152 "This optio n determines whether the absolute or relative error is given. The defa ult is \"errtype=relative\" in which case the relative error is tabula ted." }}{PARA 0 "" 0 "" {TEXT -1 73 "\"errtype=RELATIVE\" and \"errtyp e=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\" c an also be typed as \"errortype\"." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT 267 4 "Note" }{TEXT -1 77 ": If the true value o f the function is zero, the relative error is infinite. " }}{PARA 0 " " 0 "" {TEXT -1 113 "The maximum relative error is computed for the re maining relative errors, ignoring any infinite relative errors. " }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT 267 16 "How to activate:" }{TEXT 269 1 "\n" } {TEXT -1 154 "To make the procedure active open the subsection, place \+ the cursor anywhere after the prompt [ > and press [Enter].\nYou 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 "comparewithf cn:=\nproc(pts,f)\n local xx,y1,y2,r,i,j,n,rows,fn,x,prec,prcsn,save Digits,\n startoptions,Options,md,t,maxerr,format1,format2,g,e,zero, \n proctype,ertyp,xmax,prec1,prec2,vars,averr;\n\n proctype := fal se;\n if nargs<2 then\n error \"invalid arguments; the basic sy ntax is 'comparewithfcn([[x1,y1],..,[xn,yn]],f(x),x)' or 'comparewithf cn([[x1,y1],..,[xn,yn]],f)'\"\n end if;\n if not type(pts,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 name of the i ndependent variable\"\n end if;\n startoptions := 4;\n \+ vars := indets(f,name) minus indets(f,realcons);\n if vars<>\{x\} then \n if not type(f,algebraic) or not has(indets(f),\{Int,S um\}) then\n error \"the 2nd argument, %1, is invalid .. it should be an expression which depends only on the single variable %2 \",f,x;\n end if;\n end if;\n else\n if type(f,pro cedure) or (type(f,`@`) and type(\{op(f)\},set(procedure))) then\n \+ proctype := true;\n startoptions := 3;\n else\n \+ error \"the 2nd argument, %1, is invalid .. it should be a functio n 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 options.\n md := 0;\n ertyp := 1;\n if nargs>=startoptions then\n Opt ions :=[args[startoptions..nargs]];\n if not type(Options,list(eq uation)) then\n error \"each optional argument must be an equa tion\"\n end if;\n if hasoption(Options,'mode','md','Options ') then\n if not (md='linebyline' or md='matrix') then\n \+ error \"\\\"mode\\\" must be 'matrix' or 'linebyline'\"\n \+ end if;\n if md='linebyline' then md := 0 else md := 1 end i f;\n end if;\n if hasoption(Options,'errtype','ertyp','Optio ns') or \n hasoption(Options,'errortype','ertyp','Options') th en\n if not member(ertyp,\{'absolute','ABSOLUTE','ABS','relati ve','RELATIVE','REL'\}) then\n error \"\\\"errtype\\\" opti on must be 'absolute' <-> 'ABSOLUTE' <-> 'ABS' or 'relative' <-> 'RELA TIVE' <-> 'REL'\"\n end if;\n if member(ertyp,\{'absol ute','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 i f;\n end if;\n n := nops(pts);\n prcsn := 0;\n\n # Check the d ata and find its maximum precision.\n for i to n do\n if nops(p ts[i])<>2 then\n error \"the 1st argument must be a list of po ints, 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 t ype(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,realcons) then\n prec2 := Digits;\n else\n error \"the 1st argume nt must be a list of points, where each point is itself a list 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 saveDigits := Digits;\n Digits := prcsn;\n prec := trunc(prcsn/2);\n \n if \+ proctype then\n fn := f;\n else\n fn := unapply(evalf(f),x );\n end if;\n rows := NULL;\n maxerr := 0;\n averr := 0;\n \+ zero := false;\n format1 := cat(\"%\",convert(prcsn+3,string),\".\", convert(prcsn-1,string),g);\n format2 := cat(\"%\",convert(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 type(y2,nume ric) then\n error \"function failed to evaluate to a real floa ting point number at %1\",xx;\n end if;\n \n if ertyp=0 then\n r := evalf(abs(y1-y2));\n averr := averr+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 then\n \+ maxerr := r;\n xmax := xx;\n end i f;\n else\n zero := true;\n r := infinit y;\n end if;\n end if;\n\n if md=0 then\n pr intf(format1,xx);\n printf(` `);\n printf(format1,y1); \n printf(` function val: `);\n printf(format1,y2); \n if ertyp=0 then\n printf(` abs err: `);\n \+ printf(format2,r);\n else\n printf(` r el err: `);\n if y2<>0 then\n printf(format2, r)\n else\n printf(infinity);\n en d 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 relative err or: `); \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 z ero then\n printf(`\\n excluding any cases where the function value is zero.`);\n end if;\n\n if ertyp=0 then\n a verr := averr/n;\n print(``);\n printf(` Mean a bsolute error: `);\n printf(format2,averr); \n end if;\n\n \+ Digits := saveDigits;\n if md=1 then\n print(``);\n if er typ=0 then\n return array([[x,\"discrete value\",\"function va lue\",\"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 64 "A procedure for solving 2nd ord er DE's by a Runge-Kutta method: " }{TEXT 0 10 "desolveK2 " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }} }{SECT 1 {PARA 4 "" 0 "" {TEXT -1 16 "desolveK2: usage" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 259 18 "Call ing Sequence:\n" }}{PARA 0 "" 0 "" {TEXT 260 2 " " }{TEXT -1 28 " d esolveK2( \{de,ic\}, rng )" }}{PARA 0 "" 0 "" {TEXT -1 36 " desolv eK2( \{de,ic\}, y(x), rng )" }{TEXT 261 1 "\n" }{TEXT -1 0 "" }}{PARA 256 "" 0 "" {TEXT -1 15 "Parameters: " }}{PARA 0 "" 0 "" {TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT 23 10 " de - " }{TEXT -1 91 " a \+ 2nd order differential equation with the derivatives given in the form diff(y(x),x)," }}{PARA 0 "" 0 "" {TEXT -1 94 " \+ (if x and y are the independent and dependent variables respectively) ." }}{PARA 0 "" 0 "" {TEXT -1 58 " A typical e xample is a linear DE:" }}{PARA 0 "" 0 "" {TEXT -1 89 " \+ diff(y(x),x$2) + f(x)*diff(y(x),x) + g(x)*y(x) = \+ k(x)" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 23 10 " ic - " }{TEXT -1 38 " initial conditions of the form y(" }{XPPEDIT 18 0 "x[0];" "6#&%\"xG6#\"\"!" }{TEXT -1 4 ") = " }{XPPEDIT 18 0 "y[0];" "6#&%\"yG6#\"\"!" }{TEXT -1 8 ", D(y)(" } {XPPEDIT 18 0 "x[0];" "6#&%\"xG6#\"\"!" }{TEXT -1 3 ")= " }{XPPEDIT 18 0 "u[0];" "6#&%\"uG6#\"\"!" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 7 " " }{TEXT 23 8 "rng \+ - " }{TEXT -1 82 " a range of values containing the initial value x 0 of the dependent variable. " }}{PARA 0 "" 0 "" {TEXT -1 9 " \+ " }}{PARA 256 "" 0 "" {TEXT -1 12 "Description:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 12 "The routine " }{TEXT 0 10 "desolveK2 " }{TEXT -1 54 "gives a numerical solution to an initial value problem" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 257 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "d^2*y/(d*x^2) = F(x,y,dy/dx);" "6#/*(% \"dG\"\"#%\"yG\"\"\"*&F%F(*$%\"xGF&F(!\"\"-%\"FG6%F+F'*&%#dyGF(%#dxGF, " }{TEXT -1 23 ", y(a) = b, y '(a) = c," }}{PARA 0 "" 0 "" {TEXT -1 49 "by a Runge-Kutta method with adaptive step size." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 63 "A typical example is a linear differential equation of the form" }}{PARA 257 "" 0 "" {XPPEDIT 18 0 "d^2*y/(d*x^2)+f(x);" "6#,&*(%\"dG\"\"#%\"yG\"\"\"*&F%F( *$%\"xGF&F(!\"\"F(-%\"fG6#F+F(" }{TEXT -1 1 " " }{XPPEDIT 18 0 "dy/dx+ g(x)*y = k(x);" "6#/,&*&%#dyG\"\"\"%#dxG!\"\"F'*&-%\"gG6#%\"xGF'%\"yGF 'F'-%\"kG6#F." }{TEXT -1 24 " , y(a) = b, y '(a) = c." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 55 "Both discrete and cont inuous solutions can be obtained." }}{PARA 0 "" 0 "" {TEXT -1 97 "This solution is in the form of procedure which can be evaluated throughou t the specified range. " }}{PARA 0 "" 0 "" {TEXT -1 1 " " }}{PARA 0 " " 0 "" {TEXT -1 53 "This function can have one of the two possible for ms:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 15 "" 0 "" {TEXT -1 253 " It can be a function which performs a single Runge-Kutta step between \+ the pre-computed data points in exactly the same way that the original points were computed. \n6 new evaluations of the function F are requi red for each new function value calculated. " }}{PARA 15 "" 0 "" {TEXT -1 166 "It can use more extensive computed data so as to be able to perform what is essentially a Runge-Kutta step without the need fo r any new evaluations of the function F." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 96 "The derivative y '(x) of the solut ion y(x) can also be obtained in each of the previous formats." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 262 8 "Options: " }{TEXT -1 1 "\n" }}{PARA 0 "" 0 "" {TEXT -1 31 "method=rk45/rk56/rk6 7/rk78/rk89" }}{PARA 0 "" 0 "" {TEXT 257 12 "METHODS USED" }{TEXT -1 1 ":" }}{PARA 15 "" 0 "" {TEXT -1 127 "method=rk45, a Prince-Dormand \+ combined 4th and 5th order Runge-Kutta method ... interpolation is ava ilable with 3 extra stages" }}{PARA 15 "" 0 "" {TEXT -1 126 "method=rk 56, a Verner (2004) combined 5th and 6th order Runge-Kutta method ... interpolation is available with 4 extra stages" }}{PARA 15 "" 0 "" {TEXT -1 143 "method=rk67, an Enright (Verner formula 1990) combined \+ 6th and 7th order Runge-Kutta method ... interpolation is available wi th 6 extra stages" }}{PARA 15 "" 0 "" {TEXT -1 197 "method=rk78, a Ve rner combined 7th and 8th order Runge-Kutta method (supplied to Maple \+ by Jim Verner for dsolve's dverk78 method)\n ... interp olation is available with 8 extra stages" }}{PARA 15 "" 0 "" {TEXT -1 151 "method=rk89, a Verner \"most robust\" 16 stage, combined 8th and 9th order Runge-Kutta method ... interpolation is available with 10 o r 12 extra stages " }}{PARA 0 "" 0 "" {TEXT -1 23 "The default option \+ is \"" }{TEXT 272 11 "method=rk67" }{TEXT -1 2 "\"." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 119 "output=points/derivpts /rkstep/derivstep/step_pair/rkinterp/derivinterp/points_pair/procedure _pair/proc_pair/interp_pair" }}{PARA 15 "" 0 "" {TEXT -1 33 "With the \+ option \"output=points\", " }{TEXT 0 9 "desolveK2" }{TEXT -1 11 " retu rns a " }{TEXT 267 22 "discrete set of points" }{TEXT -1 72 " correspo nding to the steps originally computed by the adaptive process." }} {PARA 15 "" 0 "" {TEXT -1 35 "With the option \"output=derivpts\", " } {TEXT 0 9 "desolveK2" }{TEXT -1 11 " returns a " }{TEXT 267 23 "discre te sets of points" }{TEXT -1 114 " for the solution for the derivative of the solution.\n\"output=derivative_points\" is the same as \"outpu t=derivpts\"." }}{PARA 15 "" 0 "" {TEXT -1 33 "With the option \"outpu t=rkstep\", " }{TEXT 0 9 "desolveK2" }{TEXT -1 36 " returns a continuo us solution as a " }{TEXT 267 18 "numerical function" }{TEXT -1 161 " \+ which requires a number of new evaluations of the function F for each \+ new solution function value calculated.\n\"output=procedure\" is the s ame as \"output=rkstep\"." }}{PARA 15 "" 0 "" {TEXT -1 35 "With the op tion \"output=rkinterp\", " }{TEXT 0 9 "desolveK2" }{TEXT -1 27 " retu rns the solution as a " }{TEXT 267 18 "numerical function" }{TEXT -1 100 " which uses extensive pre-computed data to interpolate between th e points of the discrete solution.\n" }{TEXT 267 4 "Note" }{TEXT -1 68 ": This option is only available along with the \"method=rk45\" opt ion." }}{PARA 15 "" 0 "" {TEXT -1 36 "With the option \"output=derivst ep\", " }{TEXT 0 9 "desolveK2" }{TEXT -1 45 " returns the derivative o f the solution as a " }{TEXT 267 18 "numerical function" }{TEXT -1 110 " which requires a number of new evaluations of the function F for each new solution function value calculated." }}{PARA 15 "" 0 "" {TEXT -1 38 "With the option \"output=derivinterp\", " }{TEXT 0 9 "des olveK2" }{TEXT -1 45 " returns the derivative of the solution as a " } {TEXT 267 18 "numerical function" }{TEXT -1 135 " which uses extensive pre-computed data to interpolate between the discrete points along th e curve for the derivative of the solution.\n" }{TEXT 267 4 "Note" } {TEXT -1 68 ": This option is only available along with the \"method=r k45\" option." }}{PARA 15 "" 0 "" {TEXT -1 38 "With the option \"outpu t=points_pair\", " }{TEXT 0 9 "desolveK2" }{TEXT -1 11 " returns a " } {TEXT 267 4 "pair" }{TEXT -1 4 " of " }{TEXT 267 22 "discrete set of p oints" }{TEXT -1 101 " for both the solution and its derivative, which are computed simultaneously by the adaptive process." }}{PARA 15 "" 0 "" {TEXT -1 72 "With either of the options \"output=step_pair\" and \+ \"output=interp_pair\", " }{TEXT 0 9 "desolveK2" }{TEXT -1 11 " return s a " }{TEXT 267 4 "pair" }{TEXT -1 4 " of " }{TEXT 267 19 "numerical \+ functions" }{TEXT -1 167 " for both the solution and its derivative, w hich are constructed simultaneously.\n\"output=procedure_pair\" and \" output=proc_pair\" are equivalent to \"output=interp_pair\"." }}{PARA 0 "" 0 "" {TEXT -1 31 "The default is \"output=rkstep\"." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 6 "hmax=h" }}{PARA 0 " " 0 "" {TEXT -1 22 "The maximum step-size." }}{PARA 0 "" 0 "" {TEXT -1 76 "The default is \"hmax=0.25\" when method=rk45 and \"hmax=0.5\" \+ when method=rk78." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 60 "hmin=h\nThe minimum step-size. The default is \"hmin=min (0.5*" }{XPPEDIT 18 0 "10^(-5);" "6#)\"#5,$\"\"&!\"\"" }{TEXT -1 2 ", \+ " }{XPPEDIT 18 0 "hstart/2000;" "6#*&%'hstartG\"\"\"\"%+?!\"\"" } {TEXT -1 3 ")\"." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 8 "hstart=h" }}{PARA 0 "" 0 "" {TEXT -1 67 "The step-size for the first trial step. The default is \"hstart=0.1*" }{XPPEDIT 18 0 "1 0^ceil(-Digits/10);" "6#)\"#5-%%ceilG6#,$*&%'DigitsG\"\"\"F$!\"\"F," } {TEXT -1 2 "\"." }}{PARA 0 "" 0 "" {TEXT -1 38 "hstart must lie betwee n hmin and hmax." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 10 "maxsteps=n" }}{PARA 0 "" 0 "" {TEXT -1 189 "The maximum n umber of steps to be used. An error message results if the maximum num ber of steps is reached before reaching the end of the solution interv al. The default is \"maxsteps=2000\"." }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT -1 10 "tolerance=" }{XPPEDIT 18 0 "epsilon" "6#%(epsilonG" }{TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 166 "When th e error control option is set to \"relativeerror\", the step size is c hosen adaptively to try to ensure that the relative error for each ste p is no greater than " }{XPPEDIT 18 0 "epsilon;" "6#%(epsilonG" } {TEXT -1 34 ". Other error control options use " }{XPPEDIT 18 0 "epsil on;" "6#%(epsilonG" }{TEXT -1 106 " in an appropriate way. See \"error control\" for more information. The default is \"tolerance=10^(-Digits )\".\n" }}{PARA 0 "" 0 "" {TEXT -1 48 "errorcontrol=auto/absolute/rela tive/accumulative" }}{PARA 0 "" 0 "" {TEXT -1 37 "For the current sett ing of tolerance=" }{XPPEDIT 18 0 "epsilon" "6#%(epsilonG" }{TEXT -1 72 ", the step size is chosen to try to ensure that when \"errorcontro l\" is:" }}{PARA 15 "" 0 "" {TEXT 263 4 "auto" }{TEXT -1 8 " - \+ " }{XPPEDIT 18 0 "abs(y-y[k]) <= epsilon*max(abs(y[k]),abs(u[k]*h),tin y);" "6#1-%$absG6#,&%\"yG\"\"\"&F(6#%\"kG!\"\"*&%(epsilonGF)-%$maxG6%- F%6#&F(6#F,-F%6#*&&%\"uG6#F,F)%\"hGF)%%tinyGF)" }{TEXT -1 9 " , where \+ " }{XPPEDIT 18 0 "u[k];" "6#&%\"uG6#%\"kG" }{TEXT -1 37 " is the value of the derivative when " }{XPPEDIT 18 0 "x = x[k];" "6#/%\"xG&F$6#%\" kG" }{TEXT -1 1 "." }}{PARA 15 "" 0 "" {TEXT 266 8 "absolute" }{TEXT -1 8 " - " }{XPPEDIT 18 0 "abs(y-y[k]) <= epsilon*abs(max(y[max], tiny));" "6#1-%$absG6#,&%\"yG\"\"\"&F(6#%\"kG!\"\"*&%(epsilonGF)-F%6#- %$maxG6$&F(6#F3%%tinyGF)" }{TEXT -1 9 " , where " }{XPPEDIT 18 0 "y[ma x];" "6#&%\"yG6#%$maxG" }{TEXT -1 213 " is updated as the computation \+ progresses, with an initial estimate provided by the option \"maxvalue \" if desired.\nThis error control option would be an appropriate choi ce if the solution is oscillatory in nature.\n" }}{PARA 15 "" 0 "" {TEXT 264 8 "relative" }{TEXT -1 9 " - " }{XPPEDIT 18 0 "abs(y-y [k]) <= epsilon*max(abs(y[k]),tiny);" "6#1-%$absG6#,&%\"yG\"\"\"&F(6#% \"kG!\"\"*&%(epsilonGF)-%$maxG6$-F%6#&F(6#F,%%tinyGF)" }{TEXT -1 170 " \nThis is a general purpose choice except that problems would arise \+ if y is close to 0. If this is likely to happen it would be better to \+ use the default option \"auto\".\n" }}{PARA 15 "" 0 "" {TEXT 265 12 "a ccumulative" }{TEXT -1 8 " - " }{XPPEDIT 18 0 "abs(y-y[k]) <= eps ilon*max(abs(u[k]*h),tiny);" "6#1-%$absG6#,&%\"yG\"\"\"&F(6#%\"kG!\"\" *&%(epsilonGF)-%$maxG6$-F%6#*&&%\"uG6#F,F)%\"hGF)%%tinyGF)" }{TEXT -1 9 " , where " }{XPPEDIT 18 0 "u[k];" "6#&%\"uG6#%\"kG" }{TEXT -1 37 " \+ is the value of the derivative when " }{XPPEDIT 18 0 "x = x[k];" "6#/% \"xG&F$6#%\"kG" }{TEXT -1 94 ".\nThis is the most stringent error cont rol option, which attempts to control the global error." }}{PARA 0 "" 0 "" {TEXT -1 10 "\"tiny\" is " }{XPPEDIT 18 0 "10^(-3*Digits);" "6#) \"#5,$*&\"\"$\"\"\"%'DigitsGF(!\"\"" }{TEXT -1 60 ", and is included t o avoid the possibility of division by 0." }}{PARA 0 "" 0 "" {TEXT -1 46 "The default value of \"errorcontrol\" is \"auto\"." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 286 "In the cases \"outp ut=derivpts/derivstep/derivinterp\", the error in the derivative y '(x ) is controlled by formulas analagous to those above. \nIn the cases \+ \"output=points_pair/procedure_pair/interp_pair\", both the solution a nd the derivative must satisfy the appropriate error criterion." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 10 "maxvalue= a" }}{PARA 0 "" 0 "" {TEXT -1 239 "This is used for the maximum magnit ude of the solution in the case where the \"errorcontrol\" option has \+ been set to \"absolute\". See the option \"error control. If no value \+ is provided the maximum value is updated as the computation procedes. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 10 "maxde riv=a" }}{PARA 0 "" 0 "" {TEXT -1 259 "This is used for the maximum ma gnitude of the derivative in the case where the \"errorcontrol\" optio n has been set to \"absolute\". See the option \"error control. If no \+ value is provided the maximum value of the derivative is updated as th e computation procedes." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 146 "info=true/false\nThe option \"info=true\" allows th e progress of the procedure to be monitored by printing the result of \+ each step as it is computed." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 267 16 "How to a ctivate:" }{TEXT -1 159 "\nTo make the procedures active open the subs ections, place the cursor anywhere after the prompt [ > and press [En ter].\nYou can then close up the subsections. " }}{PARA 0 "" 0 "" {TEXT 267 4 "Note" }{TEXT -1 43 ": All six procedures must be activate d for " }{TEXT 0 9 "desolveK2" }{TEXT -1 9 " to work." }}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 25 "desolveK2: implementation" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17714 "deso lveK2 := proc() \n local ff,vars,derivs,x,yx,y,u,w,df,dff,Options, mthd,rg,\n dblrk,de,ic0,ic1,lsic,rsic,t0,x0,y0,u0,x1,y1,t1,x2,x3, \n yx2,pm1,pm2,df1,df2,df3,diffs,xx,tt,rghtprt,lftprt,\n out pt,reverse,rk45step,rk56step,rk78step,gw,gxyu,\n lft,rght,rng,sta rtopts,yy,ee,z,arg2OK,nvars,order;\n\nreverse := proc(lst::list)\n l ocal n,i;\n n := nops(lst);\n [seq(lst[n-i],i=0..n-2)];\nend proc: \n \ndblrk := proc(lft::realcons,rght::realcons,x0::realcons,\n \+ lftprc::procedure,rghtprc::procedure)\n proc(x::realcons)\n l ocal left,right,leftproc,rightproc,xx0,xx,saveDigits;\n options ` Copyright 2003 by Peter Stone`;\n \n leftproc := lftprc;\n \+ rightproc := rghtprc;\n \n saveDigits := Digits;\n Digits := max(trunc(evalhf(Digits)),Digits+5);\n\n xx0 := evalf(x0);\n \+ left := evalf(lft);\n right := evalf(rght);\n xx := eva lf(x);\n\n if xx<=right and xx>=xx0 then\n Digits := save Digits;\n return rightproc(xx);\n elif xx>=left and xx<=x x0 then\n Digits := saveDigits;\n return leftproc(xx); \n else\n error \"argument must be between %1 and %2\",le ft,right; \n end if;\n end proc;\nend proc: # of dblrk\n\n # start of main procedure desolveK2\n if nargs>0 then \n ff := a rgs[1]\n else\n error \"at least one argument must be supplied \"\n end if;\n if type(ff,\{set(equation),list(equation)\}) and no ps(ff)=3 then\n ff := map(_u -> if has(_u,D@@2) then convert(_u,d iff) else _u end if,ff);\n de := op(1,ff);\n ic0 := op(2,ff) ;\n ic1 := op(3,ff);\n if not has(de,diff) then\n de := op(2,ff);\n ic0 := op(1,ff);\n end if;\n if not \+ has(de,diff) then\n de := op(3,ff);\n ic1 := op(2,ff); \n end if;\n else\n error \"the 1st argument, %1, is inval id .. it should be a set (or list) of 3 equations\",ff;\n end if;\n \n startopts := 3;\n if nargs>1 then\n ee := args[2];\n \+ if type(ee,range) or type(ee,name=range) then\n rng := ee;\n \+ else\n arg2OK := true;\n if type(ee,function) and \+ nops(ee)=1 then\n yy := op(0,ee);\n xx := op(1,e e);\n if type(xx,name) and type(yy,name) then\n \+ startopts := 4;\n if nargs>2 then\n \+ rng := args[3];\n else\n error \"expect ing a 3rd argument\"\n end if;\n else\n \+ arg2OK := false;\n end if;\n else\n \+ arg2OK := false;\n end if;\n if not arg2OK then\n error \"the 2nd argument, %1, has incorrect form for the d ependent variable\",ee;\n end if;\n end if;\n else\n \+ error \"expecting a 2nd argument\"\n end if;\n\n mthd := 'rk67' ;\n outpt := 'rkinterp';\n Options :=[];\n if nargs>=startopts t hen\n Options:=[args[startopts..nargs]];\n if not type(Optio ns,list(equation)) then\n error \"each optional argument must \+ be an equation\"\n end if;\n if hasoption(Options,'method',' mthd','Options') then\n if not member(mthd,\{'rk45','rk56','rk 67','rk78','rk89'\}) then\n error \"\\\"method\\\" must be \+ 'rk45','rk56','rk67','rk78' or 'rk89'\"\n end if;\n end i f;\n if hasoption(Options,'output','outpt') then\n if not member(outpt,\{'points','procedure','procedure_pair','proc_pair',\n \+ 'derivative_points','derivpts','points_pair','rkstep','der ivstep',\n 'step_pair','rkinterp','derivinterp','interp_p air','endpt'\}) then\n error \"\\\"output\\\" must be 'poin ts','procedure','procedure_pair',proc_pair','derivative_points','deriv pts','points_pair','rkstep','derivstep','step_pair','rkinterp','derivi nterp','interp_pair' or 'endpt'\"\n end if;\n if outpt ='procedure' then\n outpt := 'rkinterp';\n Optio ns := remove(U_->evalb(op(1,U_)='output'),Options);\n Optio ns := [op(Options),'output'='rkinterp'];\n elif outpt='procedu re_pair' or outpt='proc_pair' then\n outpt := 'interp_pair' ;\n Options := remove(U_->evalb(op(1,U_)='output'),Options) ;\n Options := [op(Options),'output'='interp_pair'];\n \+ elif outpt='derivative_points' then\n outpt := 'derivpt s';\n Options := remove(U_->evalb(op(1,U_)='output'),Option s);\n Options := [op(Options),'output'='derivpts'];\n \+ end if;\n end if;\n end if;\n \n # Check out the derivat ives in the DE.\n derivs := indets(de,'specfunc(anything,diff)');\n \+ if derivs=\{\} then\n error \"the 1st argument, %1, is invalid \+ .. it should be a set (or list) containing a differential equation and two initial conditions\",ff;\n end if;\n nvars := nops(indets(der ivs,name));\n if nvars<>1 then\n if nvars=0 then\n erro r \"there is a problem with the independent variable occurring in the \+ derivative(s)\";\n else\n error \"there should only be on e independent variable in the differential equation\"\n end if;\n end if;\n nvars := nops(indets(derivs,anyfunc(name)));\n if nva rs<>1 then\n if nvars=0 then\n error \"there is a problem with the dependent variable occurring in the derivative(s)\"\n e lse\n error \"there should only be one dependent variable in t he differential equation\"\n end if;\n end if;\n\n order := n ops(derivs);\n if order=1 then\n error \"the differential equa tion should have order 2\" \n elif order>2 then\n error \"there are too many derivatives in the differential equation .. note that th e differential equation should have order 2\"\n end if;\n\n (df2,d f1) := selectremove(U_->has([op(U_)],diff),derivs);\n if nops(df2)<> 1 or nops(df1)<>1 then \n error \"the derivatives, %1, do not mak e sense\",derivs;\n end if; \n (df2,df1) := (op(df2),op(df1));\n\n # Get the arguments in the derivatives.\n if type(df1,function) a nd op(0,df1)=diff and nops(df1)=2 then\n yx := op(1,df1);\n \+ if not type(yx,anyfunc(name)) then\n error \"the 1st argument \+ %1, in the derivative, %2, is invalid .. it should be the 'unknown' de pendent variable\",yx,df1;\n end if; \n x := op(2,df1);\n \+ if not type(x,name) then\n error \"the 2nd argument %1, in \+ the derivative, %2, is invalid .. it should be the independent variabl e\",x,df1;\n end if; \n else\n error \"the derivative, %1, does not make sense\",df1;\n end if;\n\n if type(df2,function) an d nops(df2)=2 and op(0,df2)='diff' then\n (df3,x3) := selectremov e(has,\{op(df2)\},diff);\n if nops(df3)<>1 or nops(x3)<>1 then \n error \"the derivative, %1, does not make sense\",df2;\n \+ end if;\n (df3,x3) := (op(df3),op(x3));\n if type(df3,funct ion) and nops(df3)=2 and op(0,df3)='diff' then\n yx2 := op(1,d f3);\n if not type(yx2,anyfunc(name)) then\n error \+ \"the 1st argument %1, in the derivative, %2, is invalid .. it should \+ be the 'unknown' dependent variable\",yx2,df3;\n end if; \n \+ x2 := op(2,df2);\n if not type(x2,name) then\n \+ error \"the 2nd argument %1, in the derivative, %2, is invalid .. it should be the independent variable\",x2,df3;\n end if; \n \+ if not x2=x3 then\n error \"the 2nd arguments, %1 and \+ %2 in the derivatives %3 and %4 should be the same\",x2,x3,df2,df3;\n \+ end if;\n else\n error \"the derivative, %1, does not make sense\",df3;\n end if\n else\n error \"the deriv ative, %1, does not make sense\",df2;\n end if;\n\n # Arguments in the 2 derivatives must be the same.\n if x2<>x or yx2<>yx then\n \+ error \"the differential equation contains inconsistent arguments\" \n end if;\n\n y := op(0,yx);\n vars := indets(de,name);\n if \+ member(y,vars) then\n error \"%1 and %2 cannot both appear in the differential equation\",yx,y;\n end if;\n if op(1,yx)<>x then\n \+ error \"the derivatives do not make sense\"\n end if;\n\n # Is olate the 2nd derivative.\023\n gw := subs(yx=y,subs(diff(yx,x)=u,\n subs(diff(yx,x$2)=w,de)));\n gxyu : = expand(rhs(isolate(gw,w)));\n if indets(gxyu,'specfunc(anything,Ro otOf)')<>\{\} then\n error \"cannot isolate the 2nd derivative\" \n end if;\n \n if startopts=4 then \n if x<>xx or y<>yy th en\n error \"cannot solve the differential equation for %1\",e e;\n end if;\n end if;\n\n # Get the initial conditions.\n \+ lsic := lhs(ic0);\n if type(lsic,function) and op(0,lsic)=y and nops (lsic)=1 \n and type(op(1,lsic),algebraic) th en\n x0 := op(1,lsic);\n if not type(x0,realcons) or has(x0, infinity) then\n error \"initial condition value of independen t variable must be a finite real constant\"\n end if;\n y0 : = rhs(ic0);\n t0 := 0; # flag for y coord or derivative\n if not type(y0,realcons) or has(y0,infinity) then\n error \"init ial condition value of dependent variable must be a finite real consta nt\"\n end if;\n elif type(lsic,function) and op(0,lsic)=D(y) a nd nops(lsic)=1 \n and type(op(1,lsic),algebr aic) then\n x0 := op(1,lsic);\n if not type(x0,realcons) or \+ has(x0,infinity) then\n error \"initial condition value of ind ependent variable must be a finite real constant\"\n end if;\n \+ y0 := rhs(ic0);\n t0 := 1; # flag for y coord or derivative\n \+ if not type(y0,realcons) or has(y0,infinity) then\n error \"initial condition value of derivative must be a finite real constan t\"\n end if;\n else\n error \"initial condition is not de cipherable\"\n end if;\n\n lsic := lhs(ic1);\n if type(lsic,func tion) and op(0,lsic)=y and nops(lsic)=1 \n an d type(op(1,lsic),algebraic) then\n x1 := op(1,lsic);\n if n ot type(x1,realcons) or has(x1,infinity) then\n error \"initia l condition value of independent variable must be a finite real consta nt\"\n end if;\n y1 := rhs(ic1);\n t1 := 0; # flag for \+ y coord or derivative\n if not type(y1,realcons) or has(y1,infini ty) then\n error \"initial condition value of dependent variab le must be a finite real constant\"\n end if;\n elif type(lsic, function) and op(0,lsic)=D(y) and nops(lsic)=1 \n \+ and type(op(1,lsic),algebraic) then\n x1 := op(1,lsic);\n \+ if not type(x1,realcons) or has(x1,infinity) then\n error \+ \"initial condition value of independent variable must be a finite rea l constant\"\n end if;\n y1 := rhs(ic1);\n t1 := 1; # f lag for y coord or derivative\n if not type(y1,realcons) or has(y 1,infinity) then\n error \"initial condition value of derivati ve must be a finite real constant\"\n end if;\n else\n err or \"initial condition is not decipherable\"\n end if;\n\n if t0=t 1 or x0<>x1 then\n error \"initial conditions must supply a value and derivative at a single point\"\n end if;\n if t0=1 then u0 := y0; y0 := y1 else u0 := y1 end if;\n\n if type(rng,equation) then\n z := op(1,rng);\n if not type(z,name) or z<>x then\n \+ error \"left side, %1, of equation for solution range must be the in dependent variable\",x;\n end if;\n rg := op(2,rng);\n els e\n rg := rng;\n end if;\n\n if not type(rg,realcons..realcon s) or has(rg,infinity) then\n error \"the range for the solution \+ must have finite real end values\"\n end if;\n \n lft := op(1,rg );\n rght := op(2,rg);\n \n if signum(rght-lft)=0 then\n er ror \"the range for the solution must have distinct end points\"\n e nd if;\n if signum(rght-lft)<0 then # swap over\n tt := lft; l ft := rght; rght := tt; \n end if;\n if signum(x0-rght)>0 or sign um(x0-lft)<0 then\n error \"the range for the solution must conta in the initial value of the independent variable\"\n end if; \n\n \+ if mthd='rk45' then\n if signum(x0-lft)=0 then\n return d e2rk45(gxyu,x=x0..rght,y=y0,u=u0,op(Options));\n elif signum(x0-r ght)=0 then\n return de2rk45(gxyu,x=x0..lft,y=y0,u=u0,op(Optio ns));\n else\n rghtprt := de2rk45(gxyu,x=x0..rght,y=y0,u= u0,op(Options));\n lftprt := de2rk45(gxyu,x=x0..lft,y=y0,u=u0, op(Options));\n if member(outpt,\{'rkstep','derivstep','rkinte rp','derivinterp'\}) then\n return dblrk(lft,rght,x0,lftprt ,rghtprt);\n elif outpt='step_pair' or outpt='interp_pair' the n\n return dblrk(lft,rght,x0,op(1,[lftprt]),op(1,[rghtprt]) ),\n dblrk(lft,rght,x0,op(2,[lftprt]),op(2,[rghtprt])); \n elif outpt='points' or outpt='derivpts' then\n r eturn [op(reverse(lftprt)),op(rghtprt)];\n else # outpt=points _pair\n return [op(reverse(op(1,[lftprt]))),op(op(1,[rghtpr t]))],\n [op(reverse(op(2,[lftprt]))),op(op(2,[rghtprt]) )];\n end if;\n end if;\n elif mthd='rk56' then\n \+ if signum(x0-lft)=0 then\n return de2rk56(gxyu,x=x0..rght,y=y0 ,u=u0,op(Options))\n elif signum(x0-rght)=0 then\n return de2rk56(gxyu,x=x0..lft,y=y0,u=u0,op(Options))\n else\n r ghtprt := de2rk56(gxyu,x=x0..rght,y=y0,u=u0,op(Options));\n lf tprt := de2rk56(gxyu,x=x0..lft,y=y0,u=u0,op(Options));\n if me mber(outpt,\{'rkstep','derivstep','rkinterp','derivinterp'\}) then\n \+ return dblrk(lft,rght,x0,lftprt,rghtprt);\n elif out pt='step_pair' or outpt='interp_pair' then\n return dblrk(l ft,rght,x0,op(1,[lftprt]),op(1,[rghtprt])),\n dblrk(lft, rght,x0,op(2,[lftprt]),op(2,[rghtprt]));\n elif outpt='points' or outpt='derivpts' then\n return [op(reverse(lftprt)),op( rghtprt)];\n else # outpt='points_pair'\n return [o p(reverse(op(1,[lftprt]))),op(op(1,[rghtprt]))],\n [op(r everse(op(2,[lftprt]))),op(op(2,[rghtprt]))];\n end if;\n \+ end if;\n elif mthd='rk67' then\n if signum(x0-lft)=0 then\n \+ return de2rk67(gxyu,x=x0..rght,y=y0,u=u0,op(Options))\n el if signum(x0-rght)=0 then\n return de2rk67(gxyu,x=x0..lft,y=y0 ,u=u0,op(Options))\n else\n rghtprt := de2rk67(gxyu,x=x0. .rght,y=y0,u=u0,op(Options));\n lftprt := de2rk67(gxyu,x=x0..l ft,y=y0,u=u0,op(Options));\n if member(outpt,\{'rkstep','deriv step','rkinterp','derivinterp'\}) then\n return dblrk(lft,r ght,x0,lftprt,rghtprt);\n elif outpt='step_pair' or outpt='int erp_pair' then\n return dblrk(lft,rght,x0,op(1,[lftprt]),op (1,[rghtprt])),\n dblrk(lft,rght,x0,op(2,[lftprt]),op(2, [rghtprt]));\n elif outpt='points' or outpt='derivpts' then\n \+ return [op(reverse(lftprt)),op(rghtprt)];\n else # \+ outpt='points_pair'\n return [op(reverse(op(1,[lftprt]))),o p(op(1,[rghtprt]))],\n [op(reverse(op(2,[lftprt]))),op(o p(2,[rghtprt]))];\n end if;\n end if;\n elif mthd='rk78 ' then\n if signum(x0-lft)=0 then\n return de2rk78(gxyu,x =x0..rght,y=y0,u=u0,op(Options))\n elif signum(x0-rght)=0 then\n \+ return de2rk78(gxyu,x=x0..lft,y=y0,u=u0,op(Options))\n el se\n rghtprt := de2rk78(gxyu,x=x0..rght,y=y0,u=u0,op(Options)) ;\n lftprt := de2rk78(gxyu,x=x0..lft,y=y0,u=u0,op(Options));\n if member(outpt,\{'rkstep','derivstep','rkinterp','derivinter p'\}) then\n return dblrk(lft,rght,x0,lftprt,rghtprt);\n \+ elif outpt='step_pair' or outpt='interp_pair' then\n \+ return dblrk(lft,rght,x0,op(1,[lftprt]),op(1,[rghtprt])),\n \+ dblrk(lft,rght,x0,op(2,[lftprt]),op(2,[rghtprt]));\n elif \+ outpt='points' or outpt='derivpts' then\n return [op(revers e(lftprt)),op(rghtprt)];\n else # outpt='points_pair'\n \+ return [op(reverse(op(1,[lftprt]))),op(op(1,[rghtprt]))],\n \+ [op(reverse(op(2,[lftprt]))),op(op(2,[rghtprt]))];\n \+ end if;\n end if;\n elif mthd=rk78b then\n if signum(x0-lf t)=0 then\n return de2rk78b(gxyu,x=x0..rght,y=y0,u=u0,op(Optio ns))\n elif signum(x0-rght)=0 then\n return de2rk78b(gxyu ,x=x0..lft,y=y0,u=u0,op(Options))\n else\n rghtprt := de2 rk78b(gxyu,x=x0..rght,y=y0,u=u0,op(Options));\n lftprt := de2r k78b(gxyu,x=x0..lft,y=y0,u=u0,op(Options));\n if outpt='rkstep ' or outpt='derivstep' then\n return dblrk(lft,rght,x0,lftp rt,rghtprt);\n elif outpt='step_pair' then\n return dblrk(lft,rght,x0,op(1,[lftprt]),op(1,[rghtprt])),\n db lrk(lft,rght,x0,op(2,[lftprt]),op(2,[rghtprt]));\n elif outpt= 'points' or outpt='derivpts' then\n return [op(reverse(lftp rt)),op(rghtprt)];\n else # outpt='points_pair'\n r eturn [op(reverse(op(1,[lftprt]))),op(op(1,[rghtprt]))],\n \+ [op(reverse(op(2,[lftprt]))),op(op(2,[rghtprt]))];\n end if ;\n end if;\n else ## mthd='rk89'\n if signum(x0-lft)=0 th en\n return de2rk89(gxyu,x=x0..rght,y=y0,u=u0,op(Options))\n \+ elif signum(x0-rght)=0 then\n return de2rk89(gxyu,x=x0..lf t,y=y0,u=u0,op(Options))\n else\n rghtprt := de2rk89(gxyu ,x=x0..rght,y=y0,u=u0,op(Options));\n lftprt := de2rk89(gxyu,x =x0..lft,y=y0,u=u0,op(Options));\n if member(outpt,\{'rkstep', 'derivstep','rkinterp','derivinterp'\}) then\n return dblrk (lft,rght,x0,lftprt,rghtprt);\n elif outpt='step_pair' or outp t='interp_pair' then\n return dblrk(lft,rght,x0,op(1,[lftpr t]),op(1,[rghtprt])),\n dblrk(lft,rght,x0,op(2,[lftprt]) ,op(2,[rghtprt]));\n elif outpt='points' or outpt='derivpts' t hen\n return [op(reverse(lftprt)),op(rghtprt)];\n e lse # outpt='points_pair'\n return [op(reverse(op(1,[lftprt ]))),op(op(1,[rghtprt]))],\n [op(reverse(op(2,[lftprt])) ),op(op(2,[rghtprt]))];\n end if;\n end if;\n end if; \+ \nend proc:" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 23 "de2rk45: implementation" }}{PARA 0 "" 0 "" {TEXT -1 93 "\nThe code is adapted from \"Numerical Recipes in C \", Cambridge \+ University Press, pp 714 -722." }}{PARA 0 "" 0 "" {TEXT -1 130 "The pr ocedure uses constants from: \"Numerical Methods for Differential Equa tions\", by John R. Dormand, CRC Press, pages 84 & 110." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "rungk45" {MPLTEXT 1 0 21415 "de2rk45 := proc(gxyu::algebraic,xrng::(name=realcons..realcons) ,\n iy::(name=realcons),iu::(name=realcons)) \n \n local gn,soln,soln2,xk,yk,k,xend,xstart,h,safety,c2,c3,c4,c5,c8,\n c9,a21 ,a31,a32,a41,a42,a43,a51,a52,a53,a54,a61,a62,a63,a64,a65,\n a71,a73, a74,a75,a76,a81,a83,a84,a85,a86,a87,a91,a93,a94,a95,a96,\n a97,f1,f2 ,f3,f4,f5,f6,f7,f8,f9,g1,g2,g3,g4,g5,g6,g7,g8,g9,b1,b3,\n b4,b5,b6,i ,e1,e2,e3,e4,e5,e6,e7,yout,errst,errst2,xrg,u0,uk,uout,\n maxstps,ti ny,scale,scale2,err,htemp,hnext,eps,stdstep,drvstep,\n Options,prntf lg,t,tt,errcntl,maxval,maxval2,maxtemp,maxtemp2,x,y,u,\n errc,x0,y0, xn,outpt,hmx,hmn,hstrt,sgn,maxstepsize,laststep,\n minstepsize,inc,f inished,rk45step,rk45interp,ff,gg,saveDigits,\n errcontrol,pshrink,p grow,eqns;\n\nrk45interp := proc(x_rk45interp::realcons)\n local e2, e3,e4,e5,e6,e7,s,t1,t2,t3,sm,sms,ss,\n b1,b3,b4,b5,b6,b7,b8,b9,xF,xS ,yF,f1,f3,f4,f5,f6,\n f7,f8,f9,t,jF,jM,jS,n,h,data,xx,ys,saveDigits; \n options `Copyright 2004 by Peter Stone`;\n \n data := SOLN_; \n saveDigits := Digits;\n Digits := max(trunc(evalhf(Digits)),Dig its+5);\n xx := evalf(x_rk45interp);\n n := nops(data);\n if (da ta[1,1]data[n,1] or xxdata[1,1])) then\n error \+ \"independent variable is outside the interpolation interval: %1\",eva lf(data[1,1])..evalf(data[n,1]);\n end if;\n\n e2 := e2_;\n e3 : = e3_;\n e4 := e4_;\n e5 := e5_;\n e6 := e6_;\n e7 := e7_;\n\n # Perform a binary search for the interval containing x.\n n := n ops(data);\n jF := 0;\n jS := n+1;\n\n if data[1,1]1 do\n jM := trunc((jF+jS)/2);\n i f xx>=data[jM,1] then jF := jM else jS := jM end if;\n end do;\n \+ if jM = n then jF := n-1; jS := n end if;\n else\n while j S-jF>1 do\n jM := trunc((jF+jS)/2);\n if xx<=data[jM,1] \+ then jF := jM else jS := jM end if;\n end do;\n if jM = n th en jF := n-1; jS := n end if;\n end if;\n \n # Get the data neede d from the list.\n xF := data[jF,1];\n xS := data[jS,1];\n yF := data[jF,2];\n f1 := data[jF,3];\n f3 := data[jF,5];\n f4 := dat a[jF,6];\n f5 := data[jF,7];\n f6 := data[jF,8];\n f7 := data[jF ,9];\n f8 := data[jF,10];\n f9 := data[jF,11];\n\n # Calculate t he parameters.\n h := xx-xF;\n s := h/(xS-xF);\n t1 := (-1710+(3 104+(-2439+696*s)*s)*s)*s;\n t2 := (-6+(32+(-51+24*s)*s)*s)*s;\n t 3 := 7+(-31+32*s)*s;\n sm := s-1;\n sms := sm*s;\n ss := sms*sm; \n b1:= t1/384+1;\n b3 := t2*e2;\n b4 := t2*e3;\n b5 := t2*e4; \n b6 := t2*e5;\n b7 := sms*t3/8;\n b8 := ss*e6;\n b9 := ss*(3 *s-1)*e7;\n \n # Calculate the interpolated y value.\n t := b1*f 1 + b3*f3 + b4*f4 + b5*f5 + b6*f6 + b7*f7 + b8*f8 + b9*f9;\n ys := y F + t*h;\n Digits := saveDigits;\n evalf(ys);\nend proc: # of rk45 interp\n \nrk45step := proc(x_rk45step::realcons)\n local c2,c3,c4 ,c5,a21,a31,a32,a41,a42,a43,a51,a52,a53,a54,a61,a62,\n a63,a64,a65,f 1,f2,f3,f4,f5,f6,g1,g2,g3,g4,g5,g6,b1,b3,b4,b5,b6,\n ff,gg,xk,yk,uk, jF,jM,jS,n,h,data,gn,xx,ys,us,saveDigits;\n options `Copyright 2004 \+ by Peter Stone`;\n \n data := SOLN_;\n \n saveDigits := Digits ;\n Digits := max(trunc(evalhf(Digits)),Digits+5);\n\n # procedure to evaluate the 2nd derivative as a function of x,y and u=dy/dx\n g n := proc(X_,Y_,U_)\n local val; \n val := traperror(evalf(G XYU_));\n if val=lasterror or not type(val,numeric) then\n \+ error \"evaluation of 2nd derivative failed when x = %1, y = %2, and the derivative u = %3\",evalf(X_,saveDigits),evalf(Y_,saveDigits),eva lf(U_,saveDigits);\n end if;\n val;\n end proc;\n\n xx : = evalf(x_rk45step);\n n := nops(data);\n\n if (data[1,1]data[n,1] or xxdata[1,1])) then\n error \"independent variab le is outside the interpolation interval: %1\",evalf(data[1,1])..evalf (data[n,1]);\n end if;\n\n c2 := 0.2; c3 := 0.3; c4 := 0.8; c5 := \+ c5_;\n a21 := c2; a31 := 0.075; a32 := 0.225; a41 := a41_; a42 := a4 2_; a43 := a43_;\n a51 := a51_; a52 := a52_; a53 := a53_; a54 := a54 _;\n a61 := a61_; a62 := a62_; a63 := a63_; a64 := a64_; a65 := a65_ ;\n b1 := b1_; b3 := b3_; b4 := b4_; b5 := b5_; b6 := b6_;\n\n # P eform a binary search for the interval containing x.\n n := nops(dat a);\n jF := 0;\n jS := n+1;\n\n if data[1,1]1 do\n jM := trunc((jF+jS)/2);\n if xx>=d ata[jM,1] then jF := jM else jS := jM end if;\n end do;\n if jM = n then jF := n-1; jS := n end if;\n else\n while jS-jF>1 \+ do\n jM := trunc((jF+jS)/2);\n if xx<=data[jM,1] then jF := jM else jS := jM end if;\n end do;\n if jM = n then jF : = n-1; jS := n end if;\n end if;\n \n # Get the data needed from \+ the list.\n xk := data[jF,1];\n yk := data[jF,2];\n uk := data[j F,3];\n\n # Do one step with step-size ..\n h := xx-xk;\n\n f1 : = uk;\n g1 := gn(xk,yk,uk);\n \n ff := a21*f1;\n gg := a21* g1;\n f2 := uk + gg*h;\n g2 := gn(xk + c2*h,yk + ff*h,f2);\n\n f f := a31*f1 + a32*f2;\n gg := a31*g1 + a32*g2;\n f3 := uk + gg*h; \n g3 := gn(xk + c3*h,yk + ff*h,f3); \n \n ff := a41*f1 + \+ a42*f2 + a43*f3;\n gg := a41*g1 + a42*g2 + a43*g3;\n f4 := uk + gg *h;\n g4 := gn(xk + c4*h,yk + ff*h,f4);\n \n ff := a51*f1 + a52*f2 + a53*f3 + a54*f4;\n gg := a51*g1 + a52*g2 + a53*g3 + a54*g4;\n f 5 := uk + gg*h;\n g5 := gn(xk + c5*h,yk + ff*h,f5);\n\n ff := a61* f1 + a62*f2 + a63*f3 + a64*f4 + a65*f5;\n gg := a61*g1 + a62*g2 + a6 3*g3 + a64*g4 + a65*g5;\n f6 := uk + gg*h;\n\n if DERIV_ then\n \+ g6 := gn(xk + h,yk + ff*h,f6);\n us := uk + (b1*g1 + b3*g3 + b 4*g4 + b5*g5 + b6*g6)*h;\n Digits := saveDigits;\n return ev alf(us);\n else\n ys := yk + (b1*f1 + b3*f3 + b4*f4 + b5*f5 + b 6*f6)*h;\n Digits := saveDigits;\n return evalf(ys);\n end if;\nend proc: # of rk45step\n \n # start of main procedure\n x := op(1,xrng);\n y := op(1,iy);\n u := op(1,iu);\n if not type( indets(gxyu,name) minus \{x,y,u\},set(realcons)) then\n error \"t he 1st argument, %1, must depend only on the variables %2, %3 and %4\" ,gxyu,x,y,u;\n end if;\n xrg := op(2,xrng);\n x0 := op(1,xrg);\n xn := op(2,xrg);\n y0 := op(2,iy);\n u0 := op(2,iu);\n\n # Ge t the options.\n # Set the default values to start with.\n maxstps := 2000;\n t := Float(1,-Digits);\n hmx := 0.25;\n hstrt := eva lf(0.1*10^(-ceil(Digits/10)));\n hmn := min(0.000005,hstrt/20000);\n errcntl := 0;\n maxtemp := 0;\n maxtemp2 := 0;\n outpt := 'rk interp';\n prntflg := false;\n if nargs>4 then\n Options:=[ar gs[5..nargs]];\n if not type(Options,list(equation)) then\n \+ error \"each optional argument must be an equation\"\n end if; \n if hasoption(Options,'maxsteps','maxstps','Options') then\n \+ if not type(maxstps,posint) then\n error \"\\\"maxste ps\\\" must be a positive integer\"\n end if;\n end if;\n if hasoption(Options,'tolerance','t','Options') then\n t t := evalf(t); \n if not type(tt,float) or \n tt>Fl oat(1,-iquo(Digits,2)) or tthmx) or evalf(hstrttrue then prntflg := false end if; \n end if;\n if nops(Options)>0 then\n error \"%1 is n ot a valid option for %2\",op(1,Options), procname;\n end if;\n \+ end if;\n\n stdstep := evalb(member(outpt,\{'points','rkstep','rkin terp','endpt'\}));\n drvstep := evalb(member(outpt,\{'derivpts','der ivstep','derivinterp'\}));\n\n if prntflg then\n print(`method: Prince-Dormand 7 stage, order 4-5`);\n print(`an embedded order \+ 4 scheme provides error control`);\n if outpt='rkinterp' then\n \+ print(`3 extra stages are used to construct the interpolation p rocedure`);\n end if;\n print(``);\n end if;\n\n saveDig its := Digits;\n Digits := max(trunc(evalhf(Digits)),Digits+5);\n\n \+ # procedure to evaluate the 2nd derivative as a function of x,y and \+ u=dy/dx\n gn := subs(\{GXYU_=evalf(gxyu),X_=x,Y_=y,U_=u\},\n pr oc(X_,Y_,U_)\n local val; \n val := traperror(evalf(GXYU_)); \n if val=lasterror or not type(val,numeric) then\n error \"evaluation of 2nd derivative failed when x = %1, y = %2, and the de rivative u = %3\",evalf(X_,saveDigits),evalf(Y_,saveDigits),evalf(U_,s aveDigits);\n end if;\n val;\n end proc);\n \n c2 := 0.2;\n c3 := 0.3;\n c4 := 0.8;\n c5 := evalf(8/9);\n c8 := c2 ;\n c9 := 0.5;\n a21 := c2;\n a31 := 0.075;\n a32 := 0.225;\n \+ a41 := evalf(44/45);\n a42 := evalf(-56/15);\n a43 := evalf(32/9 );\n a51 := evalf(19372/6561);\n a52 := evalf(-25360/2187);\n a5 3 := evalf(64448/6561);\n a54 := evalf(-212/729);\n a61 := evalf(9 017/3168);\n a62 := evalf(-355/33);\n a63 := evalf(46732/5247);\n \+ a64 := evalf(49/176);\n a65 := evalf(-5103/18656);\n a71 := eval f(35/384);\n a73 := evalf(500/1113);\n a74 := evalf(125/192);\n \+ a75 := evalf(-2187/6784);\n a76 := evalf(11/84);\n a81 := evalf(52 07/48000);\n a83 := evalf(92/795);\n a84 := evalf(-79/960);\n a8 5 := evalf(53217/848000);\n a86 := evalf(-11/300);\n a87 := 0.032; \n a91 := evalf(613/6144);\n a93 := evalf(125/318);\n a94 := eva lf(-125/3072);\n a95 := evalf(8019/108544);\n a96 := evalf(-11/192 );\n a97 := 0.03125;\n b1 := a71;\n b3 := a73;\n b4 := a74;\n \+ b5 := a75;\n b6 := a76;\n e1 := evalf(71/57600);\n e3 := evalf (-71/16695);\n e4 := evalf(71/1920);\n e5 := evalf(-17253/339200); \n e6 := evalf(22/525);\n e7 := -0.025;\n\n xstart := evalf(x0); \n xend:= evalf(xn);\n\n sgn := sign(xend-xstart);\n h := sgn*hs trt;\n\n eps := evalf(t);\n safety := 0.9;\n pgrow := -0.2;\n \+ pshrink := -0.25;\n errcontrol := 0.000189; #(5/safety)^(1/pgrow)\n tiny := Float(1,-3*saveDigits);\n \n xk := evalf(x0);\n yk := \+ evalf(y0);\n uk := evalf(u0);\n \n if errcntl=2 then\n if s tdstep then\n if maxtemp<>0 then\n maxval := abs(ev alf(maxtemp))\n else \n maxval := max(abs(yk),tin y)\n end if;\n elif drvstep then\n if maxtemp2<>0 then\n maxval := abs(evalf(maxtemp2))\n else\n \+ maxval := max(abs(uk),tiny)\n end if;\n else\n \+ if maxtemp<>0 then\n maxval := abs(evalf(maxtemp))\n \+ else \n maxval := max(abs(yk),tiny)\n end if;\n if maxtemp2<>0 then\n maxval2 := abs(evalf(m axtemp2))\n else\n maxval2 := max(abs(uk),tiny)\n \+ end if;\n end if;\n end if;\n\n f1 := uk;\n g1 := gn (xk,yk,uk);\n\n finished := false;\n soln := NULL;\n soln2 := NU LL;\n\n for k from 1 to maxstps do\n if stdstep then \n \+ if errcntl=0 then scale := max(abs(yk),abs(uk*h),tiny)\n elif errcntl=1 then scale := max(abs(yk),tiny)\n elif errcntl=2 th en scale := abs(maxval)\n else scale := max(abs(uk*h),tiny) en d if;\n elif drvstep then\n if errcntl=0 then scale := ma x(abs(uk),abs(g1*h),tiny)\n elif errcntl=1 then scale := max(a bs(uk),tiny)\n elif errcntl=2 then scale := abs(maxval)\n \+ else scale := max(abs(g1*h),tiny) end if;\n else\n if errcntl=0 then\n scale := max(abs(yk),abs(uk*h),tiny);\n \+ scale2 := max(abs(uk),abs(g1*h),tiny);\n elif errcnt l=1 then\n scale := max(abs(yk),tiny);\n scale2 \+ := max(abs(uk),tiny);\n elif errcntl=2 then\n scale := abs(maxval);\n scale2 := abs(maxval2);\n else\n scale := max(abs(uk*h),tiny);\n scale2 := max(a bs(g1*h),tiny);\n end if;\n end if;\n\n if abs(h)>=h mx then\n h := sgn*hmx;\n maxstepsize := true;\n \+ else\n maxstepsize := false;\n end if;\n if abs(h)<= hmn then\n h := sgn*hmn;\n minstepsize := true;\n \+ else\n minstepsize := false;\n end if;\n if (xk+h-x end)*(xk+h-xstart)>0 then \n h := xend-xk;\n laststep \+ := true;\n else\n laststep := false;\n end if;\n\n \+ # Do step.\n do \n ff := a21*f1;\n gg := a21*g1;\n f2 := uk + gg*h;\n g2 := gn(xk + c2*h,yk + \+ ff*h,f2);\n\n ff := a31*f1 + a32*f2;\n gg := a31*g1 + a32 *g2;\n f3 := uk + gg*h;\n g3 := gn(xk + c3*h,yk + ff*h,f3 ); \n \n ff := a41*f1 + a42*f2 + a43*f3;\n gg \+ := a41*g1 + a42*g2 + a43*g3;\n f4 := uk + gg*h;\n g4 := g n(xk + c4*h,yk + ff*h,f4);\n \n ff := a51*f1 + a52*f2 + a53*f3 + \+ a54*f4;\n gg := a51*g1 + a52*g2 + a53*g3 + a54*g4;\n f 5 := uk + gg*h;\n g5 := gn(xk + c5*h,yk + ff*h,f5);\n\n ff : = a61*f1 + a62*f2 + a63*f3 + a64*f4 + a65*f5;\n gg := a61*g1 + a62*g2 + a63*g3 + a64*g4 + a65*g5;\n f6 := uk + gg*h;\n \+ g6 := gn(xk + h,yk + ff*h,f6);\n\n yout := yk + (b1*f1 + b3*f3 + b4*f4 + b5*f5 + b6*f6)*h;\n uout := uk + (b1*g1 + b3*g3 + b 4*g4 + b5*g5 + b6*g6)*h;\n\n ff := a71*f1 + a73*f3 + a74*f4 + \+ a75*f5 + a76*f6;\n gg := a71*g1 + a73*g3 + a74*g4 + a75*g5 + a 76*g6;\n f7 := uk + gg*h;\n g7 := gn(xk + h,yk + ff*h,f7) ;\n \n # error estimate\n if stdstep then \n \+ errst := (e1*f1 + e3*f3 + e4*f4 + e5*f5 + e6*f6 + e7*f7)*h; \n elif drvstep then\n errst := (e1*g1 + e3*g3 + e4 *g4 + e5*g5 + e6*g6 + e7*g7)*h;\n else\n errst := ( e1*f1 + e3*f3 + e4*f4 + e5*f5 + e6*f6 + e7*f7)*h;\n errst2 \+ := (e1*g1 + e3*g3 + e4*g4 + e5*g5 + e6*g6 + e7*g7)*h;\n end if ;\n \n if stdstep or drvstep then \n err := abs(errst/scale)/eps;\n else \n err := max(abs(err st/scale),abs(errst2/scale2))/eps;\n end if; \n if err <=1.0 or minstepsize then break end if;\n\n # Shrink, but not too much.\n if prntflg then\n print(`reducing step -size and repeating step`);\n end if;\n htemp := safet y*h*err^pshrink;\n if h>=0 then\n h := max(htemp,0. 1*h)\n else\n h := min(htemp,0.1*h)\n end i f;\n if maxstepsize then maxstepsize := false end if;\n \+ if abs(h)<=hmn then\n h := sgn*hmn;\n minsteps ize := true;\n end if;\n end do;\n\n if member(outpt,\{ 'points','derivpts','rkstep','derivstep','step_pair','endpt'\}) then\n soln := soln,[xk,yk,uk];\n else # extra evaluations need ed for interpolation\n ff := a81*f1 + a83*f3 + a84*f4 + a85*f5 + \+ a86*f6 + a87*f7;\n gg := a81*g1 + a83*g3 + a84*g4 + a85*g5 + a 86*g6 + a87*g7;\n f8 := uk + gg*h;\n g8 := gn(xk + c8*h,y k + ff*h,f8);\n \n ff := a91*f1 + a93*f3 + a94*f4 + a95*f 5 + a96*f6 + a97*f7;\n gg := a91*g1 + a93*g3 + a94*g4 + a95*g5 + a96*g6 + a97*g7;\n f9 := uk + gg*h;\n g9 := gn(xk + c9 *h,yk + ff*h,f9);\n if outpt='rkinterp' then\n soln := soln,[xk,yk,f1,f2,f3,f4,f5,f6,f7,f8,f9];\n elif outpt='derivi nterp' then\n soln := soln,[xk,uk,g1,g2,g3,g4,g5,g6,g7,g8,g 9];\n else\n soln := soln,[xk,yk,f1,f2,f3,f4,f5,f6, f7,f8,f9];\n soln2 := soln2,[xk,uk,g1,g2,g3,g4,g5,g6,g7,g8, g9];\n end if;\n end if;\n \n if err>errcontrol then\n hnext := safety*h*err^pgrow;\n inc := false;\n else\n if abs(h) `,evalf(abs(errst),5),` abs err bound -> `,evalf(abs(scale)*eps,5));\n if stdstep then \n print(`step`,k,` `,h,` `,[xk,yk]);\n elif dr vstep then\n print(`step`,k,` `,h,` `,[xk,uk]);\n \+ else\n print(`step`,k,` `,h,` `,[xk,yk,uk]);\n \+ end if;\n if laststep then\n print(`last step`); \n elif inc then\n print(`increasing step-size by a factor of 5`)\n elif maxstepsize then\n print(`use d maximum step-size`)\n elif not minstepsize then\n \+ print(`using error to adjust step-size`)\n else \n \+ print(`used minimum step-size`)\n end if;\n print(``) ;\n end if;\n\n if (xk-xend)*(xend-xstart)>=0 then\n \+ finished := true;\n break;\n end if;\n \n if e rrcntl=2 then\n if stdstep then \n if abs(yk)>max val then maxval := abs(yk) end if;\n elif drvstep then\n \+ if abs(uk)>maxval then maxval := abs(uk) end if;\n else \n if abs(yk)>maxval then maxval := abs(yk) end if;\n \+ if abs(uk)>maxval2 then maxval2 := abs(uk) end if;\n end if;\n end if;\n h := hnext;\n end do;\n\n if not finish ed and k>=maxstps then\n error \"reached maximum number of steps \+ before reaching end of interval\"\n end if;\n\n if member(outpt,\{ 'rkstep','derivstep','step_pair'\}) then\n soln := [soln,[xk,yk,u k]];\n eqns := \{SOLN_=soln,GXYU_=gxyu,X_=x,Y_=y,U_=u,c5_=c5,\n \+ a41_=a41,a42_=a42,a43_=a43,a51_=a51,a52_=a52,a53_=a53,\n \+ a54_=a54,a61_=a61,a62_=a62,a63_=a63,a64_=a64,a65_=a65,\n b1_ =b1,b3_=b3,b4_=b4,b5_=b5,b6_=b6\};\n if outpt='rkstep' then\n \+ return subs(`union`(eqns,\{DERIV_=false\}),eval(rk45step));\n \+ elif outpt='derivstep' then\n return subs(`union`(eqns,\{DER IV_=true\}),eval(rk45step));\n else # outpt='step_pair'\n \+ return subs(`union`(eqns,\{DERIV_=false\}),eval(rk45step)),\n \+ subs(`union`(eqns,\{DERIV_=true\}),eval(rk45step));\n en d if;\n elif member(outpt,\{'rkinterp','derivinterp','interp_pair'\} ) then\n e2 := evalf(-500/1113);\n e3 := evalf(-125/192);\n \+ e4 := evalf(2187/6784);\n e5 := evalf(-11/84);\n e6 := \+ evalf(125/24);\n e7 := evalf(16/3);\n eqns := \{e2_=e2,e3_=e 3,e4_=e4,e5_=e5,e6_=e6,e7_=e7\};\n if outpt='rkinterp' then\n \+ soln := [soln,[xk,yk]];\n return subs(`union`(eqns,\{SOLN _=soln\}),eval(rk45interp));\n elif outpt='derivinterp' then\n \+ soln := [soln,[xk,uk]];\n return subs(`union`(eqns,\{SOL N_=soln\}),eval(rk45interp));\n else # outpt='interp_pair' then\n soln := [soln,[xk,yk]];\n soln2 := [soln2,[xk,uk]];\n return subs(`union`(eqns,\{SOLN_=soln\}),eval(rk45interp)),\n subs(`union`(eqns,\{SOLN_=soln2\}),eval(rk45interp)); \n end if;\n else\n soln := [soln,[xk,yk,uk]];\n Digi ts := saveDigits;\n if outpt='points' then\n return evalf ([seq([soln[i,1],soln[i,2]],i=1..nops(soln))]); \n elif outp t='derivpts' then\n return evalf([seq([soln[i,1],soln[i,3]],i= 1..nops(soln))]);\n elif outpt='points_pair' then\n retur n evalf([seq([soln[i,1],soln[i,2]],i=1..nops(soln))]),\n eva lf([seq([soln[i,1],soln[i,3]],i=1..nops(soln))]);\n else # outpt= 'endpt'\n return soln[nops(soln),2];\n end if;\n end if ;\nend proc: # of de2rk45" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 23 "de2rk56: implementation" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 56 "The procedure uses c onstants obtained by J.Verner (2004)" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "rungk78" {MPLTEXT 1 0 28221 "de2rk56 := proc( gxyu::algebraic,xrng::(name=realcons..realcons),\n iy::(na me=realcons),iu::(name=realcons))\n local soln,xk,yk,k,xend,xstart,h ,xrg,c2,c3,c4,c5,c6,cA,cB,cC,a21,a31,a32,a41,\n a42,a43,a51,a52,a53, a54,a61,a62,a63,a64,a65,a71,a72,a73,a74,a75,a76,a81,a82,\n a83,a84,a 85,a86,a91,a93,a94,a96,a97,a98,aA1,aA3,aA4,aA5,aA6,aA7,aA9,aB1,aB3,\n \+ aB4,aB5,aB6,aB7,aB8,aB9,aBA,aC1,aC3,aC4,aC5,aC6,aC7,aC8,aC9,aCA,aCB, f1,f2,f3,\n f4,f5,f6,f7,f8,f9,fA,fB,fC,g1,g2,g3,g4,g5,g6,g7,g8,g9,gA ,gB,gC,b1,b3,b4,b5,b6,\n b7,b8,e1,e3,e4,e5,e6,e7,e8,d12,d13,d14,d15, d16,d32,d33,d34,d35,d36,d42,d43,\n d44,d45,d46,d52,d53,d54,d55,d56,d 62,d63,d64,d65,d66,d72,d73,d74,d75,d76,d82,\n d83,d84,d85,d86,d92,d9 3,d94,d95,d96,dA2,dA3,dA4,dA5,dA6,dB2,dB3,dB4,dB5,dB6,\n dC2,dC3,dC4 ,dC5,dC6,ff,gg,uk,yout,uout,errst,errst2,hmx,hmn,hstrt,sgn,gn,\n max stps,tiny,scale,scale2,err,htemp,hnext,eps,i,Options,prntflg,t,tt,\n \+ errcntl,maxval,maxval2,maxtemp,maxtemp2,x,y,u,errc,x0,y0,u0,xn,outpt, \n minstepsize,inc,rk56step,maxstepsize,laststep,saveDigits,stdstep, drvstep,\n safety,pgrow,pshrink,errcontrol,finished,soln2,eqns,rk56i nterp;\n\nrk56interp := proc(x_rk56interp::realcons)\n local d12,d13 ,d14,d15,d16,d32,d33,d34,d35,d36,d42,d43,\n d44,d45,d46,d62,d63,d64, d65,d66,d72,d73,d74,d75,d76,d82,\n d83,d84,d85,d86,d92,d93,d94,d95,d 96,dA2,dA3,dA4,dA5,dA6,\n dB2,dB3,dB4,dB5,dB6,dB7,dC2,dC3,dC4,dC5,dC 6,dC7,b1,b3,b4,\n b6,b7,b8,b9,bA,bB,bC,f1,f3,f4,f6,f7,f8,f9,fA,fB,fC ,s,t,\n jF,jM,jS,xF,yF,xS,n,h,data,xx,ys,saveDigits;\n options `Co pyright 2007 by Peter Stone`;\n \n data := SOLN_;\n saveDigits : = Digits;\n Digits := max(trunc(evalhf(Digits)),Digits+5);\n xx := evalf(x_rk56interp);\n n := nops(data);\n if (data[1,1]data[n,1] or xxdata[1,1])) then\n error \"independent vari able is outside the interpolation interval: %1\",evalf(data[1,1])..eva lf(data[n,1]);\n end if;\n \n d12 := d12_; d13 := d13_; d14 := d14 _; d15 := d15_; d16 := d16_; \n d32 := d32_; d33 := d33_; d34 := d34 _; d35 := d35_; d36 := d36_; \n d42 := d42_; d43 := d43_; d44 := d44 _; d45 := d45_; d46 := d46_; \n d62 := d62_; d63 := d63_; d64 := d64 _; d65 := d65_; d66 := d66_; \n d72 := d72_; d73 := d73_; d74 := d74 _; d75 := d75_; d76 := d76_; \n d82 := d82_; d83 := d83_; d84 := d84 _; d85 := d85_; d86 := d86_; \n d92 := d92_; d93 := d93_; d94 := d94 _; d95 := d95_; d96 := d96_; \n dA2 := dA2_; dA3 := dA3_; dA4 := dA4 _; dA5 := dA5_; dA6 := dA6_; \n dB2 := dB2_; dB3 := dB3_; dB4 := dB4 _; dB5 := dB5_; dB6 := dB6_; \n dC2 := dC2_; dC3 := dC3_; dC4 := dC4 _; dC5 := dC5_; dC6 := dC6_; \n\n # Perform a binary search for the \+ interval containing x.\n n := nops(data);\n jF := 0;\n jS := n+1 ;\n\n if data[1,1]1 do\n j M := trunc((jF+jS)/2);\n if xx>=data[jM,1] then jF := jM else j S := jM end if;\n end do;\n if jM = n then jF := n-1; jS := \+ n end if;\n else\n while jS-jF>1 do\n jM := trunc((jF+jS )/2);\n if xx<=data[jM,1] then jF := jM else jS := jM end if;\n end do;\n if jM = n then jF := n-1; jS := n end if;\n end if;\n \n # Get the data needed from the list.\n xF := data[jF,1] ;\n xS := data[jS,1];\n yF := data[jF,2];\n f1 := data[jF,3];\n \+ f3 := data[jF,4];\n f4 := data[jF,5];\n f6 := data[jF,6];\n f7 := data[jF,7];\n f8 := data[jF,8];\n f9 := data[jF,9];\n fA := \+ data[jF,10];\n fB := data[jF,11];\n fC := data[jF,12];\n\n # Cal culate the parameters.\n h := xx-xF;\n s := h/(xS-xF);\n b1 := ( (((d16*s+d15)*s+d14)*s+d13)*s+d12)*s+1;\n b3 := ((((d36*s+d35)*s+d34 )*s+d33)*s+d32)*s;\n b4 := ((((d46*s+d45)*s+d44)*s+d43)*s+d42)*s;\n \+ b6 := ((((d66*s+d65)*s+d64)*s+d63)*s+d62)*s;\n b7 := ((((d76*s+d75 )*s+d74)*s+d73)*s+d72)*s;\n b8 := ((((d86*s+d85)*s+d84)*s+d83)*s+d82 )*s;\n b9 := ((((d96*s+d95)*s+d94)*s+d93)*s+d92)*s;\n bA := ((((dA 6*s+dA5)*s+dA4)*s+dA3)*s+dA2)*s;\n bB := ((((dB6*s+dB5)*s+dB4)*s+dB3 )*s+dB2)*s;\n bC := ((((dC6*s+dC5)*s+dC4)*s+dC3)*s+dC2)*s;\n\n # C alculate the interpolated y value.\n t := b1*f1 + b3*f3 + b4*f4 + b6 *f6 + b7*f7 + b8*f8 + b9*f9\n + b A*fA + bB*fB + bC*fC;\n ys := yF + t*h;\n Digits := saveDigits;\n \+ evalf(ys);\nend proc: # of rk56interp\n \nrk56step := proc(x_rk56s tep::realcons)\n local c2,c3,c4,c5,c6,a21,a31,a32,a41,a42,a43,a51,a5 2,a53,a54,a61,a62,a63,\n a64,a65,a71,a72,a73,a74,a75,a76,a81,a82,a83 ,a84,a85,a86,f1,f2,f3,f4,f5,\n f6,f7,f8,g1,g2,g3,g4,g5,g6,g7,g8,b1,b 3,b4,b5,b6,b7,b8,uk,xk,yk,jF,jM,jS,\n n,h,data,gn,xx,ys,us,saveDigit s;\n options `Copyright 2004 by Peter Stone`;\n \n data := SOLN_ ;\n\n saveDigits := Digits;\n Digits := max(trunc(evalhf(Digits)), Digits+5);\n\n # procedure to evaluate the 2nd derivative as a funct ion of x,y and u=dy/dx\n gn := proc(X_,Y_,U_)\n local val; \n \+ val := traperror(evalf(GXYU_));\n if val=lasterror or not typ e(val,numeric) then\n error \"evaluation of 2nd derivative fai led when x = %1, y = %2, and the derivative u = %3\",evalf(X_,saveDigi ts),evalf(Y_,saveDigits),evalf(U_,saveDigits);\n end if;\n v al;\n end proc;\n\n xx := evalf(x_rk56step);\n n := nops(data); \n\n if (data[1,1]data[n,1] or xxdata[1,1])) then\n \+ error \"independent variable is outside the interpolation interval: %1\",evalf(data[1,1])..evalf(data[n,1]);\n end if;\n\n c2 := c2_; c3 := c3_; c4 := c4_; c5 := c5_; c6 := .75; a21 := c2;\n a31 := a31 _; a32 := a32_; a41 := a41_; a42 := a42_; a43 := a43_;\n a51 := a51_ ; a52 := a52_; a53 := a53_; a54 := a54_; a61 := a61_;\n a62 := a62_; a63 := a63_; a64 := a64_; a65 := a65_; a71 := a71_;\n a72 := -2.156 25; a73 := a73_; a74 := a74_; a75 := a75_; a76 := a76_;\n a81 := a81 _; a82 := a82_; a83 := a83_; a84 := a84_; a85 := -0.6515625;\n a86 : = a86_; b1 := b1_; b3 := b3_; b4 := b4_; b6 := b6_; b7 := .01;\n b8 \+ := b8_;\n\n # Peform a binary search for the interval containing x. \n n := nops(data);\n jF := 0;\n jS := n+1;\n\n if data[1,1]1 do\n jM := trunc((jF+jS)/2); \n if xx>=data[jM,1] then jF := jM else jS := jM end if;\n \+ end do;\n if jM = n then jF := n-1; jS := n end if;\n else\n \+ while jS-jF>1 do\n jM := trunc((jF+jS)/2);\n if xx<= data[jM,1] then jF := jM else jS := jM end if;\n end do;\n i f jM = n then jF := n-1; jS := n end if;\n end if;\n \n # Get the data needed from the list.\n xk := data[jF,1];\n yk := data[jF,2] ;\n uk := data[jF,3];\n\n # Do one step with step-size ..\n h := xx-xk;\n\n f1 := uk;\n g1 := gn(xk,yk,uk);\n\n ff := a21*f1;\n \+ gg := a21*g1;\n f2 := uk + gg*h;\n g2 := gn(xk + c2*h,yk + ff*h, f2);\n\n ff := a31*f1 + a32*f2;\n gg := a31*g1 + a32*g2;\n f3 := uk + gg*h;\n g3 := gn(xk + c3*h,yk + ff*h,f3); \n\n ff := a41*f1 \+ + a42*f2 + a43*f3;\n gg := a41*g1 + a42*g2 + a43*g3;\n f4 := uk + \+ gg*h;\n g4 := gn(xk + c4*h,yk + ff*h,f4);\n\n ff := a51*f1 + a52*f 2 + a53*f3 + a54*f4;\n gg := a51*g1 + a52*g2 + a53*g3 + a54*g4;\n \+ f5 := uk + gg*h;\n g5 := gn(xk + c5*h,yk + ff*h,f5);\n\n ff := a61 *f1 + a62*f2 + a63*f3 + a64*f4 + a65*f5;\n gg := a61*g1 + a62*g2 + a 63*g3 + a64*g4 + a65*g5;\n f6 := uk + gg*h;\n g6 := gn(xk + c6*h,y k + ff*h,f6);\n\n ff := a71*f1 + a72*f2 + a73*f3 + a74*f4 + a75*f5 + a76*f6;\n gg := a71*g1 + a72*g2 + a73*g3 + a74*g4 + a75*g5 + a76*g6 ;\n f7 := uk + gg*h;\n g7 := gn(xk + h,yk + ff*h,f7);\n\n ff := \+ a81*f1 + a82*f2 + a83*f3 + a84*f4 + a85*f5 + a86*f6;\n gg := a81*g1 \+ + a82*g2 + a83*g3 + a84*g4 + a85*g5 + a86*g6;\n f8 := uk + gg*h;\n\n if DERIV_ then\n g8 := gn(xk + h,yk + ff*h,f8);;\n gg := \+ b1*g1 + b3*g3 + b4*g4 + b6*g6 + b7*g7 + b8*g8;\n us := uk + gg*h; \n Digits := saveDigits;\n return evalf(us);\n else \n \+ ff := b1*f1 + b3*f3 + b4*f4 + b6*f6 + b7*f7 + b8*f8;\n ys := yk + ff*h;\n Digits := saveDigits;\n return evalf(ys);\n end if;\nend proc: # of rk56step\n\n # start of main procedure\n x := op(1,xrng);\n y := op(1,iy);\n u := op(1,iu);\n if not type(ind ets(gxyu,name) minus \{x,y,u\},set(realcons)) then\n error \"the \+ 1st argument, %1, must depend only on the variables %2, %3 and %4\",gx yu,x,y,u;\n end if;\n xrg := op(2,xrng);\n x0 := op(1,xrg);\n \+ xn := op(2,xrg);\n y0 := op(2,iy);\n u0 := op(2,iu);\n\n # Get t he options.\n # Set the default values to start with.\n maxstps := 2000;\n t := Float(1,-Digits);\n hmx := 0.5;\n hstrt := evalf(0 .1*10^(-ceil(Digits/10)));\n hmn := min(0.000005,hstrt/20);\n errc ntl := 0;\n maxtemp := 0;\n maxtemp2 := 0;\n outpt := 'rkinterp' ;\n prntflg := false;\n if nargs>4 then\n Options:=[args[5..n args]];\n if not type(Options,list(equation)) then\n erro r \"each optional argument must be an equation\"\n end if;\n \+ if hasoption(Options,'maxsteps','maxstps','Options') then\n i f not type(maxstps,posint) then\n error \"\\\"maxsteps\\\" \+ must be a positive integer\"\n end if;\n end if;\n i f hasoption(Options,'tolerance','t','Options') then \n tt := e valf(t); \n if not type(tt,float) or \n tt>Float(1, -iquo(Digits,2)) or tthmx) or evalf(hstrttrue then prntflg := false 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 stdstep := evalb(member(outpt,\{'points','rkstep','rkinterp ','endpt'\}));\n drvstep := evalb(member(outpt,\{'derivpts','derivst ep','derivinterp'\}));\n\n if prntflg then\n print(`method: Ver ner (2004) 8 stage, order 5-6`);\n print(`an embedded order 5 sch eme provides error control`);\n if outpt='rkinterp' then\n \+ print(`4 extra stages are used to construct the interpolation proced ure`);\n end if;\n print(``);\n end if;\n\n saveDigits : = Digits;\n Digits := max(trunc(evalhf(Digits)),Digits+5);\n\n # p rocedure to evaluate the 2nd derivative as a function of x,y and u=dy/ dx\n gn := subs(\{GXYU_=evalf(gxyu),X_=x,Y_=y,U_=u\},\n proc(X_ ,Y_,U_)\n local val; \n val := traperror(evalf(GXYU_));\n \+ if val=lasterror or not type(val,numeric) then\n error \"ev aluation of 2nd derivative failed when x = %1, y = %2, and the derivat ive u = %3\",evalf(X_,saveDigits),evalf(Y_,saveDigits),evalf(U_,saveDi gits);\n end if;\n val;\n end proc);\n\n c2 := evalf( 1/7);\n c3 := evalf(2/9);\n c4 := evalf(3/7);\n c5 := evalf(2/3) ;\n c6 := .75;\n\n a21 := c2;\n a31 := evalf(4/81);\n a32 := e valf(14/81);\n a41 := evalf(291/1372);\n a42 := evalf(-27/49);\n \+ a43 := evalf(1053/1372);\n a51 := evalf(86/297);\n a52 := evalf(- 14/33);\n a53 := evalf(42/143);\n a54 := evalf(1960/3861);\n a61 := evalf(-267/22528);\n a62 := evalf(189/704);\n a63 := evalf(630 99/585728);\n a64 := evalf(58653/366080);\n a65 := evalf(4617/2048 0);\n a71 := evalf(10949/6912);\n a72 := -2.15625;\n a73 := eval f(-90891/68096);\n a74 := evalf(112931/25920);\n a75 := evalf(-698 61/17920);\n a76 := evalf(26378/10773);\n a81 := evalf(1501/19008) ;\n a82 := evalf(-21/88);\n a83 := evalf(219519/347776);\n a84 : = evalf(163807/926640);\n a85 := -0.6515625;\n a86 := evalf(1544/1 539);\n\n b1 := evalf(79/1080);\n b3 := evalf(19683/69160);\n b4 := evalf(16807/84240);\n b6 := evalf(2816/7695);\n b7 := .01;\n \+ b8 := evalf(187/2800);\n\n e1 := 0.0025;\n e3 := evalf(-19683/138 3200);\n e4 := evalf(2401/78000);\n e5 := evalf(-243/4000);\n e6 := evalf(64/1425);\n e7 := 0.01;\n e8 := evalf(-37/2800);\n\n # # nodes and linking coefficients for 4 extra stages used for interpola tion\n ## coefficients by Peter Stone (2007) \n if member(outpt,\{ 'rkinterp','derivinterp','interp_pair'\}) then;\n cA := 0.5;\n \+ cB := 0.02;\n cC := 0.2;\n a91 := b1;\n a93 := b3;\n a94 := b4;\n a96 := b6;\n a97 := .01;\n a98 := b8 ;\n aA1 := evalf(437147/6393600);\n aA3 := evalf(37666701/11 6979200);\n aA4 := evalf(18206783/311688000);\n aA5 := evalf (318087/2368000);\n aA6 := evalf(-125092/1423575);\n aA7 := \+ evalf(-49/1850);\n aA9 := 0.3125e-1;\n aB1 := evalf(75937703 3/42187500000);\n aB3 := evalf(96242803803/21612500000000);\n \+ aB4 := evalf(-38501694091/13162500000000);\n aB5 := evalf(10382 1669/12500000000);\n aB6 := evalf(-386400752/75146484375);\n \+ aB7 := evalf(-64159111/46875000000);\n aB8 := evalf(2357835043/1 312500000000);\n aB9 := evalf(-52871/312500000);\n aBA := ev alf(-28812/9765625);\n aC1 := evalf(-56439341621/363389625000);\n aC3 := evalf(458482004217/5817598718750);\n aC4 := evalf(64 2635325997/28344390750000);\n aC5 := evalf(2264031/107671000);\n \+ aC6 := evalf(-18595185664/2589151078125);\n aC7 := evalf(-14 6506629/33647187500);\n aC8 := evalf(-1309139623/942121250000);\n aC9 := evalf(93111766/16487121875);\n aCA := evalf(-4325161 7/1009415625);\n aCB := evalf(4478125/15827637);\n end if;\n \+ \n xstart := evalf(x0);\n xend:= evalf(xn);\n \n sgn := sign(x end-xstart);\n h := sgn*hstrt;\n\n eps := evalf(t);\n safety := \+ 0.9;\n pgrow := -0.16666666666666666667;\n pshrink := -0.2;\n er rcontrol := 0.00003401222408; #(5/safety)^(1/pgrow);\n tiny := Floa t(1,-3*saveDigits);\n \n xk := evalf(x0);\n yk := evalf(y0);\n \+ uk := evalf(u0);\n \n if errcntl=2 then\n if stdstep then\n \+ if maxtemp<>0 then\n maxval := abs(evalf(maxtemp))\n else \n maxval := max(abs(yk),tiny)\n en d if;\n elif drvstep then\n if maxtemp2<>0 then\n \+ maxval := abs(evalf(maxtemp2))\n else\n maxval \+ := max(abs(uk),tiny)\n end if;\n else\n if maxtem p<>0 then\n maxval := abs(evalf(maxtemp))\n else \+ \n maxval := max(abs(yk),tiny)\n end if;\n \+ if maxtemp2<>0 then\n maxval2 := abs(evalf(maxtemp2))\n \+ else\n maxval2 := max(abs(uk),tiny)\n end if; \n end if;\n end if;\n f1 := uk;\n g1 := gn(xk,yk,uk);\n\n \+ finished := false;\n soln := NULL;\n soln2 := NULL;\n\n for k \+ from 1 to maxstps do\n if stdstep then \n if errcntl=0 th en scale := max(abs(yk),abs(uk*h),tiny)\n elif errcntl=1 then \+ scale := max(abs(yk),tiny)\n elif errcntl=2 then scale := abs( maxval)\n else scale := max(abs(uk*h),tiny) end if;\n eli f drvstep then\n if errcntl=0 then scale := max(abs(uk),abs(g1 *h),tiny)\n elif errcntl=1 then scale := max(abs(uk),tiny)\n \+ elif errcntl=2 then scale := abs(maxval)\n else scale : = max(abs(g1*h),tiny) end if;\n else\n if errcntl=0 then \n scale := max(abs(yk),abs(uk*h),tiny);\n scale 2 := max(abs(uk),abs(g1*h),tiny);\n elif errcntl=1 then\n \+ scale := max(abs(yk),tiny);\n scale2 := max(abs(uk), tiny);\n elif errcntl=2 then\n scale := abs(maxval) ;\n scale2 := abs(maxval2);\n else\n sca le := max(abs(uk*h),tiny);\n scale2 := max(abs(g1*h),tiny); \n end if;\n end if;\n \n if abs(h)>=hmx then\n h := sgn*hmx;\n maxstepsize := true;\n else\n \+ maxstepsize := false;\n end if;\n if abs(h)<=hmn then \n h := sgn*hmn;\n minstepsize := true;\n else\n \+ minstepsize := false;\n end if;\n if (xk+h-xend)*(xk +h-xstart)>0 then \n h := xend-xk;\n laststep := true; \n else\n laststep := false;\n end if;\n\n # Do step.\n do\n ff := a21*f1;\n gg := a21*g1;\n \+ f2 := uk + gg*h;\n g2 := gn(xk + c2*h,yk + ff*h,f2);\n\n \+ ff := a31*f1 + a32*f2;\n gg := a31*g1 + a32*g2;\n \+ f3 := uk + gg*h;\n g3 := gn(xk + c3*h,yk + ff*h,f3); \n\n \+ ff := a41*f1 + a42*f2 + a43*f3;\n gg := a41*g1 + a42*g 2 + a43*g3;\n f4 := uk + gg*h;\n g4 := gn(xk + c4*h,yk + ff*h,f4);\n\n ff := a51*f1 + a52*f2 + a53*f3 + a54*f4;\n \+ gg := a51*g1 + a52*g2 + a53*g3 + a54*g4;\n f5 := uk + gg *h;\n g5 := gn(xk + c5*h,yk + ff*h,f5);\n\n ff := a61* f1 + a62*f2 + a63*f3 + a64*f4 + a65*f5;\n gg := a61*g1 + a62*g 2 + a63*g3 + a64*g4 + a65*g5;\n f6 := uk + gg*h;\n g6 \+ := gn(xk + c6*h,yk + ff*h,f6);\n\n ff := a71*f1 + a72*f2 + a73 *f3 + a74*f4 + a75*f5 + a76*f6;\n gg := a71*g1 + a72*g2 + a73* g3 + a74*g4 + a75*g5 + a76*g6;\n f7 := uk + gg*h;\n g7 := gn(xk + h,yk + ff*h,f7);\n\n ff := a81*f1 + a82*f2 + a83*f 3 + a84*f4 + a85*f5 + a86*f6;\n gg := a81*g1 + a82*g2 + a83*g3 + a84*g4 + a85*g5 + a86*g6;\n f8 := uk + gg*h;\n g8 : = gn(xk + h,yk + ff*h,f8);\n \n yout := yk + (b1*f1 + b3*f3 + \+ b4*f4 + b6*f6 + b7*f7 + b8*f8)*h;\n uout := uk + (b1*g1 + b3*g 3 + b4*g4 + b6*g6 + b7*g7 + b8*g8)*h;\n\n # error estimate\n \+ if stdstep then \n errst := (e1*f1 + e3*f3 + e4*f4 \+ + e5*f5 + e6*f6 + e7*f7 + e8*f8)*h;\n elif drvstep then\n \+ errst := (e1*g1 + e3*g3 + e4*g4 + e5*g5 + e6*g6 + e7*g7 + e8*g8 )*h;\n else\n errst := (e1*f1 + e3*f3 + e4*f4 + e5* f5 + e6*f6 + e7*f7 + e8*f8)*h;\n errst2 := (e1*g1 + e3*g3 + e4*g4 + e5*g5 + e6*g6 + e7*g7 + e8*g8)*h;\n end if;\n \+ \n if stdstep or drvstep then \n err := abs(errst/ scale)/eps;\n else \n err := max(abs(errst/scale),a bs(errst2/scale2))/eps;\n end if; \n if err<=1.0 or m instepsize then break end if;\n \n # Shrink, but not t oo much.\n if prntflg then\n print(`reducing step-s ize and repeating step`);\n end if;\n htemp := safety* h*err^pshrink;\n if h>=0 then\n h := max(htemp,0.1* h)\n else\n h := min(htemp,0.1*h)\n end if; \n if maxstepsize then maxstepsize := false end if;\n \+ if abs(h)<=hmn then\n h := sgn*hmn;\n minstepsiz e := true;\n end if;\n end do;\n\n if member(outpt, \{'points','derivpts','rkstep','derivstep','step_pair','endpt'\}) then \n soln := soln,[xk,yk,uk];\n else # 4 extra stages neede d for interpolation\n ff := a91*f1 + a93*f3 + a94*f4 + a96*f6 \+ + a97*f7 + a98*f8;\n gg := a91*g1 + a93*g3 + a94*g4 + a96*g6 + a97*g7 + a98*g8;\n f9 := uk + gg*h;\n g9 := gn(xk + h ,yk + ff*h,f9);\n \n ff := aA1*f1 + aA3*f3 + aA4*f4 + aA5 *f5 + aA6*f6 + aA7*f7 + aA9*f9;\n gg := aA1*g1 + aA3*g3 + aA4* g4 + aA5*g5 + aA6*g6 + aA7*g7 + aA9*g9;\n fA := uk + gg*h;\n \+ gA := gn(xk + cA*h,yk + ff*h,fA);\n\n ff := aB1*f1 + aB 3*f3 + aB4*f4 + aB5*f5 + aB6*f6 + aB7*f7 + aB8*f8\n \+ + aB9*f9 + aBA*fA;\n gg := aB1*g1 + aB3*g3 + aB4*g4 + aB5*g5 + aB6*g6 + aB7*g7 + aB8*g8\n \+ + aB9*g9 + aBA*g A;\n fB := uk + gg*h;\n gB := gn(xk + cB*h,yk + ff*h,f B);\n\n ff := aC1*f1 + aC3*f3 + aC4*f4 + aC5*f5 + aC6*f6 + aC7 *f7 + aC8*f8\n + aC9*f 9 + aCA*fA + aCB*fB;\n gg := aC1*g1 + aC3*g3 + aC4*g4 + aC5*g5 + aC6*g6 + aC7*g7 + aC8*g8\n \+ + aC9*g9 + aCA*gA + aCB*gB;\n fC := uk + gg*h;\n \+ gC := gn(xk + cC*h,yk + ff*h,fC);\n\n if outpt='rkinterp' t hen\n soln := soln,[xk,yk,f1,f3,f4,f6,f7,f8,f9,fA,fB,fC];\n elif outpt='derivinterp' then\n soln := soln,[xk,u k,g1,g3,g4,g6,g7,g8,g9,gA,gB,gC];\n else\n soln := \+ soln,[xk,yk,f1,f3,f4,f6,f7,f8,f9,fA,fB,fC];\n soln2 := soln 2,[xk,uk,g1,g3,g4,g6,g7,g8,g9,gA,gB,gC];\n end if;\n end \+ if;\n \n if err>errcontrol then\n hnext := safety*h* err^pgrow;\n inc := false;\n else\n if abs(h) `,evalf(abs(errst),5),`abs err bound -> `,evalf(abs(scale )*eps,5));\n if stdstep then\n print(`step`,k,` ` ,h,` `,[xk,yk]);\n elif drvstep then\n print(`ste p`,k,` `,h,` `,[xk,uk]);\n else\n print(`step`, k,` `,h,` `,[xk,yk,uk]);\n end if;\n if laststep t hen\n print(`last step`);\n elif inc then\n \+ print(`increasing step-size by a factor of 5`)\n elif maxs tepsize then\n print(`used maximum step-size`)\n el if not minstepsize then\n print(`using error to adjust step -size`)\n else \n print(`used minimum step-size`)\n end if;\n print(``);\n end if;\n \n if (xk-xend)*(xend-xstart) >= 0 then\n finished := true;\n \+ break;\n end if;\n \n if errcntl=2 then\n if stdstep then \n if abs(yk)>maxval then maxval := abs(yk) end if;\n elif drvstep then\n if abs(uk)>maxval th en maxval := abs(uk) end if;\n else\n if abs(yk)>ma xval then maxval := abs(yk) end if;\n if abs(uk)>maxval2 th en maxval2 := abs(uk) end if;\n end if;\n end if;\n \+ h := hnext;\n end do;\n\n if not finished and k>=maxstps then\n \+ error \"reached maximum number of steps before reaching end of inte rval\"\n end if;\n\n \n if member(outpt,\{'rkstep','derivstep',' step_pair'\}) then\n soln := [soln,[xk,yk,uk]];\n eqns := \{ SOLN_=soln,GXYU_=gxyu,X_=x,Y_=y,U_=u,c2_=c2,c3_=c3,\n c4_=c4,c 5_=c5,a31_=a31,a32_=a32,a41_=a41,a42_=a42,\n a43_=a43,a51_=a51 ,a52_=a52,a53_=a53,a54_=a54,a61_=a61,\n a62_=a62,a63_=a63,a64_ =a64,a65_=a65,a71_=a71,a73_=a73,\n a74_=a74,a75_=a75,a76_=a76, a81_=a81,a82_=a82,a83_=a83,\n a84_=a84,a86_=a86,b1_=b1,b3_=b3, b4_=b4,b6_=b6,b8_=b8\};\n if outpt='rkstep' then\n return subs(`union`(eqns,\{DERIV_=false\}),eval(rk56step));\n elif outp t='derivstep' then\n return subs(`union`(eqns,\{DERIV_=true\}) ,eval(rk56step));\n else # outpt='step_pair' then\n retur n subs(`union`(eqns,\{DERIV_=false\}),eval(rk56step)),\n \+ subs(`union`(eqns,\{DERIV_=true\}),eval(rk56step));\n end if;\n elif member(outpt,\{'rkinterp','derivinterp','interp_pair'\}) then \n d12 := evalf(-207979/7020);\n d13 := evalf(859406/5265); \n d14 := evalf(-1617661/4680);\n d15 := evalf(553814/1755); \n d16 := evalf(-109975/1053);\n d32 := evalf(-19683/449540) ;\n d33 := evalf(190269/112385);\n d34 := evalf(-8207811/899 080);\n d35 := evalf(1692738/112385);\n d36 := evalf(-164025 /22477);\n d42 := evalf(-16807/547560);\n d43 := evalf(48740 3/410670);\n d44 := evalf(-2336173/365040);\n d45 := evalf(7 22701/68445);\n d46 := evalf(-420175/82134);\n d62 := evalf( -5632/100035);\n d63 := evalf(653312/300105);\n d64 := evalf (-391424/33345);\n d65 := evalf(1937408/100035);\n d66 := ev alf(-563200/60021);\n d72 := evalf(-1/650);\n d73 := evalf(5 8/975);\n d74 := evalf(-417/1300);\n d75 := evalf(172/325); \n d76 := evalf(-10/39);\n d82 := evalf(-187/18200);\n \+ d83 := evalf(5423/13650);\n d84 := evalf(-77979/36400);\n d8 5 := evalf(8041/2275);\n d86 := evalf(-935/546);\n d92 := ev alf(101/5096);\n d93 := evalf(-1957/2548);\n d94 := evalf(21 429/5096);\n d95 := evalf(-4577/637);\n d96 := evalf(2375/63 7);\n dA2 := evalf(68/351);\n dA3 := evalf(-7810/1053);\n \+ dA4 := evalf(1454/39);\n dA5 := evalf(-18634/351);\n dA6 \+ := evalf(24250/1053);\n dB2 := evalf(1562500/51597);\n dB3 : = evalf(-28906250/154791);\n dB4 := evalf(781250/1911);\n dB 5 := evalf(-19531250/51597);\n dB6 := evalf(19531250/154791);\n \+ dC2 := evalf(-6125/8424);\n dC3 := evalf(330875/12636);\n \+ dC4 := evalf(-23375/312);\n dC5 := evalf(78125/1053);\n dC 6 := evalf(-78125/3159);\n eqns := \n \{d12_=d12,d13_=d13, d14_=d14,d15_=d15,d16_=d16,\n d32_=d32,d33_=d33,d34_=d34,d35_=d 35,d36_=d36,\n d42_=d42,d43_=d43,d44_=d44,d45_=d45,d46_=d46,\n \+ d62_=d62,d63_=d63,d64_=d64,d65_=d65,d66_=d66,\n d72_=d72 ,d73_=d73,d74_=d74,d75_=d75,d76_=d76,\n d82_=d82,d83_=d83,d84_= d84,d85_=d85,d86_=d86,\n d92_=d92,d93_=d93,d94_=d94,d95_=d95,d9 6_=d96,\n dA2_=dA2,dA3_=dA3,dA4_=dA4,dA5_=dA5,dA6_=dA6,\n \+ dB2_=dB2,dB3_=dB3,dB4_=dB4,dB5_=dB5,dB6_=dB6,\n dC2_=dC2,dC3_ =dC3,dC4_=dC4,dC5_=dC5,dC6_=dC6\};\n if outpt='rkinterp' then\n \+ soln := [soln,[xk,yk]];\n return subs(`union`(eqns,\{SO LN_=soln\}),eval(rk56interp));\n elif outpt='derivinterp' then\n \+ soln := [soln,[xk,uk]];\n return subs(`union`(eqns,\{S OLN_=soln\}),eval(rk56interp));\n else # outpt='interp_pair'\n \+ soln := [soln,[xk,yk]];\n soln2 := [soln2,[xk,uk]];\n \+ return subs(`union`(eqns,\{SOLN_=soln\}),eval(rk56interp)),\n \+ subs(`union`(eqns,\{SOLN_=soln2\}),eval(rk56interp));\n \+ end if;\n else\n soln := [soln,[xk,yk,uk]];\n Digits : = saveDigits;\n if outpt='points' then\n return evalf([se q([soln[i,1],soln[i,2]],i=1..nops(soln))]); \n elif outpt='d erivpts' then\n return evalf([seq([soln[i,1],soln[i,3]],i=1..n ops(soln))]);\n elif outpt='points_pair' then\n return ev alf([seq([soln[i,1],soln[i,2]],i=1..nops(soln))]),\n evalf([ seq([soln[i,1],soln[i,3]],i=1..nops(soln))]); \n else # outpt='e ndpt'\n return soln[nops(soln),2];\n end if;\n end if; \nend proc: # of de2rk56" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 23 "de2rk67: implementation" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "rungk78" {MPLTEXT 1 0 57103 "de2rk67 := proc( gxyu::algebraic,xrng::(name=realcons..realcons),\n iy::(na me=realcons),iu::(name=realcons))\n local soln,xk,yk,k,xend,xstart,h ,xrg,c2,c3,c4,c5,c6,c7,c8,cC,cD,cE,cF,cG,a21,\n a32,a41,a43,a51,a53, a54,a61,a63,a64,a65,a71,a73,a74,a75,a76,a81,a83,a84,a85,\n a86,a87,a 91,a93,a94,a95,a96,a97,a98,aA1,aA3,aA4,aA5,aA6,aA7,aB1,aB3,aB4,aB5,\n \+ aB6,aB7,aB8,aB9,aC1,aC3,aC4,aC5,aC6,aC7,aC8,aC9,aCB,aD1,aD3,aD4,aD5, aD6,aD7,\n aD8,aD9,aDB,aDC,aE1,aE3,aE4,aE5,aE6,aE7,aE8,aE9,aEB,aEC,a ED,aF1,aF3,aF4,aF5,\n aF6,aF7,aF8,aF9,aFB,aFC,aFD,aG1,aG3,aG4,aG5,aG 6,aG7,aG8,aG9,aGB,aGC,aGD,f1,f2,\n f3,f4,f5,f6,f7,f8,f9,fA,fB,fC,fD, fE,fF,fG,g1,g2,g3,g4,g5,g6,g7,g8,g9,gA,gB,gC,\n gD,gE,gF,gG,b1,b4,b5 ,b6,b7,b8,b9,e1,e4,e5,e6,e7,e8,e9,eA,d12,d13,d14,d15,d16,\n d17,d42, d43,d44,d45,d46,d47,d52,d53,d54,d55,d56,d57,d62,d63,d64,d65,d66,d67,\n d72,d73,d74,d75,d76,d77,d82,d83,d84,d85,d86,d87,d92,d93,d94,d95,d96 ,d97,dB2,\n dB3,dB4,dB5,dB6,dB7,dC2,dC3,dC4,dC5,dC6,dC7,dD2,dD3,dD4, dD5,dD6,dD7,dE2,dE3,\n dE4,dE5,dE6,dE7,dF2,dF3,dF4,dF5,dF6,dF7,dG2,d G3,dG4,dG5,dG6,dG7,ff,gg,uk,yout,\n uout,errst,errst2,hmx,hmn,hstrt, sgn,gn,maxstps,tiny,scale,scale2,err,htemp,\n hnext,eps,i,Options,pr ntflg,t,tt,errcntl,maxval,maxval2,maxtemp,maxtemp2,\n x,y,u,errc,x0, y0,u0,xn,outpt,minstepsize,inc,rk67step,rk67interp,maxstepsize,\n la ststep,saveDigits,stdstep,drvstep,safety,pgrow,pshrink,errcontrol,fini shed,\n soln2,eqns,SQRT;\n\nrk67interp := proc(x_rk67interp::realcon s)\n local d12,d13,d14,d15,d16,d17,d42,d43,d44,d45,d46,d47,d52,d53,d 54,\n d55,d56,d57,d62,d63,d64,d65,d66,d67,d72,d73,d74,d75,d76,d77,d8 2,\n d83,d84,d85,d86,d87,dB2,dB3,dB4,dB5,dB6,dB7,dC2,dC3,dC4,dC5,dC6 ,\n dC7,dD2,dD3,dD4,dD5,dD6,dD7,dE2,dE3,dE4,dE5,dE6,dE7,dF2,dF3,dF4, \n dF5,dF6,dF7,dG2,dG3,dG4,dG5,dG6,dG7,s,b1,b4,b5,b6,b7,b8,b9,bB,bC, \n bD,bE,bF,bG,xF,xS,yF,f1,f4,f5,f6,f7,f8,f9,fB,fC,fD,fE,fF,fG,t,jF, \n jM,jS,n,h,data,xx,ys,saveDigits;\n options `Copyright 2007 by P eter Stone`;\n \n data := SOLN_;\n saveDigits := Digits;\n Dig its := max(trunc(evalhf(Digits)),Digits+5);\n xx := evalf(x_rk67inte rp);\n n := nops(data);\n if (data[1,1]data[n,1 ] or xxdata[1,1])) then\n error \"independent variable is outside t he interpolation interval: %1\",evalf(data[1,1])..evalf(data[n,1]);\n \+ end if;\n\n d12 := d12_; d13 := d13_; d14 := d14_; d15 := d15_; d1 6 := d16_; d17 := d17_;\n d42 := d42_; d43 := d43_; d44 := d44_; d45 := d45_; d46 := d46_; d47 := d47_;\n d52 := d52_; d53 := d53_; d54 \+ := d54_; d55 := d55_; d56 := d56_; d57 := d57_;\n d62 := d62_; d63 : = d63_; d64 := d64_; d65 := d65_; d66 := d66_; d67 := d67_;\n d72 := d72_; d73 := d73_; d74 := d74_; d75 := d75_; d76 := d76_; d77 := d77_ ;\n d82 := d82_; d83 := d83_; d84 := d84_; d85 := d85_; d86 := d86_; d87 := d87_;\n d92 := d92_; d93 := d93_; d94 := d94_; d95 := d95_; \+ d96 := d96_; d97 := d97_;\n dB2 := dB2_; dB3 := dB3_; dB4 := dB4_; d B5 := dB5_; dB6 := dB6_; dB7 := dB7_;\n dC2 := dC2_; dC3 := dC3_; dC 4 := dC4_; dC5 := dC5_; dC6 := dC6_; dC7 := dC7_;\n dD2 := dD2_; dD3 := dD3_; dD4 := dD4_; dD5 := dD5_; dD6 := dD6_; dD7 := dD7_;\n dE2 \+ := dE2_; dE3 := dE3_; dE4 := dE4_; dE5 := dE5_; dE6 := dE6_; dE7 := dE 7_;\n dF2 := dF2_; dF3 := dF3_; dF4 := dF4_; dF5 := dF5_; dF6 := dF6 _; dF7 := dF7_;\n dG2 := dG2_; dG3 := dG3_; dG4 := dG4_; dG5 := dG5_ ; dG6 := dG6_; dG7 := dG7_;\n\n # Perform a binary search for the in terval containing x.\n n := nops(data);\n jF := 0;\n jS := n+1; \n\n if data[1,1]1 do\n jM := trunc((jF+jS)/2);\n if xx>=data[jM,1] then jF := jM else jS := jM end if;\n end do;\n if jM = n then jF := n-1; jS := n end if;\n else\n while jS-jF>1 do\n jM := trunc((jF+jS) /2);\n if xx<=data[jM,1] then jF := jM else jS := jM end if;\n \+ end do;\n if jM = n then jF := n-1; jS := n end if;\n end \+ if;\n \n # Get the data needed from the list.\n xF := data[jF,1]; \n xS := data[jS,1];\n yF := data[jF,2];\n f1 := data[jF,3];\n \+ f4 := data[jF,4];\n f5 := data[jF,5];\n f6 := data[jF,6];\n f7 \+ := data[jF,7];\n f8 := data[jF,8];\n f9 := data[jF,9];\n fB := d ata[jF,10];\n fC := data[jF,11];\n fD := data[jF,12];\n fE := da ta[jF,13];\n fF := data[jF,14];\n fG := data[jF,15];\n\n # Calcu late the parameters.\n h := xx-xF;\n s := h/(xS-xF);\n b1 := ((( ((d17*s+d16)*s+d15)*s+d14)*s+d13)*s+d12)*s+1;\n b4 := (((((d47*s+d46 )*s+d45)*s+d44)*s+d43)*s+d42)*s;\n b5 := (((((d57*s+d56)*s+d55)*s+d5 4)*s+d53)*s+d52)*s;\n b6 := (((((d67*s+d66)*s+d65)*s+d64)*s+d63)*s+d 62)*s;\n b7 := (((((d77*s+d76)*s+d75)*s+d74)*s+d73)*s+d72)*s;\n b8 := (((((d87*s+d86)*s+d85)*s+d84)*s+d83)*s+d82)*s;\n b9 := (((((d97* s+d96)*s+d95)*s+d94)*s+d93)*s+d92)*s;\n bB := (((((dB7*s+dB6)*s+dB5) *s+dB4)*s+dB3)*s+dB2)*s;\n bC := (((((dC7*s+dC6)*s+dC5)*s+dC4)*s+dC3 )*s+dC2)*s; \n bD := (((((dD7*s+dD6)*s+dD5)*s+dD4)*s+dD3)*s+dD2)*s; \n bE := (((((dE7*s+dE6)*s+dE5)*s+dE4)*s+dE3)*s+dE2)*s;\n bF := (( (((dF7*s+dF6)*s+dF5)*s+dF4)*s+dF3)*s+dF2)*s;\n bG := (((((dG7*s+dG6) *s+dG5)*s+dG4)*s+dG3)*s+dG2)*s;\n\n # Calculate the interpolated y v alue.\n t := b1*f1 + b4*f4 + b5*f5 + b6*f6 + b7*f7 + b8*f8 + b9*f9 + bB*fB\n + bC*fC + bD*fD + bE*fE + bF*fF \+ + bG*fG;\n ys := yF + t*h;\n Digits := saveDigits;\n evalf(ys); \nend proc: # of rk67interp\n \nrk67step := proc(x_rk67step::realcon s)\n local c2,c3,c4,c5,c6,c7,c9,a21,a32,a41,a43,a51,a53,a54,a61,a63, a64,\n a65,a71,a73,a74,a75,a76,a81,a83,a84,a85,a86,a87,aA1,a93,a94,a 95,a96,\n a97,a98,f1,f2,f3,f4,f5,f6,f7,f8,f9,g1,g2,g3,g4,g5,g6,g7,g8 ,g9,b1,b4,\n b5,b6,b7,b8,b9,uk,xk,yk,jF,jM,jS,n,h,data,gn,xx,ys,us,s aveDigits;\n options `Copyright 2007 by Peter Stone`;\n \n data \+ := SOLN_;\n\n saveDigits := Digits;\n Digits := max(trunc(evalhf(D igits)),Digits+5);\n\n # procedure to evaluate the 2nd derivative as a function of x,y and u=dy/dx\n gn := proc(X_,Y_,U_)\n local v al; \n val := traperror(evalf(GXYU_));\n if val=lasterror or not type(val,numeric) then\n error \"evaluation of 2nd deriva tive failed when x = %1, y = %2, and the derivative u = %3\",evalf(X_, saveDigits),evalf(Y_,saveDigits),evalf(U_,saveDigits);\n end if; \n val;\n end proc;\n\n xx := evalf(x_rk67step);\n n := nop s(data);\n\n if (data[1,1]data[n,1] or xxdata[1,1])) t hen\n error \"independent variable is outside the interpolation i nterval: %1\",evalf(data[1,1])..evalf(data[n,1]);\n end if;\n\n c2 := c2_; c3 := c3_; c4 := c4_; c5 := c5_; c6 := c6_; c7 := c7_;\n c8 := c8_; a21 := c2; a32 := c3; a41 := a41_; a43 := 0.125;\n a51 := a 51_; a53 := a53_; a54 := a54_; a61 := a61_; a63 := a63_;\n a64 := a6 4_; a65 := a65_; a71 := a71_; a73 := a73_; a74 := a74_; \n a75 := a7 5_; a76 := a76_; a81 := a81_; a83 := a83_; a84 := a84_;\n a85 := a85 _; a86 := a86_; a87 := a87_; a91 := a91_; a93 := a93_; \n a94 := a94 _; a95 := a95_; a96 := a96_; a97 := a97_; a98 := a98_; \n b1 := b1_; b4 := b4_; b5 := b5_; b6 := b6_; b7 := b7_; b8 := b8_;\n b9 := b9_; \n\n # Peform a binary search for the interval containing x.\n n : = nops(data);\n jF := 0;\n jS := n+1;\n\n if data[1,1]1 do\n jM := trunc((jF+jS)/2);\n \+ if xx>=data[jM,1] then jF := jM else jS := jM end if;\n end do; \n if jM = n then jF := n-1; jS := n end if;\n else\n whil e jS-jF>1 do\n jM := trunc((jF+jS)/2);\n if xx<=data[jM, 1] then jF := jM else jS := jM end if;\n end do;\n if jM = n then jF := n-1; jS := n end if;\n end if;\n \n # Get the data ne eded from the list.\n xk := data[jF,1];\n yk := data[jF,2];\n uk := data[jF,3];\n\n # Do one step with step-size ..\n h := xx-xk; \n\n f1 := uk;\n g1 := gn(xk,yk,uk);\n\n ff := a21*f1;\n gg := a21*g1;\n f2 := uk + gg*h;\n g2 := gn(xk + c2*h,yk + ff*h,f2);\n \n ff := a32*f2;\n gg := a32*g2;\n f3 := uk + gg*h;\n g3 := gn (xk + c3*h,yk + ff*h,f3); \n\n ff := a41*f1 + a43*f3;\n gg := a41* g1 + a43*g3;\n f4 := uk + gg*h;\n g4 := gn(xk + c4*h,yk + ff*h,f4) ;\n\n ff := a51*f1 + a53*f3 + a54*f4;\n gg := a51*g1 + a53*g3 + a5 4*g4;\n f5 := uk + gg*h;\n g5 := gn(xk + c5*h,yk + ff*h,f5);\n\n \+ ff := a61*f1 + a63*f3 + a64*f4 + a65*f5;\n gg := a61*g1 + a63*g3 + \+ a64*g4 + a65*g5;\n f6 := uk + gg*h;\n g6 := gn(xk + c6*h,yk + ff*h ,f6);\n\n ff := a71*f1 + a73*f3 + a74*f4 + a75*f5 + a76*f6;\n gg : = a71*g1 + a73*g3 + a74*g4 + a75*g5 + a76*g6;\n f7 := uk + gg*h;\n \+ g7 := gn(xk + c7*h,yk + ff*h,f7);\n\n ff := a81*f1 + a83*f3 + a84*f 4 + a85*f5 + a86*f6 + a87*f7;\n gg := a81*g1 + a83*g3 + a84*g4 + a85 *g5 + a86*g6 + a87*g7;\n f8 := uk + gg*h;\n g8 := gn(xk + c8*h,yk \+ + ff*h,f8);\n\n ff := a91*f1 + a93*f3 + a94*f4 + a95*f5 + a96*f6 + a 97*f7 + a98*f8;\n gg := a91*g1 + a93*g3 + a94*g4 + a95*g5 + a96*g6 + a97*g7 + a98*g8;\n f9 := uk + gg*h;\n\n if DERIV_ then\n g9 \+ := gn(xk + h,yk + ff*h,f9);\n gg := b1*g1 + b4*g4 + b5*g5 + b6*g6 + b7*g7 + b8*g8 + b9*g9;\n us := uk + gg*h;\n Digits := sav eDigits;\n return evalf(us);\n else \n ff := b1*f1 + b4*f4 + b5*f5 + b6*f6 + b7*f7 + b8*f8 + b9*f9;\n ys := yk + ff*h;\n \+ Digits := saveDigits;\n return evalf(ys);\n end if;\nend pro c: # of rk67step\n\n # start of main procedure\n x := op(1,xrng); \n y := op(1,iy);\n u := op(1,iu);\n if not type(indets(gxyu,nam e) minus \{x,y,u\},set(realcons)) then\n error \"the 1st argument , %1, must depend only on the variables %2, %3 and %4\",gxyu,x,y,u;\n \+ end if;\n xrg := op(2,xrng);\n x0 := op(1,xrg);\n xn := op(2,x rg);\n y0 := op(2,iy);\n u0 := op(2,iu);\n\n # Get the options. \n # Set the default values to start with.\n maxstps := 2000;\n \+ t := Float(1,-Digits);\n hmx := 0.5;\n hstrt := evalf(0.1*10^(-cei l(Digits/10)));\n hmn := min(0.000005,hstrt/20);\n errcntl := 0;\n maxtemp := 0;\n maxtemp2 := 0;\n outpt := 'rkinterp';\n prntf lg := false;\n if nargs>4 then\n Options:=[args[5..nargs]];\n \+ if not type(Options,list(equation)) then\n error \"each op tional argument must be an equation\"\n end if;\n if hasopti on(Options,'maxsteps','maxstps','Options') then\n if not type( maxstps,posint) then\n error \"\\\"maxsteps\\\" must be a p ositive integer\"\n end if;\n end if;\n if hasoption (Options,'tolerance','t','Options') then \n tt := evalf(t); \n if not type(tt,float) or \n tt>Float(1,-iquo(Digit s,2)) or tthmx) or evalf(hstrttrue then prntflg := false end if; \n end if; \n if nops(Options)>0 then\n error \"%1 is not a valid op tion for %2\",op(1,Options), procname;\n end if;\n end if;\n\n \+ stdstep := evalb(member(outpt,\{'points','rkstep','rkinterp','endpt' \}));\n drvstep := evalb(member(outpt,\{'derivpts','derivstep','deri vinterp'\}));\n\n if prntflg then\n print(`method: Enright (Ver ner formula 1990) 10 stage, order 6-7`);\n print(`an embedded ord er 6 scheme provides error control`);\n if outpt='rkinterp' then \n print(`6 extra stages are used to construct the interpolati on procedure`);\n end if;\n print(``);\n end if;\n\n sav eDigits := Digits;\n Digits := max(trunc(evalhf(Digits)),Digits+5); \n\n # procedure to evaluate the 2nd derivative as a function of x,y and u=dy/dx\n gn := subs(\{GXYU_=evalf(gxyu),X_=x,Y_=y,U_=u\},\n \+ proc(X_,Y_,U_)\n local val; \n val := traperror(evalf(GXY U_));\n if val=lasterror or not type(val,numeric) then\n \+ error \"evaluation of 2nd derivative failed when x = %1, y = %2, and t he derivative u = %3\",evalf(X_,saveDigits),evalf(Y_,saveDigits),evalf (U_,saveDigits);\n end if;\n val;\n end proc);\n\n ## coefficients by Jim Verner\n # nodes \n c2 := evalf(1/18);\n c3 := evalf(1/9);\n c4 := evalf(1/6);\n c5 := evalf(4/9);\n c6 := \+ evalf(19/39);\n c7 := evalf(7/9);\n c8 := evalf(8/9);\n\n # link ing coefficients\n a21 := c2;\n a32 := c3; \n a41 := evalf(1/2 4);\n a43 := 0.125;\n a51 := evalf(44/81);\n a53 := evalf(-56/27 );\n a54 := evalf(160/81);\n a61 := evalf(91561/685464);\n a63 : = evalf(-12008/28561);\n a64 := evalf(55100/85683);\n a65 := evalf (29925/228488);\n a71 := evalf(-1873585/1317384);\n a73 := evalf(1 5680/2889);\n a74 := evalf(-4003076/1083375);\n a75 := evalf(-4381 3/21400);\n a76 := evalf(5751746/2287125);\n a81 := evalf(50383360 /12679821);\n a83 := evalf(-39440/2889);\n a84 := evalf(1258442432 /131088375);\n a85 := evalf(222872/29425);\n a86 := evalf(-9203268 152/1283077125);\n a87 := evalf(24440/43197);\n a91 := evalf(-2294 2833/6327608);\n a93 := evalf(71784/5947);\n a94 := evalf(-572980/ 77311);\n a95 := evalf(-444645/47576);\n a96 := evalf(846789710/90 281407);\n a97 := evalf(-240750/707693);\n a98 := evalf(3972375/14 534468);\n aA1 := evalf(3379947/720328);\n aA3 := evalf(-10656/677 );\n aA4 := evalf(78284/7447);\n aA5 := evalf(71865/5416);\n aA6 := evalf(-2803372/218671);\n aA7 := evalf(963000/886193); \n\n \+ # weights\n b1 := evalf(28781/595840);\n b4 := evalf(820752/31281 25);\n b5 := evalf(11259/280000);\n b6 := evalf(188245551/62510000 0);\n b7 := evalf(8667/43120);\n b8 := evalf(286011/2737280);\n \+ b9 := evalf(5947/140000);\n\n # error coefficients\n e1 := evalf(- 3531/595840);\n e4 := evalf(7704/284375);\n e5 := evalf(-95337/280 000);\n e6 := evalf(3933106749/10626700000);\n e7 := evalf(-8667/6 6640);\n e8 := evalf(286011/2737280);\n e9 := evalf(5947/140000); \n eA := evalf(-677/10000);\n\n ## nodes and linking coefficients \+ for 6 extra stages used for interpolation\n ## coefficients essentia lly those of W.H.Enright (1993) \n if member(outpt,\{'rkinterp','der ivinterp','interp_pair'\}) then;\n SQRT := evalf[Digits+3](sqrt(9 0853));\n cC := evalf(442/909-4/6363*SQRT);\n cD := 0.33;\n \+ cE := 0.49;\n cF := 0.61;\n cG := 0.35;\n aB1 := b 1; aB4 := b4; aB5 := b5;\n aB6 := b6; aB7 := b7; aB8 := b8; aB9 : = b9;\n aC1 := evalf(11500782840073597085891/22875813009324137639 4480 +\n 347602667982997729/57189532523310344098620*SQRT); \n aC4 := evalf(794918767646448887177152/320257798826495113020937 5 -\n 137422384360867840768/3202577988264951130209375*SQRT );\n aC5 := evalf(84269124746798382647/3981448936459923705000 -\n 215293121258077787/995362234114980926250*SQRT);\n aC 6 := evalf(12030734412172250507022797/79997262755821017042712500 -\n \+ 2041655568620905891771/6938538096168149437378125*SQRT);\n \+ aC7 := evalf(12608885740419399331/613143136214828250570 -\n \+ 657488494427626594/5211716657826040129845*SQRT);\n aC8 := e valf(-1171044770847163931/264779896617906218640 +\n 242477 98591381697/463364819081335882620*SQRT);\n aC9 := evalf(-14092051 85688274391/177391289248214422500 +\n 3057311703540761/443 47822312053605625*SQRT);\n aCB := evalf(243561230299384/304099352 99693901-\n 2322434132608/30409935299693901*SQRT);\n \+ aD1 := evalf(1502306202720008333061447/29374766853376000000000000 +\n \+ 3126692833058959793443287/762510197979934208000000000000*S QRT);\n aD4 := evalf(14575285912174737090561/60429388906250000000 000 -\n 9077872758165741724029/313725215445687500000000000 *SQRT);\n aD5 := evalf(-18036559373971584362499/47599764800000000 0000000-\n 38537171144973334348911/24711893893568000000000 00000*SQRT);\n aD6 := evalf(1352920089897847431103274703/18065300 735720000000000000000 -\n 4036637284909007967945489447/9378 7815299563952000000000000000*SQRT);\n aD7 := evalf(-2309093550000 85637997/22657488044800000000000 -\n 6646140167004703431168 3/2940715373334592000000000000*SQRT);\n aD8 := evalf(570074737194 45403888437/4653353006848000000000000-\n 578179970882375410 328571/120791737351760384000000000000*SQRT);\n aD9 := evalf(40523 41300370405229/336632000000000000000+\n 2127368298230962281 /2446722167680000000000000*SQRT);\n aDB := evalf(-183341815324915 6089/122113258000000000000+\n 1846789421375916171/792453987 791000000000000*SQRT);\n aDC := evalf(895329040032388269/56660551 7120000000000+\n 79170642190635173586639/73539730067004800 0000000000*SQRT);\n aE1 := evalf(63472312703155837317797756131/11 77630791475985897600000000000 +\n 453654247985838761866431/ 29440769786899647440000000000*SQRT);\n aE4 := evalf(3324599389021 10536824077757/1541658854501111328125000000 -\n 94213960911 34251901173/77082942725055566406250000*SQRT);\n aE5 := evalf(2180 8118118695032079526627/1103957109796600000000000000 -\n 409 297522766940260019/27598927744915000000000000*SQRT);\n aE6 := eva lf(163434554627706470804331019839/1232292123810454750000000000000 -\n \+ 13132645398396901409262867/123229212381045475000000000000*S QRT);\n aE7 := evalf(115345969968418926169167/6071764103881300000 000000 -\n 12320669221539113043/242870564155252000000000*SQ RT);\n aE8 := evalf(-42556750795339917186944817/10792284705371561 600000000000 -\n 6021136996292392683093/2698071176342890400 00000000*SQRT);\n aE9 := evalf(-1992929168149816073596867/2759892 77449150000000000000 -\n 204896940778270418139/275989277449 15000000000000*SQRT);\n aEB := evalf(84056791648457596199143983/1 0732339834309606220000000000 +\n 25127531386227343082961/13 41542479288700777500000000*SQRT);\n aEC := evalf(7174936380776481 074611049124987387/\n 747 15880296975738146964440000000000 +\n 8755575146183751557816 36808981/1494317605939514762939288800000000*SQRT);\n aED := evalf (-25949179022771474387043/594829247355851428960600 -\n 8802 54813493103748/2974146236779257144803*SQRT);\n aF1 := evalf(30403 02770337136329768408203011/57703908782323308982400000000000 -\n \+ 27805664230777838767882689/1442597719558082724560000000000*SQRT); \n aF4 := evalf(2626167145333789823380552731/10791611981507779296 875000000 +\n 6345738369828830304657/4150619992887607421875 0000*SQRT);\n aF5 := evalf(158752394088004083113707941/7727699768 576200000000000000 +\n 3583846237549473642123/1931924942144 05000000000000*SQRT);\n aF6 := evalf(1160644759100262780858457646 937/8626044866673183250000000000000 +\n 1642723348529448616 7930877/123229212381045475000000000000*SQRT);\n aF7 := evalf(6562 97759149621255662327/297516441090183700000000000 +\n 755166 281355508534317/11900657643607348000000000*SQRT);\n aF8 := evalf( -1228747478142046557023820711/75545992937600931200000000000 +\n \+ 4055509363768674605937/145280755649232560000000000*SQRT);\n \+ aF9 := evalf(-26449889813931965961835861/1931924942144050000000000000 \+ +\n 1794096200068460594163/193192494214405000000000000*SQRT );\n aFB := evalf(201347553402524051240218527/1073233983430960622 0000000000-\n 31431277740965230477791/134154247928870077750 0000000*SQRT);\n aFC := evalf(-8974913400428577075069503767310997 /\n 747158802969757381469644400 00000000 -\n 1095208717369001411094866904411/14943176059395 14762939288800000000*SQRT);\n aFD := evalf(1712956800471297282658 77/594829247355851428960600 +\n 1101084428090224188/2974146 236779257144803*SQRT);\n aG1 := evalf(172544210917722105598130227 /3391576679450839385088000000 +\n 3176876199752450173927/84 789416986270984627200000*SQRT);\n aG4 := evalf(111019168439769165 365741/493330833440355625000000 -\n 563903395955299673/1897 426282462906250000*SQRT);\n aG5 := evalf(7847274989491175037051/3 53266275134912000000000 -\n 318472484391171747/883165687837 2800000000*SQRT);\n aG6 := evalf(60024459139515434197977707/39433 3479619345520000000000 -\n 10218449841528261376771/39433347 961934552000000000*SQRT);\n aG7 := evalf(72680779249424414721/194 2964513242016000000 -\n 9586654983445059/777185805296806400 00*SQRT);\n aG8 := evalf(23094931095498698946279/3453531105718899 712000000 -\n 360386036939521593/6641405972536345600000*SQR T);\n aG9 := evalf(-217984284848388029671/88316568783728000000000 -\n 159429349419647307/8831656878372800000000*SQRT);\n \+ aGB := evalf(-17239555749073841710163/10303046240937221971200000 +\n 58654843252586650979/1287880780117152746400000*SQRT);\n \+ aGC := evalf(16748353122837812409131633846593/717272450850967086210 85862400000 +\n 2043801597108489464981675759/14345449017019 34172421717248000*SQRT);\n aGD := evalf(-80044753462531150076875/ 214138529048106514425816-\n 19263435335939112500/2676731613 1013314303227*SQRT);\n end if;\n \n xstart := evalf(x0);\n xen d:= evalf(xn);\n \n sgn := sign(xend-xstart);\n h := sgn*hstrt; \n\n eps := evalf(t);\n safety := 0.9;\n pgrow := -0.14285714285 714285714;\n pshrink := -0.16666666666666666667;\n errcontrol := 0 .6122200345e-5; #(5/safety)^(1/pgrow)\n tiny := Float(1,-3*saveDigi ts);\n \n xk := evalf(x0);\n yk := evalf(y0);\n uk := evalf(u0) ;\n \n if errcntl=2 then\n if stdstep then\n if maxte mp<>0 then\n maxval := abs(evalf(maxtemp))\n else \+ \n maxval := max(abs(yk),tiny)\n end if;\n el if drvstep then\n if maxtemp2<>0 then\n maxval := a bs(evalf(maxtemp2))\n else\n maxval := max(abs(uk), tiny)\n end if;\n else\n if maxtemp<>0 then\n \+ maxval := abs(evalf(maxtemp))\n else \n m axval := max(abs(yk),tiny)\n end if;\n if maxtemp2<>0 \+ then\n maxval2 := abs(evalf(maxtemp2))\n else\n \+ maxval2 := max(abs(uk),tiny)\n end if;\n end if; \n end if;\n f1 := uk;\n g1 := gn(xk,yk,uk);\n\n finished := f alse;\n soln := NULL;\n soln2 := NULL;\n\n for k from 1 to maxst ps do\n if stdstep then \n if errcntl=0 then scale := max (abs(yk),abs(uk*h),tiny)\n elif errcntl=1 then scale := max(ab s(yk),tiny)\n elif errcntl=2 then scale := abs(maxval)\n \+ else scale := max(abs(uk*h),tiny) end if;\n elif drvstep then \n if errcntl=0 then scale := max(abs(uk),abs(g1*h),tiny)\n \+ elif errcntl=1 then scale := max(abs(uk),tiny)\n elif er rcntl=2 then scale := abs(maxval)\n else scale := max(abs(g1*h ),tiny) end if;\n else\n if errcntl=0 then\n s cale := max(abs(yk),abs(uk*h),tiny);\n scale2 := max(abs(uk ),abs(g1*h),tiny);\n elif errcntl=1 then\n scale := max(abs(yk),tiny);\n scale2 := max(abs(uk),tiny);\n \+ elif errcntl=2 then\n scale := abs(maxval);\n \+ scale2 := abs(maxval2);\n else\n scale := max(abs(u k*h),tiny);\n scale2 := max(abs(g1*h),tiny);\n end \+ if;\n end if;\n \n if abs(h)>=hmx then\n h := s gn*hmx;\n maxstepsize := true;\n else\n maxstepsi ze := false;\n end if;\n if abs(h)<=hmn then\n h := \+ sgn*hmn;\n minstepsize := true;\n else\n minsteps ize := false;\n end if;\n if (xk+h-xend)*(xk+h-xstart)>0 the n \n h := xend-xk;\n laststep := true;\n else\n \+ laststep := false;\n end if;\n\n # Do step.\n do \n ff := a21*f1;\n gg := a21*g1;\n f2 := uk + \+ gg*h;\n g2 := gn(xk + c2*h,yk + ff*h,f2);\n\n ff := a3 2*f2;\n gg := a32*g2;\n f3 := uk + gg*h;\n g3 \+ := gn(xk + c3*h,yk + ff*h,f3); \n\n ff := a41*f1 + a43*f3;\n \+ gg := a41*g1 + a43*g3;\n f4 := uk + gg*h;\n g4 \+ := gn(xk + c4*h,yk + ff*h,f4);\n\n ff := a51*f1 + a53*f3 + a54 *f4;\n gg := a51*g1 + a53*g3 + a54*g4;\n f5 := uk + gg *h;\n g5 := gn(xk + c5*h,yk + ff*h,f5);\n\n ff := a61* f1 + a63*f3 + a64*f4 + a65*f5;\n gg := a61*g1 + a63*g3 + a64*g 4 + a65*g5;\n f6 := uk + gg*h;\n g6 := gn(xk + c6*h,yk + ff*h,f6);\n\n ff := a71*f1 + a73*f3 + a74*f4 + a75*f5 + a76 *f6;\n gg := a71*g1 + a73*g3 + a74*g4 + a75*g5 + a76*g6;\n \+ f7 := uk + gg*h;\n g7 := gn(xk + c7*h,yk + ff*h,f7);\n\n \+ ff := a81*f1 + a83*f3 + a84*f4 + a85*f5 + a86*f6 + a87*f7;\n \+ gg := a81*g1 + a83*g3 + a84*g4 + a85*g5 + a86*g6 + a87*g7;\n \+ f8 := uk + gg*h;\n g8 := gn(xk + c8*h,yk + ff*h,f8);\n\n ff := a91*f1 + a93*f3 + a94*f4 + a95*f5 + a96*f6 + a97*f7 + a 98*f8;\n gg := a91*g1 + a93*g3 + a94*g4 + a95*g5 + a96*g6 + a9 7*g7 + a98*g8;\n f9 := uk + gg*h;\n g9 := gn(xk + h,yk + ff*h,f9);\n\n yout := yk + (b1*f1 + b4*f4 + b5*f5 + b6*f6 + b7*f7 + b8*f8 + b9*f9)*h;\n uout := uk + (b1*g1 + b4*g4 + b5* g5 + b6*g6 + b7*g7 + b8*g8 + b9*g9)*h;\n \n # error estimate\n ff := aA1*f1 + aA3*f3 + aA4*f4 + aA5*f5 + aA6*f6 + aA7*f7;\n \+ gg := aA1*g1 + aA3*g3 + aA4*g4 + aA5*g5 + aA6*g6 + aA7*g7;\n \+ fA := uk + gg*h;\n gA := gn(xk + h,yk + ff*h,fA);\n\n \+ if stdstep then\n errst := (e1*f1 + e4*f4 + e5*f5 + \+ e6*f6 + e7*f7 + e8*f8 + e9*f9 + eA*fA)*h; \n elif drvstep then \n errst := (e1*g1 + e4*g4 + e5*g5 + e6*g6 + e7*g7 + e8*g8 \+ + e9*g9 + eA*gA)*h;\n else\n errst := (e1*f1 + e4*f 4 + e5*f5 + e6*f6 + e7*f7 + e8*f8 + e9*f9 + eA*fA)*h;\n err st2 := (e1*g1 + e4*g4 + e5*g5 + e6*g6 + e7*g7 + e8*g8 + e9*g9 + eA*gA) *h;\n end if;\n \n if stdstep or drvstep then \+ \n err := abs(errst/scale)/eps;\n else \n \+ err := max(abs(errst/scale),abs(errst2/scale2))/eps;\n end i f; \n if err<=1.0 or minstepsize then break end if;\n \+ \n # Shrink, but not too much.\n if prntflg then\n \+ print(`reducing step-size and repeating step`);\n end if;\n htemp := safety*h*err^pshrink;\n if h>=0 then\n h := max(htemp,0.1*h)\n else\n h := min (htemp,0.1*h)\n end if;\n if maxstepsize then maxsteps ize := false end if;\n if abs(h)<=hmn then\n h := s gn*hmn;\n minstepsize := true;\n end if;\n end do;\n\n if member(outpt,\{'points','derivpts','rkstep','derivste p','step_pair','endpt'\}) then\n soln := soln,[xk,yk,uk];\n \+ else # 6 extra stages needed for interpolation\n ff := aB1* f1 + aB4*f4 + aB5*f5 + aB6*f6 + aB7*f7 + aB8*f8 + aB9*f9;\n gg := aB1*g1 + aB4*g4 + aB5*g5 + aB6*g6 + aB7*g7 + aB8*g8 + aB9*g9;\n \+ fB := uk + gg*h;\n gB := gn(xk + h,yk + ff*h,fB);\n\n \+ ff := aC1*f1 + aC4*f4 + aC5*f5 + aC6*f6 + aC7*f7 + aC8*f8 + aC9* f9 + aCB*fB;\n gg := aC1*g1 + aC4*g4 + aC5*g5 + aC6*g6 + aC7*g 7 + aC8*g8 + aC9*g9 + aCB*gB;\n fC := uk + gg*h;\n gC \+ := gn(xk + cC*h,yk + ff*h,fC);\n\n ff := aD1*f1 + aD4*f4 + aD5 *f5 + aD6*f6 + aD7*f7 + aD8*f8 + aD9*f9 + aDB*fB\n \+ + aDC*fC;\n \+ gg := aD1*g1 + aD4*g4 + aD5*g5 + aD6*g6 + aD7*g7 + aD8*g8 + aD9* g9 + aDB*gB\n \+ + aDC*gC;\n fD := uk + gg*h;\n gD : = gn(xk + cD*h,yk + ff*h,fD);\n\n ff := aE1*f1 + aE4*f4 + aE5* f5 + aE6*f6 + aE7*f7 + aE8*f8 + aE9*f9 + aEB*fB\n \+ + aEC*fC + aED*fD;\n \+ gg := aE1*g1 + aE4*g4 + aE5*g5 + aE6*g6 + aE7*g7 + aE8*g8 + aE9*g 9 + aEB*gB\n \+ + aEC*gC + aED*gD;\n fE := uk + gg*h;\n gE := gn(xk + cE*h,yk + ff*h,fE);\n\n ff := aF1*f1 + aF4*f4 + aF5*f 5 + aF6*f6 + aF7*f7 + aF8*f8 + aF9*f9 + aFB*fB\n \+ + aFC*fC + aFD*fD;\n \+ gg := aF1*g1 + aF4*g4 + aF5*g5 + aF6*g6 + aF7*g7 + aF8*g8 + aF9*g9 + aFB*gB\n \+ + aFC*gC + aFD*gD;\n fF := uk + gg*h;\n gF := \+ gn(xk + cF*h,yk + ff*h,fF);\n\n ff := aG1*f1 + aG4*f4 + aG5*f5 + aG6*f6 + aG7*f7 + aG8*f8 + aG9*f9 + aGB*fB\n \+ + aGC*fC + aGD*fD;\n \+ gg := aG1*g1 + aG4*g4 + aG5*g5 + aG6*g6 + aG7*g7 + aG8*g8 + aG9*g9 \+ + aGB*gB\n \+ + aGC*gC + aGD*gD;\n fG := uk + gg*h;\n gG := g n(xk + cG*h,yk + ff*h,fG); \n\n if outpt='rkinterp' then\n soln := soln,[xk,yk,f1,f4,f5,f6,f7,f8,f9,fB,fC,fD,fE,fF,fG ];\n elif outpt='derivinterp' then\n soln := soln,[ xk,uk,g1,g4,g5,g6,g7,g8,g9,gB,gC,gD,gE,gF,gG];\n else\n \+ soln := soln,[xk,yk,f1,f4,f5,f6,f7,f8,f9,fB,fC,fD,fE,fF,fG];\n \+ soln2 := soln2,[xk,uk,g1,g4,g5,g6,g7,g8,g9,gB,gC,gD,gE,gF,gG] ;\n end if;\n end if;\n \n if err>errcontrol th en\n hnext := safety*h*err^pgrow;\n inc := false;\n \+ else\n if abs(h) `,evalf(abs(errst),5),`abs err bound -> `,evalf(abs(scale)*eps,5));\n if stdstep then\n \+ print(`step`,k,` `,h,` `,[xk,yk]);\n elif drvst ep then\n print(`step`,k,` `,h,` `,[xk,uk]);\n \+ else\n print(`step`,k,` `,h,` `,[xk,yk,uk]);\n \+ end if;\n if laststep then\n print(`last step`);\n \+ elif inc then\n print(`increasing step-size by a fa ctor of 5`)\n elif maxstepsize then\n print(`used m aximum step-size`)\n elif not minstepsize then\n pr int(`using error to adjust step-size`)\n else \n pr int(`used minimum step-size`)\n end if;\n print(``);\n end if;\n \n if (xk-xend)*(xend-xstart) >= 0 then\n \+ finished := true;\n break;\n end if;\n \n \+ if errcntl=2 then\n if stdstep then \n if abs(yk )>maxval then maxval := abs(yk) end if;\n elif drvstep then\n \+ if abs(uk)>maxval then maxval := abs(uk) end if;\n \+ else\n if abs(yk)>maxval then maxval := abs(yk) end if;\n \+ if abs(uk)>maxval2 then maxval2 := abs(uk) end if;\n \+ end if;\n end if;\n h := hnext;\n end do;\n\n if not fi nished and k>=maxstps then\n error \"reached maximum number of st eps before reaching end of interval\"\n end if;\n \n if member(o utpt,\{'rkstep','derivstep','step_pair'\}) then\n soln := [soln,[ xk,yk,uk]];\n eqns := \{SOLN_=soln,GXYU_=gxyu,X_=x,Y_=y,U_=u,c2_= c2,c3_=c3,\n c4_=c4,c5_=c5,c6_=c6,c7_=c7,c8_=c8,c9_=c9,a41_=a4 1,\n a51_=a51,a53_=a53,a54_=a54,a61_=a61,a63_=a63,a64_=a64,\n \+ a65_=a65,a71_=a71,a73_=a73,a74_=a74,a75_=a75,a76_=a76,\n \+ a81_=a81,a83_=a83,a84_=a84,a85_=a85,a86_=a86,a87_=a87,\n a9 1_=a91,a93_=a93,a94_=a94,a95_=a95,a96_=a96,a97_=a97,\n a98_=a9 8,b1_=b1,b4_=b4,b5_=b5,b6_=b6,b7_=b7,b8_=b8,b9_=b9\};\n if outpt= 'rkstep' then\n return subs(`union`(eqns,\{DERIV_=false\}),eva l(rk67step));\n elif outpt='derivstep' then\n return subs (`union`(eqns,\{DERIV_=true\}),eval(rk67step));\n else # outpt='s tep_pair' then\n return subs(`union`(eqns,\{DERIV_=false\}),ev al(rk67step)),\n subs(`union`(eqns,\{DERIV_=true\}),eva l(rk67step));\n end if;\n elif member(outpt,\{'rkinterp','deriv interp','interp_pair'\}) then\n SQRT := evalf[Digits+3](sqrt(9085 3)); \n d12 := evalf(-1245492445607086572225081867133090468655067 965932222387/\n 18536661357004623541974832014924538157850 4728717375840 +\n 567636630476852201021059394200997877801 3515749/\n 6201626415859693389754042159559899015674296711 856*SQRT);\n d13 := evalf(619272605386539484276343536403316701061 0274394963286001/\n 2595132589980647295876476482089435342 09906620204326176-\n 224682273110532408837174764893322966 231076268109837/\n 46341653392511558854937080037311345394 626182179343960*SQRT);\n d14 := evalf(-36033638377564737959842886 215129369079092076099666664271/\n 74146645428018494167899 3280596981526314018914869503360+\n 6970024818705686057600 853461829325865779670811050531/\n 64878314749516182396911 9120522358835524766550510815440*SQRT);\n d15 := evalf(18471519421 393009931491942508354367069752503925063167621/\n 32439157 3747580911984559560261179417762383275255407720-\n 6732876 3059222761276241780523037919254937089737629/\n 5792706674 063944856867135004663918174328272772417995*SQRT);\n d16 := evalf( -15001461228970908131092923220274158140637555553525125/\n \+ 421287758113741444135791636702830412678419837994036+\n 4 300693702808932497120998703956514517497439695250/\n 73725 3576699047527237635364229953222187234716489563*SQRT);\n d17 := ev alf(74357607912502959886982099899826543150485520824221250/\n \+ 8109789343689522799613989006529485444059581881385193-\n \+ 8276188149631282481324843493345801090640998610000/\n 8 109789343689522799613989006529485444059581881385193*SQRT);\n d42 \+ := evalf(1030484186012736659906682306185879664010577739584/\n \+ 96221238834312592026877197081263671772079653125-\n 3 90410094670758467158067206228065646634145664/\n 192442477 66862518405375439416252734354415930625*SQRT);\n d43 := evalf(-140 40492752991105957745181536605742675826055603904/\n 211686 725435487702459129833578780077898575236875+\n 10340070854 340934474776184767726915029408555776/\n 96221238834312592 026877197081263671772079653125*SQRT);\n d44 := evalf(190474670029 177038707050892899545193058401433877808/\n 10584336271774 38512295649167893900389492876184375-\n 160383259177898125 080021668421251314614943766144/\n 67354867184018814418814 0379568845702404557571875*SQRT);\n d45 := evalf(-2682728115837994 05050526324644033445272252559656704/\n 105843362717743851 2295649167893900389492876184375+\n 2478821923703818496993 9863752518812512962779136/\n 9622123883431259202687719708 1263671772079653125*SQRT);\n d46 := evalf(30591809237766123963682 0540615387742339826576896/\n 1693493803483901619673038668 630240623188601895-\n 13933681462240583660826319948472250 2398578688/\n 1077677874944301030701024607310153123847292 115*SQRT);\n d47 := evalf(-12153303341163340651693384427927065347 7611032576/\n 2370891324877462267542254136082336872464042 653+\n 4875229117031834623265977816148826703888384/\n \+ 215535574988860206140204921462030624769458423*SQRT);\n \+ d52 := evalf(38874238489059856872960010130592130908010593477/\n \+ 23685228020753868806615925435387980743896530000-\n \+ 7363963142166995237151335821316868900409671/\n 236852280 2075386880661592543538798074389653000*SQRT);\n d53 := evalf(97517 843029873091519009069373133624672649307/\n 59213070051884 67201653981358846995185974132500*SQRT-\n 4815154513967887 4367120944853209025621358693017/\n 4737045604150773761323 185087077596148779306000);\n d54 := evalf(26129139007379869665900 12577679956099582506949761/\n 947409120830154752264637017 41551922975586120000-\n 302516872726528611764509919139757 7170653585141/\n 8289829807263854082315573902385793260363 7855000*SQRT);\n d55 := evalf(58444804358684592193007186280952224 509465238/\n 14803267512971168004134953397117487964935331 25*SQRT-\n 2300088505436171265394324266927747785202085685 73/\n 5921307005188467201653981358846995185974132500);\n \+ d56 := evalf(131142377740173337114582208861075368648359501/\n \+ 4737045604150773761323185087077596148779306-\n \+ 328523513234096986248906281087789711439204/\n 16579659614 527708164631147804771586520727571*SQRT);\n d57 := evalf(574732313 81411087623079589525084164283360/\n 165796596145277081646 31147804771586520727571*SQRT-\n 1302483521953781147477936 15711977046612476140/\n 165796596145277081646311478047715 86520727571);\n d62 := evalf(499969422347829786019491696078958893 67429710815381/\n 406748242741023170082846565650028207774 9923325000-\n 9470941532182236108083986705130470199924727 863/\n 406748242741023170082846565650028207774992332500*S QRT);\n d63 := evalf(12541966490732179776226396139937802765056374 3371/\n 1016870606852557925207116414125070519437480831250 *SQRT-\n 619286734463384620050862458582395426992818363130 01/\n 813496485482046340165693131300056415549984665000); \n d64 := evalf(3360521271597980850578036775928273706653274923439 633/\n 16269929709640926803313862626001128310999693300000 -\n 3890730519393186362969470712211710116041902648773/\n \+ 14236188495935810952899629797750987272124731637500*SQRT); \n d65 := evalf(150334083496796172533193084895058207211461442028/ \n 508435303426278962603558207062535259718740415625*SQRT- \n 295819022084621912852297173475226628279869278088269/\n 1016870606852557925207116414125070519437480831250);\n \+ d66 := evalf(168664857222933206806474670122706725038694237853/\n \+ 813496485482046340165693131300056415549984665-\n \+ 845041433727662371488993912982186607664350024/\n 56944 75398374324381159851919100394908849892655*SQRT);\n d67 := evalf(2 9566992858073804469903455415505672253706432/\n 1138895079 674864876231970383820078981769978531*SQRT-\n 670060131747 21112994157522457885661218493934968/\n 113889507967486487 6231970383820078981769978531);\n d72 := evalf(3886334222488465556 76606660186242923213784313/\n 473704560415077376132318508 70775961487793060-\n 736189905831886845160415708568536832 98499/\n 4737045604150773761323185087077596148779306*SQRT );\n d73 := evalf(-5295185333962630583023577697115483804198746303 /\n 104215003291317022749110071915707115273144732+\n \+ 6824335646956455717811622251749704277288081/\n 8 2898298072638540823155739023857932603637855*SQRT);\n d74 := evalf (287339966473756017908665309159049643016781339799/\n 2084 300065826340454982201438314142305462894640-\n 21170245508 0042913399624338443126721556529503/\n 1160576173016939571 524180346334011056450929970*SQRT);\n d75 := evalf(-17705717272062 6133379275321267100009364477099549/\n 9118812787990239490 54713129262437258640016405+\n 163599583162308734196252947 86296633152420616/\n 828982980726385408231557390238579326 03637855*SQRT);\n d76 := evalf(3605404526772494108751360829428331 049685114750/\n 26053750822829255687277517978926778818286 183-\n 11495100037949109721593516048526324108566000/\n \+ 116057617301693957152418034633401105645092997*SQRT);\n \+ d77 := evalf(-50131560017645533374150780148135050314873910000/\n \+ 1276633790318633528676598380967412162096022967+\n \+ 2010999266779263039787284525567039103440000/\n 11605761 7301693957152418034633401105645092997*SQRT);\n d82 := evalf(98751 7525934319097974257523533243267886225939333/\n 2315467891 30889821453477287056352899752332477280-\n 187065855071882 447355261631547265209261485959/\n 23154678913088982145347 728705635289975233247728*SQRT);\n d83 := evalf(-12231878121453676 64678446448033676758769910395993/\n 463093578261779642906 95457411270579950466495456+\n 247723383984519342556561887 7385142652655573403/\n 5788669728272245536336932176408822 4938083119320*SQRT);\n d84 := evalf(66375532255437640136901686415 740467536876489493569/\n 92618715652355928581390914822541 1599009329909120-\n 7684799119405557756406363485485499992 5020209589/\n 8104137619581143750871705046972351491331636 70480*SQRT);\n d85 := evalf(-584288669978066240151608560181430030 9027744285117/\n 5788669728272245536336932176408822493808 3119320+\n 742333108598975881415497750928209729291085451/ \n 7235837160340306920421165220511028117260389915*SQRT); \n d86 := evalf(416424222842223069560782175798972236238630753625/ \n 5788669728272245536336932176408822493808311932-\n \+ 521590164221940853617305790701881956426182250/\n \+ 10130172024476429688589631308715439364164545881*SQRT);\n d87 := \+ evalf(-206792685072787825168371968111057082548854878750/\n \+ 10130172024476429688589631308715439364164545881+\n 9124 9091730109060430348035347604399318590000/\n 1013017202447 6429688589631308715439364164545881*SQRT);\n d92 := evalf(61600078 948691438535436498866675033975470023823/\n 35527842031130 803209923888153081971115844795000-\n 11668928538893450752 821474588161849014318229/\n 35527842031130803209923888153 08197111584479500*SQRT);\n d93 := evalf(-763008896737730524543747 02649089814913461270283/\n 710556840622616064198477763061 6394223168959000+\n 1545266753260472356151204198140222930 79734993/\n 888196050778270080248097203827049277896119875 0*SQRT);\n d94 := evalf(41404207214731703944340007459266450637402 52819139/\n 142111368124523212839695552612327884463379180 000-\n 4793679302170705180291874471420567928024745759/\n \+ 124347447108957811234733608535786898905456782500*SQRT);\n d95 := evalf(-364471791682091940189183224498249828899461859127/ \n 8881960507782700802480972038270492778961198750+\n \+ 185223155620089139233580461930627700057441924/\n \+ 4440980253891350401240486019135246389480599375*SQRT);\n d96 := e valf(207808078982363665286549532666350977178735399/\n 710 5568406226160641984777630616394223168959-\n 1041156052866 067027563147164204148901640792/\n 49738978843583124493893 443414314759562182713*SQRT);\n d97 := evalf(-41278281401860572790 0414938789836129072419720/\n 4973897884358312449389344341 4314759562182713+\n 1821440485079945313586220724250868771 61280/\n 49738978843583124493893443414314759562182713*SQR T);\n dB2 := evalf(-564560335725330998034853598436898292948498354 11003601/\n 178615513051943284591718350196575482654405180 78422271+\n 142403276592771202378029928655719939171161840 5510/\n 2665903179879750516294303734277246009767241504242 13*SQRT);\n dB3 := evalf(1195899351048129091443514166119525885053 12505652440033/\n 595385043506477615305727833988584942181 3506026140757-\n 7543144964534395189741558797930488133717 249785068/\n 26659031798797505162943037342772460097672415 0424213*SQRT);\n dB4 := evalf(-1003855881122743285477194596323330 545077681204327771666/\n 17861551305194328459171835019657 548265440518078422271+\n 16714367005597800975160663279434 229819461730073606/\n 26659031798797505162943037342772460 0976724150424213*SQRT);\n dB5 := evalf(14667014022877264049898895 64026043605393485683669975168/\n 178615513051943284591718 35019657548265440518078422271-\n 180831576254761745665401 67857970353794914333214048/\n 266590317987975051629430373 427724600976724150424213*SQRT);\n dB6 := evalf(-36416525530250223 0907385791408911679802956387736440000/\n 5953850435064776 153057278339885849421813506026140757+\n 53386060368576275 5744887331563174923985551960000/\n 1568178341105735597820 1786672219094175101420613189*SQRT);\n dB7 := evalf(32733647300061 7945579893516531854042871977002320800000/\n 1786155130519 4328459171835019657548265440518078422271-\n 1587727444172 910090322320546664560990296148800000/\n 26659031798797505 1629430373427724600976724150424213*SQRT);\n dC2 := evalf(11352303 23607327582930999838580422891731542256382488105/\n 291457 742976870051344267267922881921818948292009982364+\n 59066 244383911681051255770329712958815574758756930765/\n 14572 8871488435025672133633961440960909474146004991182*SQRT);\n dC3 := evalf(-3006674812544326620349663912731736074211477170882749457/\n \+ 145728871488435025672133633961440960909474146004991182-\n \+ 156437848397470984648344464490883899812694876944585301/\n \+ 72864435744217512836066816980720480454737073002495591*SQRT );\n dC4 := evalf(13324592466308207367606604383798620669469582473 836593513/\n 29145774297687005134426726792288192181894829 2009982364+\n 6932810184545611044349992293410993689650701 93606128909/\n 145728871488435025672133633961440960909474 146004991182*SQRT);\n dC5 := evalf(-37502796041470853712561666940 0008694050450791797834536/\n 7286443574421751283606681698 0720480454737073002495591*SQRT-\n 36039460211503516330456 59458427844910607167834397260676/\n 728644357442175128360 66816980720480454737073002495591);\n dC6 := evalf(164432673922640 136583813059658606168442788666791315000/\n 66240396131106 82985096983361883680041339733909317781+\n 171109250706981 95778542993357056503351376264006590000/\n 662403961311068 2985096983361883680041339733909317781*SQRT);\n dC7 := evalf(-3164 31683205410296835853297045715795458050097420600000/\n 728 64435744217512836066816980720480454737073002495591-\n 329 27998384737024533139292872135106892315711511600000/\n 728 64435744217512836066816980720480454737073002495591*SQRT);\n dD2 : = evalf(-36973941277404807553093649179718938285760000000000000/\n \+ 284771207968754616793185268225185417780450548776251+\n \+ 58043815619384227481546325677386120000000000000/\n \+ 46753481905317922160075193290702083516193373679683*SQRT);\n dD3 \+ := evalf(195852093883494425825008126285129714960768000000000000/\n \+ 284771207968754616793185268225185417780450548776251-\n \+ 307459860466403526034884323376956816000000000000/\n \+ 46753481905317922160075193290702083516193373679683*SQRT);\n dD 4 := evalf(-433975986325961246403245484155164053784256000000000000/\n \+ 284771207968754616793185268225185417780450548776251+\n \+ 681280417052486840321147312190395272000000000000/\n \+ 46753481905317922160075193290702083516193373679683*SQRT);\n \+ dD5 := evalf(469515606769648844859076505274862984629248000000000000/ \n 284771207968754616793185268225185417780450548776251-\n 737072553485530165777879848345064576000000000000/\n \+ 46753481905317922160075193290702083516193373679683*SQRT);\n \+ dD6 := evalf(-2356419237083676160429808173261579763200000000000000 00/\n 284771207968754616793185268225185417780450548776251 +\n 33629474507481161574920311385440000000000000000/\n \+ 4250316536847083832734108480972916683290306698153*SQRT);\n \+ dD7 := evalf(4122415065859039931523531910104826880000000000000000 0/\n 284771207968754616793185268225185417780450548776251- \n 64716038302230153314052891385600000000000000000/\n \+ 46753481905317922160075193290702083516193373679683*SQRT);\n \+ dE2 := evalf(-413250732284251416811693521464553882942612500000/\n 17756815447159175444319959298910369163699228541+\n \+ 105132434254010817990034583829762376625000000/\n \+ 362383988717534192741223659161436105381616909*SQRT);\n dE3 := eva lf(12347706616230164816753008131857399054272937500000/\n \+ 372893124390342684330719145277117752437683799361-\n 27287 595721332884898403388614659457906450000000/\n 17756815447 159175444319959298910369163699228541*SQRT);\n dE4 := evalf(423253 728003122852990728081422253818643175000000/\n 12429770813 0114228110239715092372584145894599787*SQRT+\n 36220066476 6610305901409376896326482752162500000/\n 1972979494128797 271591106588767818795966580949);\n dE5 := evalf(-7942748761960247 948589805513429584907086362500000/\n 13810856458901580901 137746121374731571766066643-\n 65416467132630535829216376 266057105997200000000/\n 17756815447159175444319959298910 369163699228541*SQRT);\n dE6 := evalf(310773080925872978965665954 64475575822010000000000/\n 532704463414775263329598778967 31107491097685623+\n 135188183117147745258370937294388455 00000000000/\n 731162989000671930060233618190426965564085 8811*SQRT);\n dE7 := evalf(-2507076898477820784770507860107923700 5125000000000/\n 1242977081301142281102397150923725841458 94599787-\n 402056242736557854072021829113067400000000000 00/\n 124297708130114228110239715092372584145894599787*SQ RT);\n dF2 := evalf(422685139362473999493283918132943588092710125 00000/\n 659261742298069410523989653346219672419839184979 -\n 3475580372113118510881164788100647319125000000/\n \+ 10807569545869990336458846776167535613439986639*SQRT);\n \+ dF3 := evalf(1123025565008874140379109232326967279108050000000/\n \+ 659261742298069410523989653346219672419839184979*SQRT-\n \+ 185612783596395059692053224236518788380415187500000/\n \+ 659261742298069410523989653346219672419839184979);\n dF4 := evalf(289931163366790681847885836863676693606149837500000/\n \+ 659261742298069410523989653346219672419839184979-\n \+ 2488439707639343205961834335539239033316225000000/\n 6 59261742298069410523989653346219672419839184979*SQRT);\n dF5 := e valf(-116485456126822054815821533996110224177763162500000/\n \+ 659261742298069410523989653346219672419839184979+\n 2 692225643942456702608813575242748555174800000000/\n 65926 1742298069410523989653346219672419839184979*SQRT);\n dF6 := evalf (-105714013142384696890443504719206272987617500000000/\n \+ 659261742298069410523989653346219672419839184979-\n 13511 82411507879203029805812804951694500000000000/\n 659261742 298069410523989653346219672419839184979*SQRT);\n dF7 := evalf(756 12575562563729601104034274864233130375000000000/\n 659261 742298069410523989653346219672419839184979+\n 23638131289 4791795167468392848614380000000000000/\n 6592617422980694 10523989653346219672419839184979*SQRT);\n dG2 := evalf(2022259167 73594899051143979322023883211647432000/\n 360252318195666 3445486282258722511871146662213-\n 1108694301447614594026 993238833729947327760000/\n 36025231819566634454862822587 22511871146662213*SQRT);\n dG3 := evalf(-391981914805358152828798 31893148171202666084920000/\n 176523635915876508828827830 677403081686186448437+\n 41109512548378815407008975035344 376674564576000/\n 25217662273696644118403975811057583098 026635491*SQRT);\n dG4 := evalf(110568869921931111401233522989563 9923255255864000/\n 3602523181956663445486282258722511871 146662213-\n 63764336807766909138199684127536512806000334 4000/\n 176523635915876508828827830677403081686186448437* SQRT);\n dG5 := evalf(9855170473509665730227077766520280169165593 6000/\n 25217662273696644118403975811057583098026635491*S QRT-\n 11860073990354471424207143791273473130800116584000 /\n 176523635915876508828827830677403081686186448437);\n \+ dG6 := evalf(-4509810641702468578201419796202184147587380000000/ \n 25217662273696644118403975811057583098026635491-\n \+ 346230009558287183945438320962122549295680000000/\n \+ 176523635915876508828827830677403081686186448437*SQRT);\n dG 7 := evalf(18539123779155172114386433006171406849699600000000/\n \+ 176523635915876508828827830677403081686186448437+\n \+ 60570877422561081469799562036510196211200000000/\n 176 523635915876508828827830677403081686186448437*SQRT);\n eqns := \n \{d12_=d12,d13_=d13,d14_=d14,d15_=d15,d16_=d16,d17_=d17,\n \+ d42_=d42,d43_=d43,d44_=d44,d45_=d45,d46_=d46,d47_=d47,\n d5 2_=d52,d53_=d53,d54_=d54,d55_=d55,d56_=d56,d57_=d57,\n d62_=d62 ,d63_=d63,d64_=d64,d65_=d65,d66_=d66,d67_=d67,\n d72_=d72,d73_= d73,d74_=d74,d75_=d75,d76_=d76,d77_=d77,\n d82_=d82,d83_=d83,d8 4_=d84,d85_=d85,d86_=d86,d87_=d87,\n d92_=d92,d93_=d93,d94_=d94 ,d95_=d95,d96_=d96,d97_=d97,\n dB2_=dB2,dB3_=dB3,dB4_=dB4,dB5_= dB5,dB6_=dB6,dB7_=dB7,\n dC2_=dC2,dC3_=dC3,dC4_=dC4,dC5_=dC5,dC 6_=dC6,dC7_=dC7,\n dD2_=dD2,dD3_=dD3,dD4_=dD4,dD5_=dD5,dD6_=dD6 ,dD7_=dD7,\n dE2_=dE2,dE3_=dE3,dE4_=dE4,dE5_=dE5,dE6_=dE6,dE7_= dE7,\n dF2_=dF2,dF3_=dF3,dF4_=dF4,dF5_=dF5,dF6_=dF6,dF7_=dF7,\n dG2_=dG2,dG3_=dG3,dG4_=dG4,dG5_=dG5,dG6_=dG6,dG7_=dG7\};\n \+ if outpt='rkinterp' then\n soln := [soln,[xk,yk]];\n \+ return subs(`union`(eqns,\{SOLN_=soln\}),eval(rk67interp));\n el if outpt='derivinterp' then\n soln := [soln,[xk,uk]];\n \+ return subs(`union`(eqns,\{SOLN_=soln\}),eval(rk67interp));\n e lse # outpt='interp_pair'\n soln := [soln,[xk,yk]];\n \+ soln2 := [soln2,[xk,uk]];\n return subs(`union`(eqns,\{SOLN_=s oln\}),eval(rk67interp)),\n subs(`union`(eqns,\{SOLN_=s oln2\}),eval(rk67interp));\n end if;\n else\n soln := [sol n,[xk,yk,uk]];\n Digits := saveDigits;\n if outpt='points' t hen\n return evalf([seq([soln[i,1],soln[i,2]],i=1..nops(soln)) ]); \n elif outpt='derivpts' then\n return evalf([se q([soln[i,1],soln[i,3]],i=1..nops(soln))]);\n elif outpt='points_ pair' then\n return evalf([seq([soln[i,1],soln[i,2]],i=1..nops (soln))]),\n evalf([seq([soln[i,1],soln[i,3]],i=1..nops(soln ))]); \n else # outpt='endpt'\n return soln[nops(soln),2 ];\n end if;\n end if;\nend proc: # of de2rk67" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}} {SECT 1 {PARA 4 "" 0 "" {TEXT -1 23 "de2rk78: implementation" }}{PARA 0 "" 0 "" {TEXT -1 90 "\nThe code adapted from \"Numerical Recipes in \+ C \", Cambridge University Press, pp 714 -722." }}{PARA 0 "" 0 "" {TEXT -1 85 "The procedure uses constants supplied to Maple by Jim Ver ner for the dverk78 method. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {EXCHG {PARA 0 "> " 0 "rungk78" {MPLTEXT 1 0 86445 "de2rk78 := proc(gx yu::algebraic,xrng::(name=realcons..realcons),\n iy::(name =realcons),iu::(name=realcons))\n local soln,xk,yk,k,xend,xstart,h,x rg,c2,c3,c4,c5,c6,c7,c8,c9,cA,cB,cF,cG,\n cH,cI,cJ,cK,cL,a21,a31,a32 ,a41,a43,a51,a53,a54,a61,a63,a64,a65,a71,a74,a75,\n a76,a81,a84,a85, a86,a87,a91,a94,a95,a96,a97,a98,aA1,aA4,aA5,aA6,aA7,aA8,aA9,\n aB1,a B4,aB5,aB6,aB7,aB8,aB9,aBA,aC1,aC4,aC5,aC6,aC7,aC8,aC9,aCA,aCB,aD1,aD4 ,\n aD5,aD6,aD7,aD8,aD9,aDA,aE1,aE6,aE7,aE8,aE9,aEA,aEB,aEC,aF1,aF6, aF7,aF8,aF9,\n aFA,aFB,aFC,aFE,aG1,aG6,aG7,aG8,aG9,aGA,aGB,aGC,aGE,a GF,aH1,aH6,aH7,aH8,aH9,\n aHA,aHB,aHC,aHE,aHF,aHG,aI1,aI6,aI7,aI8,aI 9,aIA,aIB,aIC,aIE,aIF,aIG,aIH,aJ1,\n aJ6,aJ7,aJ8,aJ9,aJA,aJB,aJC,aJE ,aJF,aJG,aJH,aK1,aK6,aK7,aK8,aK9,aKA,aKB,aKC,\n aKE,aKF,aKG,aKH,aL1, aL6,aL7,aL8,aL9,aLA,aLB,aLC,aLE,aLF,aLG,aLH,f1,f2,f3,f4,\n f5,f6,f7, f8,f9,fA,fB,fC,fD,fE,fF,fG,fH,fI,fJ,fK,fL,g1,g2,g3,g4,g5,g6,g7,g8,\n \+ g9,gA,gB,gC,gD,gE,gF,gG,gH,gI,gJ,gK,gL,b1,b6,b7,b8,b9,bA,bB,bC,e1,e6, e7,e8,\n e9,eA,eB,eC,eD,d12,d62,d72,d82,d92,dA2,dB2,dC2,dE2,dF2,dG2, dH2,dI2,dJ2,dK2,\n dL2,d13,d63,d73,d83,d93,dA3,dB3,dC3,dE3,dF3,dG3,d H3,dI3,dJ3,dK3,dL3,d14,d64,\n d74,d84,d94,dA4,dB4,dC4,dE4,dF4,dG4,dH 4,dI4,dJ4,dK4,dL4,d15,d65,d75,d85,d95,\n dA5,dB5,dC5,dE5,dF5,dG5,dH5 ,dI5,dJ5,dK5,dL5,d16,d66,d76,d86,d96,dA6,dB6,dC6,\n dE6,dF6,dG6,dH6, dI6,dJ6,dK6,dL6,d17,d67,d77,d87,d97,dA7,dB7,dC7,dE7,dF7,dG7,\n dH7,d I7,dJ7,dK7,dL7,d18,d68,d78,d88,d98,dA8,dB8,dC8,dE8,dF8,dG8,dH8,dI8,dJ8 ,\n dK8,dL8,uk,yout,uout,errst,errst2,hmx,hmn,hstrt,sgn,gn,maxstps,t iny,scale,\n scale2,err,htemp,hnext,eps,i,Options,prntflg,t,tt,ff,gg ,errcntl,maxval,\n maxval2,maxtemp,maxtemp2,x,y,u,errc,x0,y0,u0,xn,o utpt,minstepsize,inc,\n rk78step,rk78interp,maxstepsize,laststep,sav eDigits,stdstep,drvstep,safety,\n pgrow,pshrink,errcontrol,finished, soln2,eqns,SQRT7;\n\nrk78interp := proc(x_rk78interp::realcons)\n lo cal b1,b6,b7,b8,b9,bA,bB,bC,bE,bF,bG,bH,bI,bJ,bK,bL,xF,xS,yF,\n f1,f 6,f7,f8,f9,fA,fB,fC,fE,fF,fG,fH,fI,fJ,fK,fL,d12,d62,d72,d82,\n d92,d A2,dB2,dC2,dE2,dF2,dG2,dH2,dI2,dJ2,dK2,dL2,d13,d63,d73,d83,d93,dA3,\n \+ dB3,dC3,dE3,dF3,dG3,dH3,dI3,dJ3,dK3,dL3,d14,d64,d74,d84,d94,dA4,dB4, dC4,\n dE4,dF4,dG4,dH4,dI4,dJ4,dK4,dL4,d15,d65,d75,d85,d95,dA5,dB5,d C5,dE5,dF5,\n dG5,dH5,dI5,dJ5,dK5,dL5,d16,d66,d76,d86,d96,dA6,dB6,dC 6,dE6,dF6,dG6,dH6,\n dI6,dJ6,dK6,dL6,d17,d67,d77,d87,d97,dA7,dB7,dC7 ,dE7,dF7,dG7,dH7,dI7,dJ7,\n dK7,dL7,d18,d68,d78,d88,d98,dA8,dB8,dC8, dE8,dF8,dG8,dH8,dI8,dJ8,dK8,dL8,\n s,t,jF,jM,jS,n,h,data,xx,ys,saveD igits;\n options `Copyright 2007 by Peter Stone`;\n \n data := S OLN_;\n saveDigits := Digits;\n Digits := max(trunc(evalhf(Digits) ),Digits+5);\n xx := evalf(x_rk78interp);\n n := nops(data);\n i f (data[1,1]data[n,1] or xxdata[1,1])) then\n er ror \"independent variable is outside the interpolation interval: %1\" ,evalf(data[1,1])..evalf(data[n,1]);\n end if;\n\n d12 := d12_; d6 2 := d62_; d72 := d72_; d82 := d82_; d92 := d92_; dA2 := dA2_;\n dB2 := dB2_; dC2 := dC2_; dE2 := dE2_; dF2 := dF2_; dG2 := dG2_; dH2 := d H2_;\n dI2 := dI2_; dJ2 := dJ2_; dK2 := dK2_; dL2 := dL2_; d13 := d1 3_; d63 := d63_;\n d73 := d73_; d83 := d83_; d93 := d93_; dA3 := dA3 _; dB3 := dB3_; dC3 := dC3_;\n dE3 := dE3_; dF3 := dF3_; dG3 := dG3_ ; dH3 := dH3_; dI3 := dI3_; dJ3 := dJ3_;\n dK3 := dK3_; dL3 := dL3_; d14 := d14_; d64 := d64_; d74 := d74_; d84 := d84_;\n d94 := d94_; \+ dA4 := dA4_; dB4 := dB4_; dC4 := dC4_; dE4 := dE4_; dF4 := dF4_;\n d G4 := dG4_; dH4 := dH4_; dI4 := dI4_; dJ4 := dJ4_; dK4 := dK4_; dL4 := dL4_;\n d15 := d15_; d65 := d65_; d75 := d75_; d85 := d85_; d95 := \+ d95_; dA5 := dA5_;\n dB5 := dB5_; dC5 := dC5_; dE5 := dE5_; dF5 := d F5_; dG5 := dG5_; dH5 := dH5_;\n dI5 := dI5_; dJ5 := dJ5_; dK5 := dK 5_; dL5 := dL5_; d16 := d16_; d66 := d66_;\n d76 := d76_; d86 := d86 _; d96 := d96_; dA6 := dA6_; dB6 := dB6_; dC6 := dC6_;\n dE6 := dE6_ ; dF6 := dF6_; dG6 := dG6_; dH6 := dH6_; dI6 := dI6_; dJ6 := dJ6_;\n \+ dK6 := dK6_; dL6 := dL6_; d17 := d17_; d67 := d67_; d77 := d77_; d87 \+ := d87_;\n d97 := d97_; dA7 := dA7_; dB7 := dB7_; dC7 := dC7_; dE7 : = dE7_; dF7 := dF7_;\n dG7 := dG7_; dH7 := dH7_; dI7 := dI7_; dJ7 := dJ7_; dK7 := dK7_; dL7 := dL7_;\n d18 := d18_; d68 := d68_; d78 := \+ d78_; d88 := d88_; d98 := d98_; dA8 := dA8_;\n dB8 := dB8_; dC8 := d C8_; dE8 := dE8_; dF8 := dF8_; dG8 := dG8_; dH8 := dH8_; \n dI8 := d I8_; dJ8 := dJ8_; dK8 := dK8_; dL8 := dL8_;\n\n # Perform a binary s earch for the interval containing x.\n n := nops(data);\n jF := 0; \n jS := n+1;\n\n if data[1,1]1 do\n jM := trunc((jF+jS)/2);\n if xx>=data[jM,1] then j F := jM else jS := jM end if;\n end do;\n if jM = n then jF \+ := n-1; jS := n end if;\n else\n while jS-jF>1 do\n jM : = trunc((jF+jS)/2);\n if xx<=data[jM,1] then jF := jM else jS : = jM end if;\n end do;\n if jM = n then jF := n-1; jS := n e nd if;\n end if;\n \n # Get the data needed from the list.\n xF := data[jF,1];\n xS := data[jS,1];\n yF := data[jF,2];\n f1 := \+ data[jF,3];\n f6 := data[jF,4];\n f7 := data[jF,5];\n f8 := data [jF,6];\n f9 := data[jF,7];\n fA := data[jF,8];\n fB := data[jF, 9];\n fC := data[jF,10];\n fE := data[jF,11];\n fF := data[jF,12 ];\n fG := data[jF,13];\n fH := data[jF,14];\n fI := data[jF,15] ;\n fJ := data[jF,16];\n fK := data[jF,17];\n fL := data[jF,18]; \n\n # Calculate the parameters.\n h := xx-xF;\n s := h/(xS-xF); \n b1 := ((((((d18*s+d17)*s+d16)*s+d15)*s+d14)*s+d13)*s+d12)*s+1;\n \+ b6 := ((((((d68*s+d67)*s+d66)*s+d65)*s+d64)*s+d63)*s+d62)*s;\n b7 \+ := ((((((d78*s+d77)*s+d76)*s+d75)*s+d74)*s+d73)*s+d72)*s;\n b8 := (( ((((d88*s+d87)*s+d86)*s+d85)*s+d84)*s+d83)*s+d82)*s;\n b9 := ((((((d 98*s+d97)*s+d96)*s+d95)*s+d94)*s+d93)*s+d92)*s;\n bA := ((((((dA8*s+ dA7)*s+dA6)*s+dA5)*s+dA4)*s+dA3)*s+dA2)*s;\n bB := ((((((dB8*s+dB7)* s+dB6)*s+dB5)*s+dB4)*s+dB3)*s+dB2)*s;\n bC := ((((((dC8*s+dC7)*s+dC6 )*s+dC5)*s+dC4)*s+dC3)*s+dC2)*s;\n bE := ((((((dE8*s+dE7)*s+dE6)*s+d E5)*s+dE4)*s+dE3)*s+dE2)*s;\n bF := ((((((dF8*s+dF7)*s+dF6)*s+dF5)*s +dF4)*s+dF3)*s+dF2)*s;\n bG := ((((((dG8*s+dG7)*s+dG6)*s+dG5)*s+dG4) *s+dG3)*s+dG2)*s;\n bH := ((((((dH8*s+dH7)*s+dH6)*s+dH5)*s+dH4)*s+dH 3)*s+dH2)*s;\n bI := ((((((dI8*s+dI7)*s+dI6)*s+dI5)*s+dI4)*s+dI3)*s+ dI2)*s;\n bJ := ((((((dJ8*s+dJ7)*s+dJ6)*s+dJ5)*s+dJ4)*s+dJ3)*s+dJ2)* s;\n bK := ((((((dK8*s+dK7)*s+dK6)*s+dK5)*s+dK4)*s+dK3)*s+dK2)*s;\n \+ bL := ((((((dL8*s+dL7)*s+dL6)*s+dL5)*s+dL4)*s+dL3)*s+dL2)*s;\n \n \+ # Calculate the interpolated y value.\n t := b1*f1 + b6*f6 + b7*f7 + b8*f8 + b9*f9 + bA*fA + bB*fB + bC*fC + bE*fE\n \+ + bF*fF + bG*fG + bH*fH + bI*fI + bJ*fJ + bK*fK + bL*fL;\n ys := y F + t*h;\n Digits := saveDigits;\n evalf(ys);\nend proc: # of rk78 interp\n \nrk78step := proc(x_rk78step::realcons)\n local c2,c3,c4 ,c5,c6,c7,c8,c9,cA,cB,a21,a31,a32,a41,a43,a51,a53,a54,\n a61,a63,a64 ,a65,a71,a74,a75,a76,a81,a84,a85,a86,a87,a91,a94,a95,a96,\n a97,a98, aA1,aA4,aA5,aA6,aA7,aA8,aA9,aB1,aB4,aB5,aB6,aB7,aB8,aB9,aBA,\n aC1,a C4,aC5,aC6,aC7,aC8,aC9,aCA,aCB,f1,f2,f3,f4,f5,f6,f7,f8,f9,fA,fB,\n f C,g1,g2,g3,g4,g5,g6,g7,g8,g9,gA,gB,gC,b1,b6,b7,b8,b9,bA,bB,bC,\n uk, xk,yk,jF,jM,jS,n,h,data,gn,xx,ys,us,saveDigits;\n options `Copyright 2004 by Peter Stone`;\n \n data := SOLN_;\n\n saveDigits := Dig its;\n Digits := max(trunc(evalhf(Digits)),Digits+5);\n\n # proced ure to evaluate the 2nd derivative as a function of x,y and u=dy/dx\n \+ gn := proc(X_,Y_,U_)\n local val; \n val := traperror(eval f(GXYU_));\n if val=lasterror or not type(val,numeric) then\n \+ error \"evaluation of 2nd derivative failed when x = %1, y = %2, \+ and the derivative u = %3\",evalf(X_,saveDigits),evalf(Y_,saveDigits), evalf(U_,saveDigits);\n end if;\n val;\n end proc;\n\n x x := evalf(x_rk78step);\n n := nops(data);\n\n if (data[1,1]data[n,1] or xxdata[1,1])) then\n error \"independent var iable is outside the interpolation interval: %1\",evalf(data[1,1])..ev alf(data[n,1]);\n end if;\n\n c2 := 0.0625; c3 := c3_; c4 := c4_; \+ c5 := 0.39; c6 := c6_; c7 := 0.156;\n c8 := 0.96; c9 := c9_; cA := c A_; cB :=0.95; a21 := c2; a31 := a31_;\n a32 := a32_; a41 := a41_; a 43 := a43_; a51 := a51_; a53 := a53_; a54 := a54_;\n a61 := a61_; a6 4 := a64_; a65 := a65_; a71 := a71_; a74 := a74_; a75 := a75_;\n a76 := a76_; a81 := a81_; a84 := -1.4; a85 := a85_; a86 := a86_; a87 := a 87_;\n a91 := a91_; a94 := a94_; a95 := a95_; a96 := a96_; a97 := a9 7_; a98 := a98_;\n aA1 := aA1_; aA4 := aA4_; aA5 := aA5_; aA6 := aA6 _; aA7 := aA7_; aA8 := aA8_;\n aA9 := aA9_; aB1 := aB1_; aB4 := aB4_ ; aB5 := aB5_; aB6 := aB6_; aB7 := aB7_;\n aB8 := aB8_; aB9 := aB9_; aBA := aBA_; aC1 := aC1_; aC4 := aC4_; aC5 := aC5_;\n aC6 := aC6_; \+ aC7 := aC7_; aC8 := aC8_; aC9 := aC9_; aCA := aCA_; aCB := aCB_;\n b 1 := b1_; b6 := b6_; b7 := b7_; b8 := b8_; b9 := b9_; bA := bA_; bB := bB_;\n bC := bC_;\n\n # Peform a binary search for the interval c ontaining x.\n n := nops(data);\n jF := 0;\n jS := n+1;\n\n if data[1,1]1 do\n jM := trunc ((jF+jS)/2);\n if xx>=data[jM,1] then jF := jM else jS := jM en d if;\n end do;\n if jM = n then jF := n-1; jS := n end if; \n else\n while jS-jF>1 do\n jM := trunc((jF+jS)/2);\n \+ if xx<=data[jM,1] then jF := jM else jS := jM end if;\n end do;\n if jM = n then jF := n-1; jS := n end if;\n end if;\n \+ \n # Get the data needed from the list.\n xk := data[jF,1];\n yk := data[jF,2];\n uk := data[jF,3];\n\n # Do one step with step-si ze ..\n h := xx-xk;\n\n f1 := uk;\n g1 := gn(xk,yk,uk);\n\n ff := a21*f1;\n gg := a21*g1;\n f2 := uk + gg*h;\n g2 := gn(xk + c 2*h,yk + ff*h,f2);\n\n ff := a31*f1 + a32*f2;\n gg := a31*g1 + a32 *g2;\n f3 := uk + gg*h;\n g3 := gn(xk + c3*h,yk + ff*h,f3); \n\n \+ ff := a41*f1 + a43*f3;\n gg := a41*g1 + a43*g3;\n f4 := uk + gg* h;\n g4 := gn(xk + c4*h,yk + ff*h,f4);\n\n ff := a51*f1 + a53*f3 + a54*f4;\n gg := a51*g1 + a53*g3 + a54*g4;\n f5 := uk + gg*h;\n \+ g5 := gn(xk + c5*h,yk + ff*h,f5);\n\n ff := a61*f1 + a64*f4 + a65*f5 ;\n gg := a61*g1 + a64*g4 + a65*g5;\n f6 := uk + gg*h;\n g6 := g n(xk + c6*h,yk + ff*h,f6);\n\n ff := a71*f1 + a74*f4 + a75*f5 + a76* f6;\n gg := a71*g1 + a74*g4 + a75*g5 + a76*g6;\n f7 := uk + gg*h; \n g7 := gn(xk + c7*h,yk + ff*h,f7);\n\n ff := a81*f1 + a84*f4 + a 85*f5 + a86*f6 + a87*f7;\n gg := a81*g1 + a84*g4 + a85*g5 + a86*g6 + a87*g7;\n f8 := uk + gg*h;\n g8 := gn(xk + c8*h,yk + ff*h,f8);\n \n ff := a91*f1 + a94*f4 + a95*f5 + a96*f6 + a97*f7 + a98*f8;\n gg := a91*g1 + a94*g4 + a95*g5 + a96*g6 + a97*g7 + a98*g8;\n f9 := uk \+ + gg*h;\n g9 := gn(xk + c9*h,yk + ff*h,f9);\n\n ff := aA1*f1 + aA4 *f4 + aA5*f5 + aA6*f6 + aA7*f7 + aA8*f8 + aA9*f9;\n gg := aA1*g1 + a A4*g4 + aA5*g5 + aA6*g6 + aA7*g7 + aA8*g8 + aA9*g9;\n fA := uk + gg* h;\n gA := gn(xk + cA*h,yk + ff*h,fA);\n\n ff := aB1*f1 + aB4*f4 + aB5*f5 + aB6*f6 + aB7*f7 + aB8*f8 + aB9*f9 + aBA*fA;\n gg := aB1*g1 + aB4*g4 + aB5*g5 + aB6*g6 + aB7*g7 + aB8*g8 + aB9*g9 + aBA*gA;\n f B := uk + gg*h;\n gB := gn(xk + cB*h,yk + ff*h,fB);\n\n ff := aC1* f1 + aC4*f4 + aC5*f5 + aC6*f6 + aC7*f7 + aC8*f8 + aC9*f9 + aCA*fA + aC B*fB;\n gg := aC1*g1 + aC4*g4 + aC5*g5 + aC6*g6 + aC7*g7 + aC8*g8 + \+ aC9*g9 + aCA*gA + aCB*gB;\n fC := uk + gg*h;\n\n if DERIV_ then\n \+ gC := gn(xk + h,yk + ff*h,fC);\n gg := b1*g1 + b6*g6 + b7*g7 + b8*g8 + b9*g9 + bA*gA + bB*gB + bC*gC;\n us := uk + gg*h;\n \+ Digits := saveDigits;\n return evalf(us);\n else \n ff \+ := b1*f1 + b6*f6 + b7*f7 + b8*f8 + b9*f9 + bA*fA + bB*fB + bC*fC;\n \+ ys := yk + ff*h;\n Digits := saveDigits;\n return evalf(y s);\n end if;\nend proc: # of rk78step\n\n # start of main procedu re\n x := op(1,xrng);\n y := op(1,iy);\n u := op(1,iu);\n if n ot type(indets(gxyu,name) minus \{x,y,u\},set(realcons)) then\n e rror \"the 1st argument, %1, must depend only on the variables %2, %3 \+ and %4\",gxyu,x,y,u;\n end if;\n xrg := op(2,xrng);\n x0 := op(1 ,xrg);\n xn := op(2,xrg);\n y0 := op(2,iy);\n u0 := op(2,iu);\n \n # Get the options.\n # Set the default values to start with.\n \+ maxstps := 2000;\n t := Float(1,-Digits);\n hmx := 0.5;\n hstr t := evalf(0.1*10^(-ceil(Digits/10)));\n hmn := min(0.000005,hstrt/2 0);\n errcntl := 0;\n maxtemp := 0;\n maxtemp2 := 0;\n outpt : = 'rkinterp';\n prntflg := false;\n if nargs>4 then\n Options :=[args[5..nargs]];\n if not type(Options,list(equation)) then\n \+ error \"each optional argument must be an equation\"\n en d if;\n if hasoption(Options,'maxsteps','maxstps','Options') then \n if not type(maxstps,posint) then\n error \"\\\"m axsteps\\\" must be a positive integer\"\n end if;\n end \+ if;\n if hasoption(Options,'tolerance','t','Options') then \n \+ tt := evalf(t); \n if not type(tt,float) or \n \+ tt>Float(1,-iquo(Digits,2)) or tthmx) or evalf( hstrttrue then prntflg := false 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 stdstep := evalb(member(outpt,\{'points','rkstep ','rkinterp','endpt'\}));\n drvstep := evalb(member(outpt,\{'derivpt s','derivstep','derivinterp'\}));\n\n if prntflg then\n print(` method: Verner 13 stage, order 7-8 .. Maple's dverk78 coefficients`); \n print(`an embedded order 7 scheme provides error control`);\n \+ if outpt='rkinterp' then\n print(`8 extra stages are used to construct the interpolation procedure`);\n end if;\n pri nt(``);\n end if;\n\n saveDigits := Digits;\n Digits := max(trun c(evalhf(Digits)),Digits+5);\n\n # procedure to evaluate the 2nd der ivative as a function of x,y and u=dy/dx\n gn := subs(\{GXYU_=evalf( gxyu),X_=x,Y_=y,U_=u\},\n proc(X_,Y_,U_)\n local val; \n \+ val := traperror(evalf(GXYU_));\n if val=lasterror or not type( val,numeric) then\n error \"evaluation of 2nd derivative faile d when x = %1, y = %2, and the derivative u = %3\",evalf(X_,saveDigits ),evalf(Y_,saveDigits),evalf(U_,saveDigits);\n end if;\n val ;\n end proc);\n\n ## coefficients by Jim Verner (supplied to M aple for dsolve's dverk78 method)\n # nodes\n c2 := 0.0625;\n c3 := evalf(112/1065);\n c4 := evalf(56/355);\n c5 := 0.39;\n c6 : = evalf(7/15);\n c7 := 0.156;\n c8 := 0.96;\n c9 := evalf(144358 68/16178861);\n cA := evalf(11/12);\n cB := 0.95;\n\n # linking \+ coefficients\n a21 := c2;\n a31 := evalf(18928/1134225);\n a32 : = evalf(100352/1134225);\n a41 := evalf(14/355);\n a43 := evalf(42 /355);\n a51 := evalf(94495479/250880000);\n a53 := evalf(-3528065 97/250880000);\n a54 := evalf(178077159/125440000);\n a61 := evalf (12089/252720);\n a64 := evalf(2505377/10685520);\n a65 := evalf(9 60400/5209191);\n a71 := evalf(21400899/350000000);\n a74 := evalf (3064329829899/27126050000000);\n a75 := evalf(-21643947/592609375); \n a76 := evalf(124391943/6756250000);\n a81 := evalf(-15365458811 /13609565775);\n a84 := -1.4;\n a85 := evalf(-8339128164608/939060 038475);\n a86 := evalf(341936800488/47951126225);\n a87 := evalf( 1993321838240/380523459069);\n a91 := evalf(-18409112522823765844381 57336464708426954728061551/\n 2991923615171151921596 253813483118262195533733898);\n a94 := evalf(-1476496080404865730363 8372252908780219281424435/\n 2981692102565021975611711269 209606363661854518);\n a95 := evalf(-8753250485021304411186134217852 66742862694404520560000/\n 17021203042889441839557167757596 1339495435011888324169);\n a96 := evalf(7632051964154290925661849798 370645637589377834346780/\n 1734087257418811583049800347581 865260479233950396659);\n a97 := evalf(75198347919711375170485321796 52347729899303513750000/\n 10456773035023175965978907078123 49832637339039997351);\n a98 := evalf(136604268348916635129331554935 8278750/\n 144631418224267718165055326464180836641);\n a A1 := evalf(-63077736705254280154824845013881/783693578537866338551121 90394368);\n aA4 := evalf(-31948346510820970247215/69560092169600266 32192);\n aA5 := evalf(-3378604805394255292453489375/517042670569824 692230499952);\n aA6 := evalf(1001587844183325981198091450220795/184 232684207722503701669953872896);\n aA7 := evalf(18702307523134990076 8014890274453125/25224698849808178010752575653374848);\n aA8 := eval f(1908158550070998850625/117087067039189929394176);\n aA9 := evalf(- 52956818288156668227044990077324877908565/\n 291277995947 7433986349822224412353951940608);\n aB1 := evalf(-101161065918269095 34781157993685116703/\n 9562819945036894030442231411 871744000);\n aB4 := evalf(-9623541317323077848129/38644495649777925 73440);\n aB5 := evalf(-4823348333146829406881375/576413233634141239 944816);\n aB6 := evalf(6566119246514996884067001154977284529/970305 487021846325473990863582315520);\n aB7 := evalf(22264551305192135492 56016892506730559375/\n 3648804431596752555774 35648380047355776);\n aB8 := evalf(39747262782380466933662225/175603 2802431424164410720256);\n aB9 := evalf(4817577141926095533524468380 5171548038966866545122229/\n 198978642051381514652888016595 2064118903852843612160000);\n aBA := evalf(-2378292068163246/4776872 8487211875);\n aC1 := evalf(-3218022174758599831659045535578571/1453 396753634469525663775847094384);\n aC4 := evalf(26290092604284231996 745/5760876126062860430544);\n aC5 := evalf(-69706929756092645204558 6710000/41107967755245430594036502319);\n aC6 := evalf(1827357820434 213461438077550902273440/139381013914245317709567680839641697);\n aC 7 := evalf(643504802814241550941949227194107500000/\n \+ 242124609118836550860494007545333945331);\n aC8 := evalf(162 259938151380266113750/59091082835244183497007);\n aC9 := evalf(-2302 8251632873523818545414856857015616678575554130463402/\n 2 0013169183191444503443905240405603349978424504151629055);\n aCA := e valf(7958341351371843889152/3284467988443203581305);\n aCB := evalf( -507974327957860843878400/121555654819179042718967);\n aD1 := evalf( -549080624436801105208519835138333/353987109028707139687100885600400); \n aD4 := evalf(29116675312186033956481/5331818957833865866320);\n \+ aD5 := evalf(-91153092961177216058210567600/7609267653017028089793994 539);\n aD6 := evalf(1540775569495234383390307262972464/164751248733 597841985831445059895);\n aD7 := evalf(-2027488254536386321212021357 622300000/\n 7563800784313191306927092359781 550321);\n aD8 := evalf(-707592954577756600025/243067160700710125392 6);\n aD9 := evalf(-315869406877370103440389763510384832076674110731 /\n 550845901016714794114516357859531754926300500125);\n aDA := evalf(4305840920849725632512/5066413598663346018375);\n\n \+ # weights\n b1 := evalf(4631674879841/103782082379976);\n b6 := ev alf(14327219974204125/40489566827933216);\n b7 := evalf(272076232401 0009765625000/10917367480696813922225349);\n b8 := evalf(-4985330058 59375/95352091037424);\n b9 := evalf(4059320304637772479267050305961 75437402459637909765779/\n 78803919436321841083201886041201 537229769115088303952);\n bA := evalf(-10290327637248/1082076946951) ;\n bB := evalf(863264105888000/85814662253313);\n bC := evalf(-29 746300739/247142463456);\n\n # error coefficients\n e1 := evalf(-2 6977003309/415128329519904);\n e6 := evalf(-10116376240875/101223917 06983304);\n e7 := evalf(2634472979394531250000/10917367480696813922 225349);\n e8 := evalf(-10537891917578125/1334929274523936);\n e9 \+ := evalf(483817271607736806435859407382949628502464641547815749/\n \+ 394019597181609205416009430206007686148845575441519760);\n \+ eA := evalf(-20718338541312/5410384734755);\n eB := evalf(8632641058 88000/85814662253313);\n eC := evalf(-29746300739/247142463456);\n \+ eD := evalf(45884771325/82380821152);\n\n ## nodes and linking coef ficients for 8 extra stages used for interpolation\n if member(outpt ,\{'rkinterp','derivinterp','interp_pair'\}) then\n SQRT7 := eval f[Digits+3](sqrt(7));\n cF := evalf(1/2-SQRT7/14);\n cG := 0 .45;\n cH := 0.1;\n cI := .325;\n cJ := 0.4;\n cK \+ := 0.3;\n cL := 0.7;\n aE1 := b1; aE6 := b6; aE7 := b7; aE8 \+ := b8; aE9 := b9;\n aEA := bA; aEB := bB; aEC := bC;\n aF1 : = evalf(923507123432989/20341288146475296 +\n 3728619917 660047/7973784953418316032*SQRT7);\n aF6 := evalf(153301253723984 1375/7935955098274910336 -\n 11049456415304617875/1944308 99907735303232*SQRT7);\n aF7 := evalf(129834778101757666015625000 /534951006554143882189042101 -\n 827664115296743896484375 00/26212599321153050227263062949*SQRT7);\n aF8 := evalf(130615647 53515625/18689009843335104 + \n 31047286856168359375/2564 1321505055762688*SQRT7);\n aF9 := evalf(-321179942882656684988231 1586102611111468427562764815533/\n 1544556820951908085230 7569664075501297034746557307574592 -\n 356099260585467255 08440519811766382833790503793377686129/\n 635993985097844 50568325286852075593576025427000678248320*SQRT7);\n aFA := evalf( 37302437685024/53021770400599+15742143124443936/12990333748146755*SQRT 7);\n aFB := evalf(-5071676622092000/4204918450412337 -\n \+ 380378998046332000/206041004070204513*SQRT7);\n aFC := eval f(1100613127343/48439922837376-29746300739/1424703612864*SQRT7);\n \+ aFE := evalf(3/392-3/392*SQRT7);\n aG1 := evalf(379175609750815 3347/82000657682944000000 +\n 821104665636321*SQRT7/64224 2913320960000);\n aG6 := evalf(768457351210057567857/518266455397 5451648000 -\n 62532827932224226599*SQRT7/226741574236426 0096000);\n aG7 := evalf(253006492725129434765625/107825851661203 1004664232 -\n 46193539913722265625*SQRT7/550332454705374 9203536);\n aG8 := evalf(15520930467726675/5625380975771648 -\n \+ 223623196267702275*SQRT7/157510667321606144);\n aG9 : = evalf(-2460557325340377391451533907481561939821407244475387801507/\n 25943677180682087599408028326321493738195593444709120000 00 +\n 19909145981716051470356945303928592126330523948448 1767*SQRT7/\n 4167675722502032152644473002111895025794576 43520000000);\n aGA := evalf(42605915213080224/16907452296109375 \+ -\n 1106650521763256349*SQRT7/860743025983750000);\n \+ aGB := evalf(-61485359208535917/14302443708885500 +\n 88 7648262380253891*SQRT7/400468423848794000);\n aGC := evalf(-15396 38779949901/263618627686400000);\n aGE := evalf(101277*SQRT7/6400 0000 - 79893/16000000);\n aGF := evalf(708939*SQRT7/16000000);\n \+ aH1 := evalf(-4215121951102178392285859687667763860057798131121*S QRT7/\n 5524907006530535028430669612520227037472745107200 000 +\n 2146494832028430179008259285220940994755770724705 07941/\n 430735562496636837154026079666108200408968890420 0800000);\n aH6 := evalf(1185913430248674317434870618267722069953 058737510283*SQRT7/\n 30008442317179171818955614503925786 051785131637358800 -\n 3119944319113373568400240361006807 75990247322848978459/\n 336094553952406724372302882443968 8037799934743384185600);\n aH7 := evalf(3993218188734046844685987 8465078752005970844232914062500*SQRT7/\n 7991406437185379 813952210414813050100306894094759398308201 +\n 3543645172 41886228469307408685840332599095120809109472656250/\n 453 1127449884110354510903305198999406874008951728578840749967);\n aH 8 := evalf(4482425539475296955559304996688796936033039629875*SQRT7/\n \+ 20845977587384504244419538387493205979265982789632 -\n \+ 46323379005207505717635146937831732889161714866875/\n \+ 48707428401292639724941806040008163970784940556544);\n aH 9 := evalf(22574276849009355247368902305397516894891496017540384017227 17509558293702749265180053129*SQRT7/\n15382319963668643757680340043617 3457280333898078105274095131111501836720940560681990528000 +\n42492774 7007115794173549944207313054512456246547193016720629059219336389266382 8255136238663/\n511041528480475840465122234652209083659859298107142717 25745707161059426234354242200368775000);\n aHA := evalf(826748868 09376207867730668398503287366098540852*SQRT7/\n 729064214 207911394139200255820908786902329141125 -\n 7288004949863 2524878182125169775730823179168857424/\n 1079575855654022 64132150807111942262675921815128125);\n aHB := evalf(-14452334021 133180240325340727774770157932021057436*SQRT7/\n 42400459 244893414400850901677665011873556514674975 +\n 1379482776 995886509031984497778742508172264966358576/\n 89040964414 2761702417868935230965249344686808174475);\n aHC := evalf(2400779 3882669277531292945295458719370616706273*SQRT7/\n 3052786 573498438708373913400079618470033568180000 -\n 8388482751 1307050547839026717499224825563955775903/\n 2564340721738 688515034087256066879514828197271200000);\n aHE := evalf(-4114436 729416819286145536389728774047607/\n 45654231239218086213 9685668388139491300000 +\n 167309383720093788703940567057 1696062733*SQRT7/\n 9130846247843617242793713367762789826 00000);\n aHF := evalf(1001373308041744989114984611143231300353/ \n 40206851375447746381620044659182739290625 -\n \+ 892131449472993412180461043706539941657*SQRT7/\n 257 32384880286557684236828581876953146000);\n aHG := evalf(-29759184 46967643161447796202231979904*SQRT7/\n 141528116841576067 263302557200323242303 +\n 5330320873680983609804206303875 6642432/\n 707640584207880336316512786001616211515);\n \+ aI1 := evalf(-674107528569903747657*SQRT7/194736308727800627200000 \+ +\n 6676290817642855930112293/173510051076470358835200000 );\n aI6 := evalf(-227711699316765384611310459*SQRT7/704009836106 7108075752652800 +\n 860764742109302032039902111/70400983 61067108075752652800);\n aI7 := evalf(-30419486646169688917382812 5*SQRT7/7899680270269138271354212352 +\n 5488869008435008 2907540673828125/365048175129272014088413829892096);\n aI8 := eva lf(-9661338110897182125*SQRT7/209930810853020925952 +\n 1 7032572234499325505625/51013187037284085006336);\n aI9 := evalf(- 399866634050793590138577034430419123328121213083504583*SQRT7/\n \+ 15662284975171767637632388396363220624764129071529984000 -\n \+ 35536138789892879785467436310191605063042447812379594764641 69103/\n 901446230039706917622219027421452669331200803483 07809053900800000);\n aIA := evalf(17668130783823819/665893505816 00000);\n aIB := evalf(661671021433877476047*SQRT7/97141739992551 63166400 -\n 65155243311676871271269/11657008799106195799 6800);\n aIC := evalf(-729594201713541940737*SQRT7/35809785668998 8567040000 +\n 62747303504529774530387/537146785034982850 5600000);\n aIE := evalf(3949144173/1143910400000 - 908415729*SQR T7/3145753600000);\n aIF := evalf(319287235181733/976956677120000 0 + 29511701788023*SQRT7/781565341696000);\n aIG := evalf(9084157 29*SQRT7/64849710464 - 2317999437/23581712896);\n aIH := evalf(99 92573019*SQRT7/352964993024 + 112099727493/1764824965120);\n aJ1 \+ := evalf(-146095905498393119*SQRT7/28971542512452028125 +\n \+ 362058929348034963652/8604548126198252353125);\n aJ6 := evalf( -1265405169411103125627*SQRT7/26855843967693741133700 +\n \+ 3975969853211105248983/26855843967693741133700);\n aJ7 := evalf( -12657909213874869625000000*SQRT7/225650046782590131286240929 +\n \+ 415816207712929843732812500000/231720033041041805817840809990 1);\n aJ8 := evalf(-1449590403533375*SQRT7/21622207233549366 +\n \+ 401012292446311250/1264899123162637911);\n aJ9 := ev alf(-59996123596940840224374749037212780460893575326973*SQRT7/\n \+ 1613165643042136101593301722342708423113370837903250 +\n \+ 4545331033882832793172679358463262481859874938464112848008/\n \+ 171937223442021735691493802532473119608154450127235048396 875);\n aJA := evalf(596839002960384/3381490459221875);\n aJ B := evalf(15060740399158849536*SQRT7/151783968738361924475 -\n \+ 233279804085211463168/455351906215085773425);\n aJC := eva lf(-4054391044424961*SQRT7/1366034914741472500 +\n 245337 047543712611/20490523721122087500);\n aJE := evalf(10035998/34560 28125 - 1453856*SQRT7/3456028125);\n aJF := evalf(28388719184/596 287034375 + 3935951656*SQRT7/71554444125);\n aJG := evalf(9304678 4*SQRT7/4559745267 - 254314496/3256960905);\n aJH := evalf(159924 16*SQRT7/387778923 + 2125088/55396989);\n aK1 := evalf(-408385534 705961*SQRT7/145260583712400000 +\n 374919208039108066769 /10197982964383113900000);\n aK6 := evalf(-1842890934880471474773 *SQRT7/70154041384995895206400 +\n 9140257429226972040116 7/859387006966199716278400);\n aK7 := evalf(-20162764237590275410 15625*SQRT7/64471441937882894653211694 +\n 33841871953716 766022861328125/257466703378935339797600899989);\n aK8 := evalf(- 103445455138314625*SQRT7/2767642525894318848 +\n 35072554 7323759375/1124354776144567032);\n aK9 := evalf(-1677086632362266 79032764579220523036527050471387*SQRT7/\n 808826050019168 0872887407280342617343355065504000 -\n 160655663824415526 41715569501610915152347902393579453431911/\n 305666175008 038641229322315613285545970052355781751197150000);\n aKA := evalf (901046813736528/3381490459221875);\n aKB := evalf(11995115179801 17216*SQRT7/21683424105480274925 -\n 79948431067612848912 /151783968738361924475);\n aKC := evalf(-5904670442992239*SQRT7/3 568417736467520000 +\n 2337899411211529353/21856558635863 5600000);\n aKE := evalf(367198237/110592900000 - 3242183*SQRT7/1 3824112500);\n aKF := evalf(126616972699/4770296275000 + 35109599 707*SQRT7/1144871106000);\n aKG := evalf(7410704*SQRT7/651392181 \+ - 298713632/3256960905);\n aKH := evalf(5094859*SQRT7/221587956 + 42920003/553969890);\n aL1 := evalf(276727826458195951*SQRT7/756 80764114160400000 +\n 27993284828754981193/51084515777058 2700000);\n aL6 := evalf(2396869514758244044683*SQRT7/70154041384 995895206400 +\n 135939757794763166091/474013793141864156 800);\n aL7 := evalf(2622375205154089396484375*SQRT7/644714419378 82894653211694 +\n 255381525950382596240234375/7058179501 70703033255683247);\n aL8 := evalf(134541471320113375*SQRT7/27676 42525894318848 +\n 555006824763125/510245713256409);\n \+ aL9 := evalf(113641767182046923760020640897484653184317971780717*SQ RT7/\n 42139837205998657347743391930585036358879891275840 00 -\n 19725249536158413435648903585583405898983584276673 979718229/\n 56142766838211179001304098786113671708785126 572158383150000);\n aLA := evalf(7074600250608/6273637215625);\n \+ aLB := evalf(-1560088302368475936*SQRT7/21683424105480274925 -\n \+ 122630185337518052432/65050272316440824775);\n aLC : = evalf(7679632208088369*SQRT7/3568417736467520000 +\n 46 8087818175204739/13381566511753200000);\n aLE := evalf(1321004573 /110592900000 + 4216793*SQRT7/13824112500);\n aLF := evalf(-16467 8417029/4770296275000 - 45663651397*SQRT7/1144871106000);\n aLG : = evalf(-9638384*SQRT7/651392181 + 57814624/651392181);\n aLH := \+ evalf(-6626389*SQRT7/221587956 - 46233929/553969890);\n end if;\n \+ \n xstart := evalf(x0);\n xend:= evalf(xn);\n \n sgn := sign(x end-xstart);\n h := sgn*hstrt;\n\n eps := evalf(t);\n safety := \+ 0.9;\n pgrow := -0.125;\n pshrink := -0.14285714285714285714;\n \+ errcontrol := 0.000001101996057; #(5/safety)^(1/pgrow)\n tiny := Flo at(1,-3*saveDigits);\n \n xk := evalf(x0);\n yk := evalf(y0);\n \+ uk := evalf(u0);\n \n if errcntl=2 then\n if stdstep then\n \+ if maxtemp<>0 then\n maxval := abs(evalf(maxtemp)) \n else \n maxval := max(abs(yk),tiny)\n \+ end if;\n elif drvstep then\n if maxtemp2<>0 then\n \+ maxval := abs(evalf(maxtemp2))\n else\n maxva l := max(abs(uk),tiny)\n end if;\n else\n if maxt emp<>0 then\n maxval := abs(evalf(maxtemp))\n else \+ \n maxval := max(abs(yk),tiny)\n end if;\n \+ if maxtemp2<>0 then\n maxval2 := abs(evalf(maxtemp2))\n \+ else\n maxval2 := max(abs(uk),tiny)\n end if ;\n end if;\n end if;\n f1 := uk;\n g1 := gn(xk,yk,uk);\n\n finished := false;\n soln := NULL;\n soln2 := NULL;\n\n for k from 1 to maxstps do\n if stdstep then \n if errcntl=0 t hen scale := max(abs(yk),abs(uk*h),tiny)\n elif errcntl=1 then scale := max(abs(yk),tiny)\n elif errcntl=2 then scale := abs (maxval)\n else scale := max(abs(uk*h),tiny) end if;\n el if drvstep then\n if errcntl=0 then scale := max(abs(uk),abs(g 1*h),tiny)\n elif errcntl=1 then scale := max(abs(uk),tiny)\n \+ elif errcntl=2 then scale := abs(maxval)\n else scale \+ := max(abs(g1*h),tiny) end if;\n else\n if errcntl=0 then \n scale := max(abs(yk),abs(uk*h),tiny);\n scale 2 := max(abs(uk),abs(g1*h),tiny);\n elif errcntl=1 then\n \+ scale := max(abs(yk),tiny);\n scale2 := max(abs(uk), tiny);\n elif errcntl=2 then\n scale := abs(maxval) ;\n scale2 := abs(maxval2);\n else\n sca le := max(abs(uk*h),tiny);\n scale2 := max(abs(g1*h),tiny); \n end if;\n end if;\n \n if abs(h)>=hmx then\n h := sgn*hmx;\n maxstepsize := true;\n else\n \+ maxstepsize := false;\n end if;\n if abs(h)<=hmn then \n h := sgn*hmn;\n minstepsize := true;\n else\n \+ minstepsize := false;\n end if;\n if (xk+h-xend)*(xk +h-xstart)>0 then \n h := xend-xk;\n laststep := true; \n else\n laststep := false;\n end if;\n\n # Do step.\n do\n ff := a21*f1;\n gg := a21*g1;\n \+ f2 := uk + gg*h;\n g2 := gn(xk + c2*h,yk + ff*h,f2);\n\n \+ ff := a31*f1 + a32*f2;\n gg := a31*g1 + a32*g2;\n \+ f3 := uk + gg*h;\n g3 := gn(xk + c3*h,yk + ff*h,f3); \n\n ff := a41*f1 + a43*f3;\n gg := a41*g1 + a43*g3;\n \+ f4 := uk + gg*h;\n g4 := gn(xk + c4*h,yk + ff*h,f4);\n\n \+ ff := a51*f1 + a53*f3 + a54*f4;\n gg := a51*g1 + a53*g 3 + a54*g4;\n f5 := uk + gg*h;\n g5 := gn(xk + c5*h,yk + ff*h,f5);\n\n ff := a61*f1 + a64*f4 + a65*f5;\n gg \+ := a61*g1 + a64*g4 + a65*g5;\n f6 := uk + gg*h;\n g6 : = gn(xk + c6*h,yk + ff*h,f6);\n\n ff := a71*f1 + a74*f4 + a75* f5 + a76*f6;\n gg := a71*g1 + a74*g4 + a75*g5 + a76*g6;\n \+ f7 := uk + gg*h;\n g7 := gn(xk + c7*h,yk + ff*h,f7);\n\n \+ ff := a81*f1 + a84*f4 + a85*f5 + a86*f6 + a87*f7;\n gg \+ := a81*g1 + a84*g4 + a85*g5 + a86*g6 + a87*g7;\n f8 := uk + gg *h;\n g8 := gn(xk + c8*h,yk + ff*h,f8);\n\n ff := a91* f1 + a94*f4 + a95*f5 + a96*f6 + a97*f7 + a98*f8;\n gg := a91*g 1 + a94*g4 + a95*g5 + a96*g6 + a97*g7 + a98*g8;\n f9 := uk + g g*h;\n g9 := gn(xk + c9*h,yk + ff*h,f9);\n\n ff := aA1 *f1 + aA4*f4 + aA5*f5 + aA6*f6 + aA7*f7 + aA8*f8 + aA9*f9;\n g g := aA1*g1 + aA4*g4 + aA5*g5 + aA6*g6 + aA7*g7 + aA8*g8 + aA9*g9;\n \+ fA := uk + gg*h;\n gA := gn(xk + cA*h,yk + ff*h,fA);\n \n ff := aB1*f1 + aB4*f4 + aB5*f5 + aB6*f6 + aB7*f7 + aB8*f8 + aB9*f9 + aBA*fA;\n gg := aB1*g1 + aB4*g4 + aB5*g5 + aB6*g6 + \+ aB7*g7 + aB8*g8 + aB9*g9 + aBA*gA;\n fB := uk + gg*h;\n \+ gB := gn(xk + cB*h,yk + ff*h,fB);\n\n ff := aC1*f1 + aC4*f4 \+ + aC5*f5 + aC6*f6 + aC7*f7 + aC8*f8 + aC9*f9 + aCA*fA\n \+ + aCB*fB; \n gg := aC1*g1 + aC4*g4 + aC5*g5 + aC6*g6 + aC7*g7 + aC8*g8 + aC9*g9 + aCA*gA\n \+ + aCB*gB;\n fC := uk + gg*h;\n \+ gC := gn(xk + h,yk + ff*h,fC);\n\n yout := yk + (b1*f1 + b6*f 6 + b7*f7 + b8*f8 + b9*f9 + bA*fA + bB*fB + bC*fC)*h;\n uout : = uk + (b1*g1 + b6*g6 + b7*g7 + b8*g8 + b9*g9 + bA*gA + bB*gB + bC*gC) *h;\n\n # error estimate\n gg := aD1*g1 + aD4*g4 + aD5 *g5 + aD6*g6 + aD7*g7 + aD8*g8 + aD9*g9 + aDA*gA;\n fD := uk + gg*h; \n if stdstep then\n errst := (e1*f1 + e6*f6 + e7*f7 + e8*f8 + e9*f9 + eA*fA + eB*fB + eC*fC\n \+ + eD*fD)*h; \n else\n ff := aD1*f1 + aD4*f4 + aD5*f5 + aD6*f6 + aD7*f7 + aD8*f8 + aD9*f9 + aDA*fA;\n gD := gn(xk + h,yk + \+ ff*h,fD);\n if drvstep then\n errst := (e1*g1 + e6*g6 + e7*g7 + e8*g8 + e9*g9 + eA*gA + eB*gB\n \+ + eC*gC + eD*gD)*h;\n \+ else\n errst := (e1*f1 + e6*f6 + e7*f7 + e8*f8 + e 9*f9 + eA*fA + eB*fB\n \+ + eC*fC + eD*fD)*h;\n\n errst2 := (e1*g1 \+ + e6*g6 + e7*g7 + e8*g8 + e9*g9 + eA*gA + eB*gB\n \+ + eC*gC + eD*gD)*h;\n \+ end if;\n end if;\n \n if stdstep or drvs tep then \n err := abs(errst/scale)/eps;\n else \n \+ err := max(abs(errst/scale),abs(errst2/scale2))/eps;\n \+ end if; \n if err<=1.0 or minstepsize then break end if; \n \n # Shrink, but not too much.\n if prntflg then\n print(`reducing step-size and repeating step`);\n \+ end if;\n htemp := safety*h*err^pshrink;\n if h >=0 then\n h := max(htemp,0.1*h)\n else\n \+ h := min(htemp,0.1*h)\n end if;\n if maxstepsize the n maxstepsize := false end if;\n if abs(h)<=hmn then\n \+ h := sgn*hmn;\n minstepsize := true;\n end if; \n end do;\n\n if member(outpt,\{'points','derivpts','rkstep ','derivstep','step_pair','endpt'\}) then\n soln := soln,[xk,y k,uk];\n else # 4 extra stages needed for interpolation\n \+ ff := aE1*f1 + aE6*f6 + aE7*f7 + aE8*f8 + aE9*f9 + aEA*fA + aEB*fB + \+ aEC*fC;\n gg := aE1*g1 + aE6*g6 + aE7*g7 + aE8*g8 + aE9*g9 + a EA*gA + aEB*gB + aEC*gC;\n fE := uk + gg*h;\n gE := gn (xk + h,yk + ff*h,fE);\n\n ff := aF1*f1 + aF6*f6 + aF7*f7 + aF 8*f8 + aF9*f9 + aFA*fA + aFB*fB + aFC*fC\n \+ + aFE*fE;\n gg := aF1*g1 + aF6*g6 + aF7*g7 + aF8*g8 + aF9*g9 + aFA*gA + aFB*gB + aFC *gC\n \+ + aFE*gE;\n fF := uk + gg*h;\n gF := gn(xk \+ + cF*h,yk + ff*h,fF);\n\n ff := aG1*f1 + aG6*f6 + aG7*f7 + aG8 *f8 + aG9*f9 + aGA*fA + aGB*fB + aGC*fC\n \+ + aGE*fE + aGF*fF;\n gg \+ := aG1*g1 + aG6*g6 + aG7*g7 + aG8*g8 + aG9*g9 + aGA*gA + aGB*gB + aGC* gC\n \+ + aGE*gE + aGF*gF;\n fG := uk + gg*h;\n gG := gn(xk + cG*h,yk + ff*h,fG);\n\n ff := aH1*f1 + aH6*f6 + aH7*f7 + aH8* f8 + aH9*f9 + aHA*fA + aHB*fB + aHC*fC\n \+ + aHE*fE + aHF*fF + aHG*fG;\n gg : = aH1*g1 + aH6*g6 + aH7*g7 + aH8*g8 + aH9*g9 + aHA*gA + aHB*gB + aHC*g C\n + aHE*gE \+ + aHF*gF + aHG*gG;\n fH := uk + gg*h;\n gH := gn(xk + \+ cH*h,yk + ff*h,fH);\n\n ff := aI1*f1 + aI6*f6 + aI7*f7 + aI8*f 8 + aI9*f9 + aIA*fA + aIB*fB + aIC*fC\n \+ + aIE*fE + aIF*fF + aIG*fG + aIH*fH;\n gg := aI1*g1 + aI6*g6 + aI7*g7 + aI8*g8 + aI9*g9 + aIA*gA + aIB*gB + aIC*gC \n + aIE*gE + aIF*gF + aIG*gG + aIH*gH;\n fI := uk + gg*h;\n gI := gn(xk + c I*h,yk + ff*h,fI);\n\n ff := aJ1*f1 + aJ6*f6 + aJ7*f7 + aJ8*f8 + aJ9*f9 + aJA*fA + aJB*fB + aJC*fC\n \+ + aJE*fE + aJF*fF + aJG*fG + aJH*fH;\n gg := \+ aJ1*g1 + aJ6*g6 + aJ7*g7 + aJ8*g8 + aJ9*g9 + aJA*gA + aJB*gB + aJC*gC \n + aJE*gE + aJF*gF + aJG*gG + aJH*gH;\n fJ := uk + gg*h;\n gJ := gn(xk + c J*h,yk + ff*h,fJ);\n\n ff := aK1*f1 + aK6*f6 + aK7*f7 + aK8*f8 + aK9*f9 + aKA*fA + aKB*fB + aKC*fC\n \+ + aKE*fE + aKF*fF + aKG*fG + aKH*fH;\n gg := \+ aK1*g1 + aK6*g6 + aK7*g7 + aK8*g8 + aK9*g9 + aKA*gA + aKB*gB + aKC*gC \n + aKE*gE + aKF*gF + aKG*gG + aKH*gH;\n fK := uk + gg*h;\n gK := gn(xk + c K*h,yk + ff*h,fK);\n\n ff := aL1*f1 + aL6*f6 + aL7*f7 + aL8*f8 + aL9*f9 + aLA*fA + aLB*fB + aLC*fC\n \+ + aLE*fE + aLF*fF + aLG*fG + aLH*fH;\n gg := \+ aL1*g1 + aL6*g6 + aL7*g7 + aL8*g8 + aL9*g9 + aLA*gA + aLB*gB + aLC*gC \n + aLE*gE + aLF*gF + aLG*gG + aLH*gH;\n fL := uk + gg*h;\n gL := gn(xk + c L*h,yk + ff*h,fL);\n\n if outpt='rkinterp' then\n s oln := soln,[xk,yk,f1,f6,f7,f8,f9,fA,fB,fC,fE,fF,fG,fH,fI,fJ,fK,fL];\n elif outpt='derivinterp' then\n soln := soln,[xk,u k,g1,g6,g7,g8,g9,gA,gB,gC,gE,gF,gG,gH,gI,gJ,gK,gL];\n else\n \+ soln := soln,[xk,yk,f1,f6,f7,f8,f9,fA,fB,fC,fE,fF,fG,fH,fI,f J,fK,fL];\n soln2 := soln2,[xk,uk,g1,g6,g7,g8,g9,gA,gB,gC,g E,gF,gG,gH,gI,gJ,gK,gL];\n end if;\n end if;\n \n \+ if err>errcontrol then\n hnext := safety*h*err^pgrow;\n \+ inc := false;\n else\n if abs(h) `,e valf(abs(errst),5),`abs err bound -> `,evalf(abs(scale)*eps,5));\n \+ if stdstep then\n print(`step`,k,` `,h,` `,[xk,yk] );\n elif drvstep then\n print(`step`,k,` `,h,` \+ `,[xk,uk]);\n else\n print(`step`,k,` `,h,` `, [xk,yk,uk]);\n end if;\n if laststep then\n \+ print(`last step`);\n elif inc then\n print(`incre asing step-size by a factor of 5`)\n elif maxstepsize then\n \+ print(`used maximum step-size`)\n elif not minstepsi ze then\n print(`using error to adjust step-size`)\n \+ else \n print(`used minimum step-size`)\n end if; \n print(``);\n end if;\n \n if (xk-xend)*(xend -xstart) >= 0 then\n finished := true;\n break;\n \+ end if;\n \n if errcntl=2 then\n if stdstep then \+ \n if abs(yk)>maxval then maxval := abs(yk) end if;\n \+ elif drvstep then\n if abs(uk)>maxval then maxval := abs (uk) end if;\n else\n if abs(yk)>maxval then maxval := abs(yk) end if;\n if abs(uk)>maxval2 then maxval2 := ab s(uk) end if;\n end if;\n end if;\n h := hnext;\n \+ end do;\n\n if not finished and k>=maxstps then\n error \"reach ed maximum number of steps before reaching end of interval\"\n end i f;\n\n if member(outpt,\{'rkstep','derivstep','step_pair'\}) then\n \+ soln := [soln,[xk,yk,uk]];\n eqns := \{SOLN_=soln,GXYU_=gxyu ,X_=x,Y_=y,U_=u,c3_=c3,c4_=c4,c6_=c6,\n c9_=c9,cA_=cA,a31_=a31 ,a32_=a32,a41_=a41,a43_=a43,a51_=a51,\n a53_=a53,a54_=a54,a61_ =a61,a64_=a64,a65_=a65,a71_=a71,a74_=a74,\n a75_=a75,a76_=a76, a81_=a81,a85_=a85,a86_=a86,a87_=a87,a91_=a91,\n a94_=a94,a95_= a95,a96_=a96,a97_=a97,a98_=a98,aA1_=aA1,aA4_=aA4,\n aA5_=aA5,a A6_=aA6,aA7_=aA7,aA8_=aA8,aA9_=aA9,aB1_=aB1,aB4_=aB4,\n aB5_=a B5,aB6_=aB6,aB7_=aB7,aB8_=aB8,aB9_=aB9,aBA_=aBA,aC1_=aC1,\n aC 4_=aC4,aC5_=aC5,aC6_=aC6,aC7_=aC7,aC8_=aC8,aC9_=aC9,aCA_=aCA,\n \+ aCB_=aCB,b1_=b1,b6_=b6,b7_=b7,b8_=b8,b9_=b9,bA_=bA,bB_=bB,bC_=bC\}; \n if outpt='rkstep' then\n return subs(`union`(eqns,\{DE RIV_=false\}),eval(rk78step));\n elif outpt='derivstep' then\n \+ return subs(`union`(eqns,\{DERIV_=true\}),eval(rk78step));\n \+ else # outpt='step_pair' then\n return subs(`union`(eqns,\{D ERIV_=false\}),eval(rk78step)),\n subs(`union`(eqns,\{D ERIV_=true\}),eval(rk78step));\n end if;\n elif member(outpt,\{ 'rkinterp','derivinterp','interp_pair'\}) then\n d12 := evalf(356 43680302198397392977791611006902844604115504781863583325615*SQRT7/\n \+ 382731994099076159547788740295516541397461808306498896786042894 \+ -\n 49913430094603751641566666553290435741449130095513853795522 4539656077/\n 4367507877462197687063636431008257460502995679308 7815107842498805916);\n d62 := evalf(-236859708878371301763021532 74051068033533413543752892588902929763625*\n SQRT7/470124624692 00662341983992359390786121649003097783705034965814997192 -\n 31 8555525426354785267263601778513469051754900650813057635058169612625/\n 27384759388309385814205675549345132915860544304459008182867587 23586434);\n d72 := evalf(-51259308379995267859058610262718392599 578938940008688345921713867187500000\n *SQRT7/14445769238741169 8446617427382693665797531195246660764237040764885295387027 -\n \+ 9191902943338743687894134552913884099193965310325712891127074414062500 00000/\n 112195474420889752460206201933892080436082561641573193 55743499406091275059097);\n d82 := evalf(268082252135945924435008 11319552220037327838869838401763840251953125*\n SQRT7/360118120 7724335064530774666694061429863907960106427575589521043396 +\n \+ 171934719369281979992977297098299373880896289047165344616861328125/\n \+ 100032811325675974014743740741501706385108554447400765988597806 761);\n d92 := evalf(-5791282363694647383494930623934076601319818 366128184086760571640512757656160930124011293784825753160970893*SQRT7/ \n78960491752622616892134852743469023966537545959871553109402024591207 4193807136326057747285010721816047996 -\n37142425507719738213341950069 2053803036941586595728362939460454134605398282516230480526532261208762 08741/\n21933469931284060247815236873185839990704873877742098085945006 830890949827976009057159646805853383779111);\n dA2 := evalf(11087 6201679254623037871993864066005939382896536227671113630596096*SQRT7\n \+ /81885666598791530198409687248227604168050639353204606037382379 13 +\n 28159766316316226442327715443324263660962796329673063061 3584596992/\n 9007423325867068321825065597305036458485570328852 5066641120617043);\n dB2 := evalf(-163347330891545876403903842900 594992244726299935020978849222045568000*\n SQRT7/11404348058165 283147477049669067558933009760570649783842405618582767 -\n 7165 78320817183103406175772945383311056484201637487951993884383744000/\n \+ 2166826131051403798020639437122836197271854508423458930057067530 72573);\n dC2 := evalf(381941538321819998039607469315758342141261 9088899955423132510917*SQRT7/\n 2228701507275694949985589565430 9880045443486828417763716847159592 +\n 220462599128642020502802 009787550092329168455670656206543685061/\n 55717537681892373749 63973913577470011360871707104440929211789898);\n dE2 := evalf(402 585847555372253030773794622450357040040289344403163858*SQRT7/\n \+ 4295036713001971052017223760142007374020655560556027616721 +\n \+ 2721489311917062733130875756847927895477861273414985588679/\n \+ 47245403843021681572189461361562081114227211166116303783931);\n d F2 := evalf(-123492430408563200278801156813453826186179158427946623755 28*SQRT7/\n 164377948275384077299424613042471887153876941206465 2544671 +\n 295537263218050228202416128071316106023653790387136 89058228/\n 164377948275384077299424613042471887153876941206465 2544671);\n dG2 := evalf(-357652006723831496049762003344690736121 25825077957568000000*SQRT7/\n 493133844826152231898273839127415 6614616308236193957634013 +\n 128517437682336804655701775914367 5528393594918717610624000000/\n 1627341687926302365264303669120 47168282338171794400601922429);\n dH2 := evalf(-53809165379932608 6073602371256585993376203834697972000000*SQRT7/\n 1431678904333 990350672407920047335791340218520185342538907 +\n 3167556144993 2759585814449048894682735398944250970524500000/\n 1431678904333 990350672407920047335791340218520185342538907);\n dI2 := evalf(-1 73069075495440698843906977750181786857481132028743640678400*SQRT7/\n \+ 4295036713001971052017223760142007374020655560556027616721 +\n \+ 13938150103470867094540617814388965150457511215120796621209600/ \n 55835477269025623676223908881846095862268522287228359017373) ;\n dJ2 := evalf(332850677853640526165412989983121657148062490953 9443236125*SQRT7/\n 1590754338148878167413786577830373101489131 68909482504323 -\n 41519259552832447855406165498677935500678562 865236277287875/\n 63630173525955126696551463113214924059565267 5637930017292);\n dK2 := evalf(1497118870780096785653851352791263 510405606027720535895500*SQRT7/\n 53025144604962605580459552594 345770049637722969827501441 -\n 1081071940558630026922178842686 9054893442683433666843966500/\n 5302514460496260558045955259434 5770049637722969827501441);\n dL2 := evalf(1185358024193049429204 894939437968202309486148704187724700*SQRT7/\n 15907543381488781 6741378657783037310148913168909482504323 -\n 187243883348260488 09573294764906626932882278291570734642700/\n 111352803670421471 7189650604481261171042392182366377530261);\n d13 := evalf(-246230 945735113892339372585690030669766812810495003823744255113735*SQRT7/\n \+ 313457503167143374669638978302028047404521221003022596467769130 186 +\n 3231074952031261645234323783136870725405275716603642707 65036005492591/\n 503943216630253579276573434347106630058037962 9971670973981826785298);\n d63 := evalf(4822446573891340110911165 7520645193884053404474223761391463039244625*\n SQRT7/1134783576 8427746082547860224680534581087690402913308111888300171736 +\n \+ 4472108436078443467778472980115895869902314425514801408228309257006262 5/\n 5476951877661877162841135109869026583172108860891801636573 517447172868);\n d73 := evalf(3541056331199227679532598709 97321382253869744249799701441590241518554687500000*SQRT7/\n 118 3108500652901810277796730264261122881780489070151659101363864410569219 75113 +\n 67940851965291117811367357780127224374270905887018262 802541051081181640625000000/\n 11814183456519690934059713063638 836069919493740857657281597904874614112637229141);\n d83 := evalf (-26456361535933405820655294979290299863007510302862110709158453404296 875*\n SQRT7/42133820130374720255010063600320518729407723133245 2026343973962077332 -\n 762500956877114261757074447215492759278 50831457556362286280073529296875/\n 632007301955620803825150954 004807780941115846998678039515960943115998);\n d93 := evalf(30774 5337126029212059142399973448631566530326017344081741144309830801424994 3618454887532557145872390493628329*SQRT7/49745109804152248642044957228 3854850989186539547190784589232754924606742098495885416380789556754744 11023748 +\n1267079071292303233179256524471818174979021868395003886460 544124543045290853187282757708660292816458666030863/106596663866040532 8043820512036831823548256870458265966976927331981300161639634040177958 8347644744516647946);\n dA3 := evalf(-851051661193116785372575153 46907811541623568055391798062460169174016*\n SQRT7/745159566049 002924805528153958871197929260818114161914940179650083 -\n 2569 62403700955597405150437397475457337271082383744977126104318773248/\n \+ 1170965032362718881837258527649654739603124142750825866334568021 559);\n dB3 := evalf(47510569498982918125134697696975104131967515 527218789537205684352000*\n SQRT7/39325338131604424646472585065 7502032172750364505164960082952364923 +\n 150897521680799186986 973522562260953677284916446359064398733016553216000/\n 65004783 9315421139406191831136850859181556352527037679017120259217719);\n \+ dC3 := evalf(-2255127622897123456876081777974926631981739820338509145 10537775289*\n SQRT7/156009105509298646498991269580169160318104 407798924346017930117144 -\n 9285031060912294067234218307412638 0973594493023226754287693593983/\n 3343052260913542424978384348 1464820068165230242626645575270739388);\n dE3 := evalf(-213931750 513121240897311333948469797620487410133479950210474*SQRT7/\n 27 0587312919124176277085096888946464563301300315029739853423 -\n \+ 6026554549218325371819602880566514575441175091155923561220047/\n \+ 2976460442110365939047936065778411110196314303465327138387653);\n \+ dF3 := evalf(937473583863200678290023199702129127111060390461868310 702712*SQRT7/\n 14794015344784566956948215173822469843848924708 581872902039 -\n 2243525181240063021054547606023596942176560700 713986922286012/\n 14794015344784566956948215173822469843848924 708581872902039);\n dG3 := evalf(27150595984707922614116206747405 52998114611488544663872000000*SQRT7/\n 443820460343537008708446 45521467409531546774125745618706117 -\n 97562014525403177062257 730233870040805011233298292327296000000/\n 14646075191336721287 37873302208424514541043546149605417301861);\n dH3 := evalf(408483 91230556879049094874218040955333336609646353788000000*SQRT7/\n \+ 12885110139005913156051671280426022122061966681668082850163 -\n \+ 2404600995794184108553369816093489658400897946481484185500000/\n \+ 12885110139005913156051671280426022122061966681668082850163);\n \+ dI3 := evalf(1707975069410864825911811161600298561877484215075627316 87116800*SQRT7/\n 502519295421230613086015179936614862760416700 585055231156357 -\n 1469604360050531892734122746115860001716171 503446532235375411200/\n 50251929542123061308601517993661486276 0416700585055231156357);\n dJ3 := evalf(-252678416666023204018532 478629807794349483090715026166341375*SQRT7/\n 14316789043339903 50672407920047335791340218520185342538907 +\n 20673550498828075 80588801884762356866603197474794104605922875/\n 286335780866798 0701344815840094671582680437040370685077814);\n dK3 := evalf(-795 560158652028881526157940792991314731592433374109190961500*SQRT7/\n \+ 3340584110112644151568951813443783513127176547099132590783 +\n \+ 24001196016558020249137334006257368893543757664440775397285500/\n \+ 10021752330337932454706855440331350539381529641297397772349);\n dL3 := evalf(-62989227922502970708737552142020568395473738988599 1590309100*SQRT7/\n 1002175233033793245470685544033135053938152 9641297397772349 +\n 128584297443389765422915618137213935526237 0475712225168576900/\n 1002175233033793245470685544033135053938 1529641297397772349);\n d14 := evalf(1339553408769109755218650588 04930854478181657243056758022875707595*SQRT7/\n 447796433095919 10667091282614575435343503031571860370923967018598 -\n 15942899 3525717958732435122909792054219844229114153042132964106856070471/\n \+ 78615141794319558367145455758148634289053922227558067194116497850 6488);\n d64 := evalf(-760821581925611346296739540636503375531588 844487442872536857709497625*\n SQRT7/47012462469200662341983992 359390786121649003097783705034965814997192 -\n 1988435643032622 1976755087081652752135466456648956346616516634571272397625/\n 3 0670930514906512111910356615266548865763809620994089164811697704168060 8);\n d74 := evalf(-192641670807867235686269180225709354160799250 354290899373597571538085937500000*SQRT7/\n 16901550009327168718 254239003775158898311149843859309415733769491579560282159 -\n 3 7760715554186243643722912474772524442507868308094469837983401249140051 26953125000/\n 826992841956378365384179914454718524894364561860 03600971185334122298788460603987);\n d84 := evalf(100750116608204 859903313329960826963417814591192968820314883670072265625*\n SQ RT7/421338201303747202550100636003205187294077231332452026343973962077 332 +\n 4843302189152206884263600323195414737330457281426178710 961574794533203125/\n 50560584156449664306012076320384622475289 26775989424316127687544927984);\n d94 := evalf(-1674205953883007036 7125095134382121545371708931118033814261438891236916442934642564419937 05518690601901111333*SQRT7/7106444257736035520292136746912212156988379 136388439779846182213208667744264226934519725565096496344431964 -\n563 3819537049559793410035100952088381039577274326205737968049912289576653 52906175788066319539947839934746531703/5969413176498269837045394867406 2582118702384745662894150707930590952809051819506249965694746810569293 2284976);\n dA4 := evalf(4629918267934746510646027686053787321852 0453497703926889996052319232*\n SQRT7/1064513665784289892579325 93422695885418465831159165987848597092869 +\n 14281664055712408 136475245264915777099888212847111472750534674661140736/\n 81967 55226539032172860809693547583177221868999255781064341976150913);\n \+ dB4 := evalf(-524691072537160417643721547041440930191803905429921661 7679970826112000*\n SQRT7/1140434805816528314747704966906755893 3009760570649783842405618582767 -\n 119810062286262954625607969 4150511550870494101799806263079322013821216000/\n 6500478393154 21139406191831136850859181556352527037679017120259217719);\n dC4 \+ := evalf(1226841689391452206935525741914267005199301196723054670380756 27253*SQRT7\n /222870150727569494998558956543098800454434868284 17763716847159592 +\n 41284076564951970958647826412373517915122 082928531250158904168376423/\n 18721092661115837579878952349620 29923817252893587092152215161405728);\n dE4 := evalf(116383830142 974352559205642901851452389500804492627501586498*SQRT7/\n 38655 330417017739468155013841278066366185900045004248550489 +\n 4469 8182650756690761769735727252352467984063731890113472400110/\n 2 976460442110365939047936065778411110196314303465327138387653);\n \+ dF4 := evalf(-35700514888657337576645408405026489305210345903327408528 41768*SQRT7/\n 147940153447845669569482151738224698438489247085 81872902039 +\n 85437078457056829425076230725729910131912562498 79172243240468/\n 147940153447845669569482151738224698438489247 08581872902039);\n dG4 := evalf(-10339387401121986568134497304353 564371909018441162307008000000*SQRT7/\n 44382046034353700870844 645521467409531546774125745618706117 +\n 3715319782962346149008 19651625346784235446910086141052544000000/\n 146460751913367212 8737873302208424514541043546149605417301861);\n dH4 := evalf(-155 557300430237724477930535584876290931582349335611732000000*SQRT7/\n \+ 12885110139005913156051671280426022122061966681668082850163 +\n \+ 9157110678028170982401939084023751427627959028125420984500000/\n \+ 12885110139005913156051671280426022122061966681668082850163);\n dI4 := evalf(-65042461403217409379105172841705071748216145133908 3515867955200*SQRT7/\n 5025192954212306130860151799366148627604 16700585055231156357 +\n 68812146595255820086298543709123206405 39588082195871903822643200/\n 502519295421230613086015179936614 862760416700585055231156357);\n dJ4 := evalf(96224040138330575928 1068249126719609416913245186419069251125*SQRT7/\n 1431678904333 990350672407920047335791340218520185342538907 -\n 6410032074881 028772399481554077690611991277986846048477664625/\n 19089052057 78653800896543893396447721786958026913790051876);\n dK4 := evalf( 432803163396713955929400840527752756100563709091898459035500*SQRT7/\n \+ 477226301444663450224135973349111930446739506728447512969 -\n \+ 111114488575406951697814647617112481576947418506724192036853000/ \n 10021752330337932454706855440331350539381529641297397772349) ;\n dL4 := evalf(342675997638791328751843399036669849568846218979 805820800700*SQRT7/\n 14316789043339903506724079200473357913402 18520185342538907 -\n 42810761474190596496947055479494445878418 60930558872690173400/\n 100217523303379324547068554403313505393 81529641297397772349);\n d15 := evalf(-19502064779674555110583266 96135743462758645751611098779858131152365*\n SQRT7/313457503167 143374669638978302028047404521221003022596467769130186 +\n 7424 3391633422797921589354811480821232154726827981191218422498436501339/\n 19653785448579889591786363939537158572263480556889516798529124 4626622);\n d65 := evalf(1107652123413408805714996110073726977795 4476399103782076984857286503375*\n SQRT7/3290872372844046363938 87946515735502851543021684485935244760704980344 +\n 16906790265 053033329648335601858388471864447291145441331568974896761472375/\n \+ 766773262872662802797758915381663721644095240524852229120292442604 20152);\n d75 := evalf(280459914383848363568642057975527686042601 6270238510991238647118735351562500000*\n SQRT7/1183108500652901 81027779673026426112288178048907015165910136386441056921975113 +\n \+ 128425076339768441767211733988767075966831919665569312807415494805 90463867187500000/\n 826992841956378365384179914454718524894364 56186003600971185334122298788460603987);\n d85 := evalf(-20954054 9408971241058439263241027813186596877686456237303114804759765625*\n \+ SQRT7/42133820130374720255010063600320518729407723133245202634397 3962077332 -\n 411804599204346385234379203443831442014901761604 5054996408305694060546875/\n 1264014603911241607650301908009615 561882231693997356079031921886231996);\n d95 := evalf(24374147946 1764312416978132821152573445669417424241323409391263297767220215589769 35336200985921795322095810211*SQRT7/4974510980415224864204495722838548 5098918653954719078458923275492460674209849588541638078955675474411023 748 +\n479018798711467374115375153220564860715508133092718823566820002 396538239888287074784313198222024975036400066777/149235329412456745926 1348716851564552967559618641572353767698264773820226295487656249142368 67026423233071244);\n dA5 := evalf(-67405275067629095544857313147 6753048620070444486152452043108816262144*\n SQRT7/7451595660490 02924805528153958871197929260818114161914940179650083 -\n 48572 273318863461544753218173392303920428065931051295941934257889156096/\n \+ 819675522653903217286080969354758317722186899925578106434197615 0913);\n dB5 := evalf(1091254872061015387230549673942225748089579 3952366018425701905663872000*\n SQRT7/1140434805816528314747704 9669067558933009760570649783842405618582767 +\n 407476822659943 8636959251699100997766836376192247637561931221314581376000/\n 6 50047839315421139406191831136850859181556352527037679017120259217719); \n dC5 := evalf(-178611363640234164841404819600730131782365246311 5059649161263392851*\n SQRT7/1560091055092986464989912695801691 60318104407798924346017930117144 -\n 35102027375928656197360237 373946948817888902208668958451100751617257/\n 46802731652789593 9496973808740507480954313223396773038053790351432);\n dE5 := eval f(-1694389324006523377473023508146745285244449384512671429450766*SQRT7 /\n 27058731291912417627708509688894646456330130031502973985342 3 -\n 149053953640720357553471138481703434532931554920520150727 204840/\n 29764604421103659390479360657784111101963143034653271 38387653);\n dF5 := evalf(742500927621080754184156703100425068619 5270805576966863546408*SQRT7/\n 1479401534478456695694821517382 2469843848924708581872902039 -\n 177692423219797321133034865918 52924208923200638318894675721108/\n 147940153447845669569482151 73822469843848924708581872902039);\n dG5 := evalf(215039048044819 81635576759310429973127232607726738406848000000*SQRT7/\n 443820 46034353700870844645521467409531546774125745618706117 -\n 77271 3893304367360463415912039301427705023691227512321664000000/\n 1 464607519133672128737873302208424514541043546149605417301861);\n \+ dH5 := evalf(323528778864697640409442763387912876880174943254587092000 000*SQRT7/\n 12885110139005913156051671280426022122061966681668 082850163 -\n 1904500031433728925514060581816599561474819476320 5317544500000/\n 1288511013900591315605167128042602212206196668 1668082850163);\n dI5 := evalf(1352756061845794935005032527459177 157343737472884618209964851200*SQRT7/\n 50251929542123061308601 5179936614862760416700585055231156357 -\n 162840451262782904612 96539094899248799774589651392237003204198400/\n 502519295421230 613086015179936614862760416700585055231156357);\n dJ5 := evalf(-2 001271950418236472823158285298015115392245938807932725791125*SQRT7/\n \+ 1431678904333990350672407920047335791340218520185342538907 +\n \+ 11517119258776437375058476324737880745366423251156991761578500/ \n 1431678904333990350672407920047335791340218520185342538907); \n dK5 := evalf(-630102187352623228833535306527867999766036748559 5369684528500*SQRT7/\n 3340584110112644151568951813443783513127 176547099132590783 +\n 2596099945399191125203815750912965514905 49603905366764948523500/\n 100217523303379324547068554403313505 39381529641297397772349);\n dL5 := evalf(-49888936571271868262966 87829354717852873073088222647736756900*SQRT7/\n 100217523303379 32454706855440331350539381529641297397772349 +\n 74105783989068 01657428051910976918842569991849588522199953300/\n 100217523303 37932454706855440331350539381529641297397772349);\n d16 := evalf( 87593279292444328573400503228921644809254715323653677309899691125*SQRT 7/\n 1205605781412089902575534531930877105402004696165471524876 0351161 -\n 401822368168950462616648969731266769950301636330267 16312006139827990900/\n 982689272428994479589318196976857928613 17402784447583992645622313311);\n d66 := evalf(-64675073009695165 21025929921764741053468015851759795471956639951946875*\n SQRT7/ 164543618642202318196943973257867751425771510842242967622380352490172 \+ -\n 72110533133812330863008791329099292224580827541809542096031 97468316165625/\n 191693315718165700699439728845415930411023810 13121305728007311065105038);\n d76 := evalf(-25193643738239506850 3297428488456354703069952284229953696997300048828125000000*SQRT7/\n \+ 91008346204069370021368979251097009452444653005396281469335681877 73609382701 -\n 73034172088466893068325012865144669882447139976 16442372528485130509277343750000000/\n 275664280652126121794726 63815157284163145485395334533657061778040766262820201329);\n d86 \+ := evalf(9411487488546092478066242425829708665068152652753598274320297 900390625*\n SQRT7/16205315434759507790388486000123276434387585 820478924090152844695282 +\n 5854738190994366163597922956162899 97925144761821549862844906260302734375/\n 105334550325936800637 525159000801296823519307833113006585993490519333);\n d96 := evalf (-14231903362493828176590679609992576890872896269669391033131831084299 927256021775791805841788147988818788330975*SQRT7/248725549020761243210 2247861419274254945932697735953922946163774623033710492479427081903947 7837737205511874 -\n68103407791922265319239305287885740782552959117026 284898925632386305073324820674656222237927256276086704523325/124362774 5103806216051123930709637127472966348867976961473081887311516855246239 7135409519738918868602755937);\n dA6 := evalf(6054998946507855941 1540852248961942552952505671499453948353424025600*\n SQRT7/5731 9966619154071138886781073759322917635447547243224226167665391 +\n \+ 8286782930724444950242426855421112899386181596425199380544301730539 5200/\n 8196755226539032172860809693547583177221868999255781064 341976150913);\n dB6 := evalf(-1274352967522643207649882854577366 8006242117239918967340627507526400000*\n SQRT7/1140434805816528 3147477049669067558933009760570649783842405618582767 -\n 231728 3605070559754766097807721904833622226626044503834275727836710400000/\n 21668261310514037980206394371228361972718545084234589300570675 3072573);\n dC6 := evalf(1042899908700117841039313312353663742325 293833338076584273444464975*\n SQRT7/78004552754649323249495634 790084580159052203899462173008965058572 +\n 4990550874280040648 638722246400872012250593517892524642718365021325/\n 39002276377 324661624747817395042290079526101949731086504482529286);\n dE6 := evalf(1978685381819462071519578054725043358416118338445111406746700*S QRT7/\n 2705873129191241762770850968889464645633013003150297398 53423 +\n 32940231821852493147901757808184303485005651911032106 64134000/\n 386553304170177394681550138412780663661859000450042 48550489);\n dF6 := evalf(-86708273633195214583917499773999608807 38754626900190802259600*SQRT7/\n 147940153447845669569482151738 22469843848924708581872902039 +\n 20750685530389736142396736277 471776562099060814518578546774600/\n 14794015344784566956948215 173822469843848924708581872902039);\n dG6 := evalf(-2511197484888 1885321672674753908806295730804842016137600000000*SQRT7/\n 4438 2046034353700870844645521467409531546774125745618706117 +\n 820 33185179704454423090234313012641155003796319965868800000000/\n \+ 133146138103061102612533936564402228594640322377236856118351);\n \+ dH6 := evalf(-37781261736456381678127465298843899301568233390731540000 0000*SQRT7/\n 1288511013900591315605167128042602212206196668166 8082850163 +\n 222404987949399822783380734599709307663772951480 98911525000000/\n 128851101390059131560516712804260221220619666 81668082850163);\n dI6 := evalf(-12151773761237929318655995623307 4423082943425456607622266880000*SQRT7/\n 3865533041701773946815 5013841278066366185900045004248550489 +\n 204815956340976350229 98477937197814100746282772852146893127680000/\n 502519295421230 613086015179936614862760416700585055231156357);\n dJ6 := evalf(23 37058843108387223130118014187125966651720500656422395131250*SQRT7/\n \+ 1431678904333990350672407920047335791340218520185342538907 -\n \+ 14706725244159097369839650045084389134466768834323339695143750/ \n 1431678904333990350672407920047335791340218520185342538907); \n dK6 := evalf(7358249780628949799290333551278654301242533370906 131902325000*SQRT7/\n 33405841101126441515689518134437835131271 76547099132590783 -\n 46130182751302283817918221879360970634138 119727341303044612500/\n 14316789043339903506724079200473357913 40218520185342538907);\n dL6 := evalf(582596385077990210493473562 5648005867645807120912036599905000*SQRT7/\n 1002175233033793245 4706855440331350539381529641297397772349 -\n 671362494647510761 2879670524364761895187151459653206454772500/\n 1002175233033793 2454706855440331350539381529641297397772349);\n d17 := evalf(-699 489475093839665173148832780546819469357457958881532054048398750*SQRT7 \n /15672875158357168733481948915101402370226061050151129823388 4565093 +\n 163074924384235731939807678090398452743117931030873 070102421348689659750/\n 68788249070029613571252273788380055002 9221819491133087948519356193177);\n d67 := evalf(3256447967434277 0145680506638056725979974514653489394159326992515625*\n SQRT7/1 348718185591822280302819452933342224801405826575762029691642233526 +\n 41986895194618622915638860421102159164607440878383392575567397 620821546875/\n 13418532100271599048960781019179115128771666709 1849140096051177455735266);\n d77 := evalf(201187679882678 6379735123103598287827469131143296795192190628542480468750000000*SQRT7 /\n 11831085006529018102777967302642611228817804890701516591013 6386441056921975113 +\n 127574072573303770128993440408331408200 224952046321093978563413855778808593750000000/\n 57889498936946 4855768925940118302967426055193302025206798297338856091519224227909); \n d87 := evalf(-375784335076447250223603077283108559615445652570 02421026817336669921875*\n SQRT7/105334550325936800637525159000 801296823519307833113006585993490519333 -\n 1460984971666740349 835101113156446918665956503535718197130879330322265625/\n 31600 3650977810401912575477002403890470557923499339019757980471557999);\n \+ d97 := evalf(42152300379328187360712412601420263340896624638536430 29744516593998712667294578315821888672681938019401125*SQRT7/1199255299 0393502565584608782156577892699771927367183813626633435983769095913594 151793172361541821217701 +\n118961149824658369771865126296143521093082 4057389275797971404168722371042772730469473142015542448281668359647125 /261161826471799305370736025449023796769322933262275161909347196335418 539601710339843599914517296240657874677);\n dA7 := evalf(-4835311 64605213332827621048053052792169911733168059717563493500416000*\n \+ SQRT7/7451595660490029248055281539588711979292608181141619149401796 50083 -\n 48250411041509266029313826635647119106359043494616632 7068843254107648000/\n 5737728658577322521002566785483308224055 3082994790467450393833056391);\n dB7 := evalf(7828107498105571372 108920646280380631802076888100147265069689408000000*\n SQRT7/11 404348058165283147477049669067558933009760570649783842405618582767 +\n 40477669336499798751079880256441409547001320907230018857505974 948288000000/\n 45503348752079479758433428179579560142708944676 89263753119841814524033);\n dC7 := evalf(-18842163096119342192252 573336439026736716490976415059145514438625*SQRT7\n /22942515516 07333036749871611473075887030947173513593323793089958 -\n 87173 562896690203922763033059969335557665368796189760818312215457125/\n \+ 819047803923817894119704165295888091670048140944352816594133115006 );\n dE7 := evalf(-1215468733432960389436919410886628774863609227 850563214449000*SQRT7/\n 27058731291912417627708509688894646456 3301300315029739853423 -\n 212782850393317473657425990408971734 919709700004931017869430000/\n 29764604421103659390479360657784 11110196314303465327138387653);\n dF7 := evalf(532632405835979321 1972372472079770450825900701602014640012000*SQRT7/\n 1479401534 4784566956948215173822469843848924708581872902039 -\n 127467507 92840163841933814131143866811838471678117766637062000/\n 147940 15344784566956948215173822469843848924708581872902039);\n dG7 := \+ evalf(15425807732760500780763672238300515681881597379952672000000000*S QRT7/\n 4438204603435370087084464552146740953154677412574561870 6117 -\n 554305650946780364723806333094169233744998044820565696 000000000/\n 14646075191336721287378733022084245145410435461496 05417301861);\n dH7 := evalf(232083093008364823648443315110295386 092801194235238000000000*SQRT7/\n 12885110139005913156051671280 426022122061966681668082850163 -\n 1366191469830622919572921696 9711744974728895376228541750000000/\n 1288511013900591315605167 1280426022122061966681668082850163);\n dI7 := evalf(9703984048055 40150632185310931084731489172095720641989836800000*SQRT7/\n 502 519295421230613086015179936614862760416700585055231156357 -\n 1 3040552832797494056061335704744868473870997008694932232601600000/\n \+ 502519295421230613086015179936614862760416700585055231156357);\n \+ dJ7 := evalf(-143561072320613792895169479042893174790689445717472 1992937500*SQRT7/\n 1431678904333990350672407920047335791340218 520185342538907 +\n 3161437105296062675426098100171489277186422 929136425922375000/\n 47722630144466345022413597334911193044673 9506728447512969);\n dK7 := evalf(-452003265568192567694419754888 8486813595105051207128217750000*SQRT7/\n 3340584110112644151568 951813443783513127176547099132590783 +\n 2037039049232472059405 79809550396524495519753185149039998000000/\n 100217523303379324 54706855440331350539381529641297397772349);\n dL7 := evalf(-35787 78601084225084833595616265137525299387923370917980350000*SQRT7/\n \+ 10021752330337932454706855440331350539381529641297397772349 +\n \+ 2901721383817167216825184518040806692095561741960030898200000/\n \+ 10021752330337932454706855440331350539381529641297397772349);\n \+ d18 := evalf(1755557759904094373588398202354871858232742541545282 02609108731250*SQRT7/\n 156728751583571687334819489151014023702 260610501511298233884565093 -\n 5578679855741510132035418472699 340833939827654525857901613430487513750/\n 98268927242899447958 931819697685792861317402784447583992645622313311);\n d68 := evalf (-49854907736726005687427277190461458195347979864243050810486680492187 5*\n SQRT7/8227180932110115909847198662893387571288575542112148 3811190176245086 -\n 191851070581227852035352891600495640794948 8468882540636667169305833671875/\n 1916933157181657006994397288 4541593041102381013121305728007311065105038);\n d78 := evalf(-504 9348205957701186514837206158216163444578746182130754394081176757812500 00000*SQRT7/\n 118310850065290181027779673026426112288178048907 015165910136386441056921975113 -\n 5829252743778141191277392529 471287085269196234842362636809291368688964843750000000/\n 82699 2841956378365384179914454718524894364561860036009711853341222987884606 03987);\n d88 := evalf(943132282877242882990264029419363461045718 2926248640916490469970703125*\n SQRT7/1053345503259368006375251 59000801296823519307833113006585993490519333 +\n 46729835757727 4183055906496221275583413793032011754808657495228271484375/\n 3 16003650977810401912575477002403890470557923499339019757980471557999); \n d98 := evalf(-109706908092514677104590989638959580116175688861 8750778004559713543349165251141566933644183495378079259924375*SQRT7/12 4362774510380621605112393070963712747296634886797696147308188731151685 52462397135409519738918868602755937 -\n5435701745900875827253652949677 6799668344136235116716227353781227314811155694172455232889568897360064 327858125/373088323531141864815337179212891138241889904660393088441924 56619345505657387191406228559216756605808267811);\n dA8 := evalf( 121355205246550268021752326174813280073096153911386860039155223040000* \n SQRT7/745159566049002924805528153958871197929260818114161914 940179650083 +\n 2204710058076475130873011094771787034340334473 3525449061074282421760000/\n 8196755226539032172860809693547583 177221868999255781064341976150913);\n dB8 := evalf(-1964675002696 647740703375759826243832120046196602305650193859520000000*\n SQ RT7/114043480581652831474770496690675589330097605706497838424056185827 67 -\n 18495495227367365784253178686748969667083327545746456079 20741018560000000/\n 650047839315421139406191831136850859181556 352527037679017120259217719);\n dC8 := evalf(80392145392847409094 641048445807581719640248385135864947859274375*SQRT7/\n 39002276 377324661624747817395042290079526101949731086504482529286 +\n 3 983228883819335958312855997120149472135026200554177016609686308125/\n \+ 117006829131973984874243452185126870238578305849193259513447587 858);\n dE8 := evalf(30505470673633401643229794888262596009239951 4374513276935000*SQRT7/\n 2705873129191241762770850968889464645 63301300315029739853423 +\n 69353937077584493629916215748288775 268139741309544613455050000/\n 29764604421103659390479360657784 11110196314303465327138387653);\n dF8 := evalf(-13367848788808393 35796750843751432009304881437822766197780000*SQRT7/\n 147940153 44784566956948215173822469843848924708581872902039 +\n 31991413 83068294686005314463711435892226627541404474243530000/\n 147940 15344784566956948215173822469843848924708581872902039);\n dG8 := \+ evalf(-3871523079657954441500094362198449477079860886355680000000000*S QRT7/\n 4438204603435370087084464552146740953154677412574561870 6117 +\n 139117974112156976275654586466561785559001945472146240 000000000/\n 14646075191336721287378733022084245145410435461496 05417301861);\n dH8 := evalf(-58247520424623867073113342801624660 418662229380970000000000*SQRT7/\n 12885110139005913156051671280 426022122061966681668082850163 +\n 3428826482420154462410850018 536495909254143411432276250000000/\n 12885110139005913156051671 280426022122061966681668082850163);\n dI8 := evalf(-2435476887663 50101247330678706502258397906715390477320192000000*SQRT7/\n 502 519295421230613086015179936614862760416700585055231156357 +\n 3 305948674571861574612799677320341847721769707549595504640000000/\n \+ 502519295421230613086015179936614862760416700585055231156357);\n \+ dJ8 := evalf(36030528479187697602731212194442813243666411666898443 1562500*SQRT7/\n 1431678904333990350672407920047335791340218520 185342538907 -\n 2427440465292287234817246484618844561890536685 058664154375000/\n 14316789043339903506724079200473357913402185 20185342538907);\n dK8 := evalf(113442427459509325851337648476138 4930885032455880792216250000*SQRT7/\n 3340584110112644151568951 813443783513127176547099132590783 -\n 5124610167754558953597359 9862632917488838190987880233485000000/\n 1002175233033793245470 6855440331350539381529641297397772349);\n dL8 := evalf(8981911476 60838097980111166950774250753970120340516135250000*SQRT7/\n 100 21752330337932454706855440331350539381529641297397772349 -\n 43 4922168250264826621856885191498764502971172424562510000000/\n 1 0021752330337932454706855440331350539381529641297397772349);\n eq ns := \n \{d12_=d12,d62_=d62,d72_=d72,d82_=d82,d92_=d92,dA2_=dA 2,dB2_=dB2,dC2_=dC2,\n dE2_=dE2,dF2_=dF2,dG2_=dG2,dH2_=dH2,dI2_ =dI2,dJ2_=dJ2,dK2_=dK2,dL2_=dL2,\n d13_=d13,d63_=d63,d73_=d73,d 83_=d83,d93_=d93,dA3_=dA3,dB3_=dB3,dC3_=dC3,\n dE3_=dE3,dF3_=dF 3,dG3_=dG3,dH3_=dH3,dI3_=dI3,dJ3_=dJ3,dK3_=dK3,dL3_=dL3,\n d14_ =d14,d64_=d64,d74_=d74,d84_=d84,d94_=d94,dA4_=dA4,dB4_=dB4,dC4_=dC4,\n dE4_=dE4,dF4_=dF4,dG4_=dG4,dH4_=dH4,dI4_=dI4,dJ4_=dJ4,dK4_=dK4 ,dL4_=dL4,\n d15_=d15,d65_=d65,d75_=d75,d85_=d85,d95_=d95,dA5_= dA5,dB5_=dB5,dC5_=dC5,\n dE5_=dE5,dF5_=dF5,dG5_=dG5,dH5_=dH5,dI 5_=dI5,dJ5_=dJ5,dK5_=dK5,dL5_=dL5,\n d16_=d16,d66_=d66,d76_=d76 ,d86_=d86,d96_=d96,dA6_=dA6,dB6_=dB6,dC6_=dC6,\n dE6_=dE6,dF6_= dF6,dG6_=dG6,dH6_=dH6,dI6_=dI6,dJ6_=dJ6,dK6_=dK6,dL6_=dL6,\n d1 7_=d17,d67_=d67,d77_=d77,d87_=d87,d97_=d97,dA7_=dA7,dB7_=dB7,dC7_=dC7, \n dE7_=dE7,dF7_=dF7,dG7_=dG7,dH7_=dH7,dI7_=dI7,dJ7_=dJ7,dK7_=d K7,dL7_=dL7,\n d18_=d18,d68_=d68,d78_=d78,d88_=d88,d98_=d98,dA8 _=dA8,dB8_=dB8,dC8_=dC8,\n dE8_=dE8,dF8_=dF8,dG8_=dG8,dH8_=dH8, dI8_=dI8,dJ8_=dJ8,dK8_=dK8,dL8_=dL8\};\n if outpt='rkinterp' then \n soln := [soln,[xk,yk]];\n return subs(`union`(eqns, \{SOLN_=soln\}),eval(rk78interp));\n elif outpt='derivinterp' the n\n soln := [soln,[xk,uk]];\n return subs(`union`(eqns ,\{SOLN_=soln\}),eval(rk78interp));\n else # outpt='interp_pair' \n soln := [soln,[xk,yk]];\n soln2 := [soln2,[xk,uk]]; \n return subs(`union`(eqns,\{SOLN_=soln\}),eval(rk78interp)), \n subs(`union`(eqns,\{SOLN_=soln2\}),eval(rk78interp)) ;\n end if;\n else\n soln := [soln,[xk,yk,uk]];\n Dig its := saveDigits;\n if outpt='points' then\n return eval f([seq([soln[i,1],soln[i,2]],i=1..nops(soln))]); \n elif out pt='derivpts' then\n return evalf([seq([soln[i,1],soln[i,3]],i =1..nops(soln))]);\n elif outpt='points_pair' then\n retu rn evalf([seq([soln[i,1],soln[i,2]],i=1..nops(soln))]),\n ev alf([seq([soln[i,1],soln[i,3]],i=1..nops(soln))]); \n else # out pt='endpt'\n return soln[nops(soln),2];\n end if;\n end if;\nend proc: # of de2rk78b" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{SECT 1 {PARA 4 "" 0 " " {TEXT -1 23 "de2rk89: implementation" }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{EXCHG {PARA 0 "> " 0 "rungk78" {MPLTEXT 1 0 200767 "de2rk89 := pr oc(gxyu::algebraic,xrng::(name=realcons..realcons),\n iy:: (name=realcons),iu::(name=realcons))\n local soln,xk,yk,k,xend,xstar t,h,xrg,SQRT6,ff,gg,c2,c3,c4,c5,c6,c7,c8,c9,cA,cB,cC,cD,\n cE,cI,cJ, cK,cL,cM,cN,cO,cP,cQ,cR,cS,a21,a31,a32,a41,a42,a43,a51,a53,a54,a61,a64 ,a65,\n a71,a74,a75,a76,a81,a86,a87,a91,a96,a97,a98,aA1,aA6,aA7,aA8, aA9,aB1,aB6,aB7,aB8,aB9,\n aBA,aC1,aC6,aC7,aC8,aC9,aCA,aCB,aD1,aD6,a D7,aD8,aD9,aDA,aDB,aDC,aE1,aE6,aE7,aE8,aE9,\n aEA,aEB,aEC,aED,aF1,aF 6,aF7,aF8,aF9,aFA,aFB,aFC,aFD,aFE,aG1,aG6,aG7,aG8,aG9,aGA,aGB,\n aGC ,aGD,aGE,aH1,aH6,aH7,aH8,aH9,aHA,aHB,aHC,aHD,aHE,aHG,aHF,aI1,aI8,aI9,a IA,aIB,aIC,\n aID,aIE,aIF,aIH,aJ1,aJ8,aJ9,aJA,aJB,aJC,aJD,aJE,aJF,aJ H,aJI,aK1,aK8,aK9,aKA,aKB,aKC,\n aKD,aKE,aKF,aKH,aKI,aKJ,aL1,aL8,aL9 ,aLA,aLB,aLC,aLD,aLE,aLF,aLH,aLI,aLJ,aLK,aM1,aM8,\n aM9,aMA,aMB,aMC, aMD,aME,aMF,aMH,aMI,aMJ,aMK,aML,aN1,aN8,aN9,aNA,aNB,aNC,aND,aNE,aNF,\n aNH,aNI,aNJ,aNK,aNL,aO1,aO8,aO9,aOA,aOB,aOC,aOD,aOE,aOF,aOH,aOI,aOJ ,aOK,aOL,aP1,aP8,\n aP9,aPA,aPB,aPC,aPD,aPE,aPF,aPH,aPI,aPJ,aPK,aPL, aQ1,aQ8,aQ9,aQA,aQB,aQC,aQD,aQE,aQF,\n aQH,aQI,aQJ,aQK,aQL,aR1,aR8,a R9,aRA,aRB,aRC,aRD,aRE,aRF,aRH,aRI,aRJ,aRK,aRL,aRM,aS1,\n aS8,aS9,aS A,aSB,aSC,aSD,aSE,aSF,aSH,aSI,aSJ,aSK,aSL,aSM,aSN,b1,b8,b9,bA,bB,bC,bD ,bE,\n bF,f1,f2,f3,f4,f5,f6,f7,f8,f9,fA,fB,fC,fD,fE,fF,fG,fH,fI,fJ,f K,fL,fM,fN,fO,fP,fQ,fR,\n fS,g1,g2,g3,g4,g5,g6,g7,g8,g9,gA,gB,gC,gD, gE,gF,gG,gH,gI,gJ,gK,gL,gM,gN,gO,gP,gQ,gR,\n gS,e1,e8,e9,eA,eB,eC,eD ,eE,eF,eG,eH,d12,d82,d92,dA2,dB2,dC2,dD2,dE2,dF2,dH2,dI2,dJ2,\n dK2, dL2,dM2,dN2,dO2,dP2,dQ2,dR2,dS2,d13,d83,d93,dA3,dB3,dC3,dD3,dE3,dF3,dH 3,dI3,dJ3,\n dK3,dL3,dM3,dN3,dO3,dP3,dQ3,dR3,dS3,d14,d84,d94,dA4,dB4 ,dC4,dD4,dE4,dF4,dH4,dI4,dJ4,\n dK4,dL4,dM4,dN4,dO4,dP4,dQ4,dR4,dS4, d15,d85,d95,dA5,dB5,dC5,dD5,dE5,dF5,dH5,dI5,dJ5,\n dK5,dL5,dM5,dN5,d O5,dP5,dQ5,dR5,dS5,d16,d86,d96,dA6,dB6,dC6,dD6,dE6,dF6,dH6,dI6,dJ6,\n \+ dK6,dL6,dM6,dN6,dO6,dP6,dQ6,dR6,dS6,d17,d87,d97,dA7,dB7,dC7,dD7,dE7, dF7,dH7,dI7,dJ7,\n dK7,dL7,dM7,dN7,dO7,dP7,dQ7,dR7,dS7,d18,d88,d98,d A8,dB8,dC8,dD8,dE8,dF8,dH8,dI8,dJ8,\n dK8,dL8,dM8,dN8,dO8,dP8,dQ8,dR 8,dS8,d19,d89,d99,dA9,dB9,dC9,dD9,dE9,dF9,dH9,dI9,dJ9,\n dK9,dL9,dM9 ,dN9,dO9,dP9,dQ9,dR9,dS9,uk,yout,uout,errst,errst2,hmx,hmn,hstrt,sgn,g n,\n maxstps,tiny,scale,scale2,err,htemp,hnext,eps,i,Options,prntflg ,t,tt,errcntl,\n maxval,maxval2,maxtemp,maxtemp2,x,y,u,errc,x0,y0,u0 ,xn,outpt,minstepsize,inc,\n rk89step,rk89interp1,rk89interp2,maxste psize,laststep,saveDigits,stdstep,drvstep,\n safety,pgrow,pshrink,er rcontrol,finished,soln2,eqns;\n\n## lower precision interpolation proc edure\nrk89interp1 := proc(x_rk89interp::realcons)\n local b1,b8,b9, bA,bB,bC,bD,bE,bF,bH,bI,bJ,bK,bL,bM,bN,bO,bP,bQ,xF,xS,yF,\n f1,f8,f9 ,fA,fB,fC,fD,fE,fF,fH,fI,fJ,fK,fL,fM,fN,fO,fP,fQ,\n d12,d82,d92,dA2, dB2,dC2,dD2,dE2,dF2,dH2,dI2,dJ2,dK2,dL2,dM2,dN2,dO2,dP2,dQ2,\n d13,d 83,d93,dA3,dB3,dC3,dD3,dE3,dF3,dH3,dI3,dJ3,dK3,dL3,dM3,dN3,dO3,dP3,dQ3 ,\n d14,d84,d94,dA4,dB4,dC4,dD4,dE4,dF4,dH4,dI4,dJ4,dK4,dL4,dM4,dN4, dO4,dP4,dQ4,\n d15,d85,d95,dA5,dB5,dC5,dD5,dE5,dF5,dH5,dI5,dJ5,dK5,d L5,dM5,dN5,dO5,dP5,dQ5,\n d16,d86,d96,dA6,dB6,dC6,dD6,dE6,dF6,dH6,dI 6,dJ6,dK6,dL6,dM6,dN6,dO6,dP6,dQ6,\n d17,d87,d97,dA7,dB7,dC7,dD7,dE7 ,dF7,dH7,dI7,dJ7,dK7,dL7,dM7,dN7,dO7,dP7,dQ7,\n d18,d88,d98,dA8,dB8, dC8,dD8,dE8,dF8,dH8,dI8,dJ8,dK8,dL8,dM8,dN8,dO8,dP8,dQ8,\n d19,d89,d 99,dA9,dB9,dC9,dD9,dE9,dF9,dH9,dI9,dJ9,dK9,dL9,dM9,dN9,dO9,dP9,dQ9,\n \+ s,t,jF,jM,jS,n,h,data,xx,ys,saveDigits;\n options `Copyright 2007 \+ by Peter Stone`;\n \n data := SOLN_;\n saveDigits := Digits;\n \+ Digits := max(trunc(evalhf(Digits)),Digits+5); \n xx := evalf(x_rk8 9interp);\n n := nops(data);\n if (data[1,1]dat a[n,1] or xxdata[1,1])) then\n error \"independent variable is outs ide the interpolation interval: %1\",evalf(data[1,1])..evalf(data[n,1] );\n end if;\n\n d12 := d12_; d82 := d82_; d92 := d92_; dA2 := dA2 _; dB2 := dB2_;\n dC2 := dC2_; dD2 := dD2_; dE2 := dE2_; dF2 := dF2_ ; dH2 := dH2_;\n dI2 := dI2_; dJ2 := dJ2_; dK2 := dK2_; dL2 := dL2_; dM2 := dM2_;\n dN2 := dN2_; dO2 := dO2_; dP2 := dP2_; dQ2 := dQ2_; \+ \n d13 := d13_; d83 := d83_; d93 := d93_; dA3 := dA3_; dB3 := dB3_; \n dC3 := dC3_; dD3 := dD3_; dE3 := dE3_; dF3 := dF3_; dH3 := dH3_; \n dI3 := dI3_; dJ3 := dJ3_; dK3 := dK3_; dL3 := dL3_; dM3 := dM3_; \n dN3 := dN3_; dO3 := dO3_; dP3 := dP3_; dQ3 := dQ3_;\n d14 := d1 4_; d84 := d84_; d94 := d94_; dA4 := dA4_; dB4 := dB4_;\n dC4 := dC4 _; dD4 := dD4_; dE4 := dE4_; dF4 := dF4_; dH4 := dH4_;\n dI4 := dI4_ ; dJ4 := dJ4_; dK4 := dK4_; dL4 := dL4_; dM4 := dM4_;\n dN4 := dN4_; dO4 := dO4_; dP4 := dP4_; dQ4 := dQ4_;\n d15 := d15_; d85 := d85_; \+ d95 := d95_; dA5 := dA5_; dB5 := dB5_;\n dC5 := dC5_; dD5 := dD5_; d E5 := dE5_; dF5 := dF5_; dH5 := dH5_;\n dI5 := dI5_; dJ5 := dJ5_; dK 5 := dK5_; dL5 := dL5_; dM5 := dM5_;\n dN5 := dN5_; dO5 := dO5_; dP5 := dP5_; dQ5 := dQ5_;\n d16 := d16_; d86 := d86_; d96 := d96_; dA6 \+ := dA6_; dB6 := dB6_;\n dC6 := dC6_; dD6 := dD6_; dE6 := dE6_; dF6 : = dF6_; dH6 := dH6_;\n dI6 := dI6_; dJ6 := dJ6_; dK6 := dK6_; dL6 := dL6_; dM6 := dM6_;\n dN6 := dN6_; dO6 := dO6_; dP6 := dP6_; dQ6 := \+ dQ6_;\n d17 := d17_; d87 := d87_; d97 := d97_; dA7 := dA7_; dB7 := d B7_;\n dC7 := dC7_; dD7 := dD7_; dE7 := dE7_; dF7 := dF7_; dH7 := dH 7_;\n dI7 := dI7_; dJ7 := dJ7_; dK7 := dK7_; dL7 := dL7_; dM7 := dM7 _;\n dN7 := dN7_; dO7 := dO7_; dP7 := dP7_; dQ7 := dQ7_;\n d18 := \+ d18_; d88 := d88_; d98 := d98_; dA8 := dA8_; dB8 := dB8_;\n dC8 := d C8_; dD8 := dD8_; dE8 := dE8_; dF8 := dF8_; dH8 := dH8_;\n dI8 := dI 8_; dJ8 := dJ8_; dK8 := dK8_; dL8 := dL8_; dM8 := dM8_;\n dN8 := dN8 _; dO8 := dO8_; dP8 := dP8_; dQ8 := dQ8_;\n d19 := d19_; d89 := d89_ ; d99 := d99_; dA9 := dA9_; dB9 := dB9_;\n dC9 := dC9_; dD9 := dD9_; dE9 := dE9_; dF9 := dF9_; dH9 := dH9_;\n dI9 := dI9_; dJ9 := dJ9_; \+ dK9 := dK9_; dL9 := dL9_; dM9 := dM9_;\n dN9 := dN9_; dO9 := dO9_; d P9 := dP9_; dQ9 := dQ9_;\n\n # Perform a binary search for the inter val containing x.\n n := nops(data);\n jF := 0;\n jS := n+1;\n\n if data[1,1]1 do\n jM := \+ trunc((jF+jS)/2);\n if xx>=data[jM,1] then jF := jM else jS := \+ jM end if;\n end do;\n if jM = n then jF := n-1; jS := n end if;\n else\n while jS-jF>1 do\n jM := trunc((jF+jS)/2); \n if xx<=data[jM,1] then jF := jM else jS := jM end if;\n \+ end do;\n if jM = n then jF := n-1; jS := n end if;\n end if; \n \n # Get the data needed from the list.\n xF := data[jF,1];\n \+ xS := data[jS,1];\n yF := data[jF,2];\n f1 := data[jF,3];\n f8 := data[jF,4];\n f9 := data[jF,5];\n fA := data[jF,6];\n fB := \+ data[jF,7];\n fC := data[jF,8];\n fD := data[jF,9];\n fE := data [jF,10];\n fF := data[jF,11];\n fH := data[jF,12];\n fI := data[ jF,13];\n fJ := data[jF,14];\n fK := data[jF,15];\n fL := data[j F,16];\n fM := data[jF,17];\n fN := data[jF,18];\n fO := data[jF ,19];\n fP := data[jF,20];\n fQ := data[jF,21];\n\n # Calculate \+ the parameters.\n h := xx-xF;\n s := h/(xS-xF);\n b1 := (((((((d 19*s+d18)*s+d17)*s+d16)*s+d15)*s+d14)*s+d13)*s+d12)*s+1;\n b8 := ((( ((((d89*s+d88)*s+d87)*s+d86)*s+d85)*s+d84)*s+d83)*s+d82)*s;\n b9 := \+ (((((((d99*s+d98)*s+d97)*s+d96)*s+d95)*s+d94)*s+d93)*s+d92)*s;\n bA \+ := (((((((dA9*s+dA8)*s+dA7)*s+dA6)*s+dA5)*s+dA4)*s+dA3)*s+dA2)*s;\n \+ bB := (((((((dB9*s+dB8)*s+dB7)*s+dB6)*s+dB5)*s+dB4)*s+dB3)*s+dB2)*s;\n bC := (((((((dC9*s+dC8)*s+dC7)*s+dC6)*s+dC5)*s+dC4)*s+dC3)*s+dC2)*s ;\n bD := (((((((dD9*s+dD8)*s+dD7)*s+dD6)*s+dD5)*s+dD4)*s+dD3)*s+dD2 )*s;\n bE := (((((((dE9*s+dE8)*s+dE7)*s+dE6)*s+dE5)*s+dE4)*s+dE3)*s+ dE2)*s;\n bF := (((((((dF9*s+dF8)*s+dF7)*s+dF6)*s+dF5)*s+dF4)*s+dF3) *s+dF2)*s;\n bH := (((((((dH9*s+dH8)*s+dH7)*s+dH6)*s+dH5)*s+dH4)*s+d H3)*s+dH2)*s;\n bI := (((((((dI9*s+dI8)*s+dI7)*s+dI6)*s+dI5)*s+dI4)* s+dI3)*s+dI2)*s;\n bJ := (((((((dJ9*s+dJ8)*s+dJ7)*s+dJ6)*s+dJ5)*s+dJ 4)*s+dJ3)*s+dJ2)*s;\n bK := (((((((dK9*s+dK8)*s+dK7)*s+dK6)*s+dK5)*s +dK4)*s+dK3)*s+dK2)*s;\n bL := (((((((dL9*s+dL8)*s+dL7)*s+dL6)*s+dL5 )*s+dL4)*s+dL3)*s+dL2)*s;\n bM := (((((((dM9*s+dM8)*s+dM7)*s+dM6)*s+ dM5)*s+dM4)*s+dM3)*s+dM2)*s;\n bN := (((((((dN9*s+dN8)*s+dN7)*s+dN6) *s+dN5)*s+dN4)*s+dN3)*s+dN2)*s;\n bO := (((((((dO9*s+dO8)*s+dO7)*s+d O6)*s+dO5)*s+dO4)*s+dO3)*s+dO2)*s;\n bP := (((((((dP9*s+dP8)*s+dP7)* s+dP6)*s+dP5)*s+dP4)*s+dP3)*s+dP2)*s;\n bQ := (((((((dQ9*s+dQ8)*s+dQ 7)*s+dQ6)*s+dQ5)*s+dQ4)*s+dQ3)*s+dQ2)*s;\n \n # Calculate the inte rpolated y value.\n t := b1*f1 + b8*f8 + b9*f9 + bA*fA + bB*fB + bC* fC + bD*fD + bE*fE + bF*fF\n + bH*fH + bI*fI + bJ*fJ + bK*fK + bL *fL + bM*fM + bN*fN + bO*fO + bP*fP\n \+ + bQ*fQ;\n ys := yF + t*h;\n \+ Digits := saveDigits;\n evalf(ys);\nend proc: # of rk89interp1\n\n## higher precision interpolation procedure\nrk89interp2 := proc(x_rk89i nterp::realcons)\n local b1,b8,b9,bA,bB,bC,bD,bE,bF,bH,bM,bN,bO,bP,b Q,bR,bS,xF,xS,yF,\n f1,f8,f9,fA,fB,fC,fD,fE,fF,fH,fM,fN,fO,fP,fQ,fR, fS,\n d12,d82,d92,dA2,dB2,dC2,dD2,dE2,dF2,dH2,dM2,dN2,dO2,dP2,dQ2,dR 2,dS2,\n d13,d83,d93,dA3,dB3,dC3,dD3,dE3,dF3,dH3,dM3,dN3,dO3,dP3,dQ3 ,dR3,dS3,\n d14,d84,d94,dA4,dB4,dC4,dD4,dE4,dF4,dH4,dM4,dN4,dO4,dP4, dQ4,dR4,dS4,\n d15,d85,d95,dA5,dB5,dC5,dD5,dE5,dF5,dH5,dM5,dN5,dO5,d P5,dQ5,dR5,dS5,\n d16,d86,d96,dA6,dB6,dC6,dD6,dE6,dF6,dH6,dM6,dN6,dO 6,dP6,dQ6,dR6,dS6,\n d17,d87,d97,dA7,dB7,dC7,dD7,dE7,dF7,dH7,dM7,dN7 ,dO7,dP7,dQ7,dR7,dS7,\n d18,d88,d98,dA8,dB8,dC8,dD8,dE8,dF8,dH8,dM8, dN8,dO8,dP8,dQ8,dR8,dS8,\n d19,d89,d99,dA9,dB9,dC9,dD9,dE9,dF9,dH9,d M9,dN9,dO9,dP9,dQ9,dR9,dS9,\n\n s,t,jF,jM,jS,n,h,data,xx,ys,saveDigi ts;\n options `Copyright 2007 by Peter Stone`;\n \n data := SOLN _;\n saveDigits := Digits;\n Digits := max(trunc(evalhf(Digits)),D igits+5);\n xx := evalf(x_rk89interp);\n n := nops(data);\n if ( data[1,1]data[n,1] or xxdata[1,1])) then\n error \"independent variable is outside the interpolation interval: %1\",ev alf(data[1,1])..evalf(data[n,1]);\n end if;\n\n d12 := d12_; d82 : = d82_; d92 := d92_; dA2 := dA2_; dB2 := dB2_; dC2 := dC2_;\n dD2 := dD2_; dE2 := dE2_; dF2 := dF2_; dH2 := dH2_; dM2 := dM2_; dN2 := dN2_ ;\n dO2 := dO2_; dP2 := dP2_; dQ2 := dQ2_; dR2 := dR2_; dS2 := dS2_; \n d13 := d13_; d83 := d83_; d93 := d93_; dA3 := dA3_; dB3 := dB3_; \+ dC3 := dC3_;\n dD3 := dD3_; dE3 := dE3_; dF3 := dF3_; dH3 := dH3_; d M3 := dM3_; dN3 := dN3_;\n dO3 := dO3_; dP3 := dP3_; dQ3 := dQ3_; dR 3 := dR3_; dS3 := dS3_;\n d14 := d14_; d84 := d84_; d94 := d94_; dA4 := dA4_; dB4 := dB4_; dC4 := dC4_;\n dD4 := dD4_; dE4 := dE4_; dF4 \+ := dF4_; dH4 := dH4_; dM4 := dM4_; dN4 := dN4_;\n dO4 := dO4_; dP4 : = dP4_; dQ4 := dQ4_; dR4 := dR4_; dS4 := dS4_;\n d15 := d15_; d85 := d85_; d95 := d95_; dA5 := dA5_; dB5 := dB5_; dC5 := dC5_;\n dD5 := \+ dD5_; dE5 := dE5_; dF5 := dF5_; dH5 := dH5_; dM5 := dM5_; dN5 := dN5_; \n dO5 := dO5_; dP5 := dP5_; dQ5 := dQ5_; dR5 := dR5_; dS5 := dS5_; \n d16 := d16_; d86 := d86_; d96 := d96_; dA6 := dA6_; dB6 := dB6_; \+ dC6 := dC6_;\n dD6 := dD6_; dE6 := dE6_; dF6 := dF6_; dH6 := dH6_; d M6 := dM6_; dN6 := dN6_;\n dO6 := dO6_; dP6 := dP6_; dQ6 := dQ6_; dR 6 := dR6_; dS6 := dS6_;\n d17 := d17_; d87 := d87_; d97 := d97_; dA7 := dA7_; dB7 := dB7_; dC7 := dC7_;\n dD7 := dD7_; dE7 := dE7_; dF7 \+ := dF7_; dH7 := dH7_; dM7 := dM7_; dN7 := dN7_;\n dO7 := dO7_; dP7 : = dP7_; dQ7 := dQ7_; dR7 := dR7_; dS7 := dS7_;\n d18 := d18_; d88 := d88_; d98 := d98_; dA8 := dA8_; dB8 := dB8_; dC8 := dC8_;\n dD8 := \+ dD8_; dE8 := dE8_; dF8 := dF8_; dH8 := dH8_; dM8 := dM8_; dN8 := dN8_; \n dO8 := dO8_; dP8 := dP8_; dQ8 := dQ8_; dR8 := dR8_; dS8 := dS8_; \n d19 := d19_; d89 := d89_; d99 := d99_; dA9 := dA9_; dB9 := dB9_; \+ dC9 := dC9_;\n dD9 := dD9_; dE9 := dE9_; dF9 := dF9_; dH9 := dH9_; d M9 := dM9_; dN9 := dN9_;\n dO9 := dO9_; dP9 := dP9_; dQ9 := dQ9_; dR 9 := dR9_; dS9 := dS9_;\n\n # Perform a binary search for the interv al containing x.\n n := nops(data);\n jF := 0;\n jS := n+1;\n\n \+ if data[1,1]1 do\n jM := t runc((jF+jS)/2);\n if xx>=data[jM,1] then jF := jM else jS := j M end if;\n end do;\n if jM = n then jF := n-1; jS := n end \+ if;\n else\n while jS-jF>1 do\n jM := trunc((jF+jS)/2); \n if xx<=data[jM,1] then jF := jM else jS := jM end if;\n \+ end do;\n if jM = n then jF := n-1; jS := n end if;\n end if; \n \n # Get the data needed from the list.\n xF := data[jF,1];\n \+ xS := data[jS,1];\n yF := data[jF,2];\n f1 := data[jF,3];\n f8 := data[jF,4];\n f9 := data[jF,5];\n fA := data[jF,6];\n fB := \+ data[jF,7];\n fC := data[jF,8];\n fD := data[jF,9];\n fE := data [jF,10];\n fF := data[jF,11];\n fH := data[jF,12];\n fM := data[ jF,13];\n fN := data[jF,14];\n fO := data[jF,15];\n fP := data[j F,16];\n fQ := data[jF,17];\n fR := data[jF,18];\n fS := data[jF ,19];\n\n # Calculate the parameters.\n h := xx-xF;\n s := h/(xS -xF);\n b1 := (((((((d19*s+d18)*s+d17)*s+d16)*s+d15)*s+d14)*s+d13)*s +d12)*s+1;\n b8 := (((((((d89*s+d88)*s+d87)*s+d86)*s+d85)*s+d84)*s+d 83)*s+d82)*s;\n b9 := (((((((d99*s+d98)*s+d97)*s+d96)*s+d95)*s+d94)* s+d93)*s+d92)*s;\n bA := (((((((dA9*s+dA8)*s+dA7)*s+dA6)*s+dA5)*s+dA 4)*s+dA3)*s+dA2)*s;\n bB := (((((((dB9*s+dB8)*s+dB7)*s+dB6)*s+dB5)*s +dB4)*s+dB3)*s+dB2)*s;\n bC := (((((((dC9*s+dC8)*s+dC7)*s+dC6)*s+dC5 )*s+dC4)*s+dC3)*s+dC2)*s;\n bD := (((((((dD9*s+dD8)*s+dD7)*s+dD6)*s+ dD5)*s+dD4)*s+dD3)*s+dD2)*s;\n bE := (((((((dE9*s+dE8)*s+dE7)*s+dE6) *s+dE5)*s+dE4)*s+dE3)*s+dE2)*s;\n bF := (((((((dF9*s+dF8)*s+dF7)*s+d F6)*s+dF5)*s+dF4)*s+dF3)*s+dF2)*s;\n bH := (((((((dH9*s+dH8)*s+dH7)* s+dH6)*s+dH5)*s+dH4)*s+dH3)*s+dH2)*s;\n bM := (((((((dM9*s+dM8)*s+dM 7)*s+dM6)*s+dM5)*s+dM4)*s+dM3)*s+dM2)*s;\n bN := (((((((dN9*s+dN8)*s +dN7)*s+dN6)*s+dN5)*s+dN4)*s+dN3)*s+dN2)*s;\n bO := (((((((dO9*s+dO8 )*s+dO7)*s+dO6)*s+dO5)*s+dO4)*s+dO3)*s+dO2)*s;\n bP := (((((((dP9*s+ dP8)*s+dP7)*s+dP6)*s+dP5)*s+dP4)*s+dP3)*s+dP2)*s;\n bQ := (((((((dQ9 *s+dQ8)*s+dQ7)*s+dQ6)*s+dQ5)*s+dQ4)*s+dQ3)*s+dQ2)*s;\n bR := ((((((( dR9*s+dR8)*s+dR7)*s+dR6)*s+dR5)*s+dR4)*s+dR3)*s+dR2)*s;\n bS := (((( (((dS9*s+dS8)*s+dS7)*s+dS6)*s+dS5)*s+dS4)*s+dS3)*s+dS2)*s;\n \n # \+ Calculate the interpolated y value.\n t := b1*f1 + b8*f8 + b9*f9 + b A*fA + bB*fB + bC*fC + bD*fD + bE*fE + bF*fF\n + bH*fH + \+ bM*fM + bN*fN + bO*fO + bP*fP + bQ*fQ + bR*fR + bS*fS;\n ys := yF + \+ t*h;\n Digits := saveDigits;\n evalf(ys);\nend proc: # of rk89inte rp2\n \nrk89step := proc(x_rk89step::realcons)\n local c2,c3,c4,c5 ,c6,c7,c8,c9,cA,cB,cC,cD,cE,cG,a21,a31,a32,a41,a42,\n a43,a51,a53,a5 4,a61,a64,a65,a71,a74,a75,a76,a81,a86,a87,a91,a96,a97,\n a98,aA1,aA6 ,aA7,aA8,aA9,aB1,aB6,aB7,aB8,aB9,aBA,aC1,aC6,aC7,aC8,aC9,\n aCA,aCB, aD1,aD6,aD7,aD8,aD9,aDA,aDB,aDC,aE1,aE6,aE7,aE8,aE9,aEA,aEB,\n aEC,a ED,aF1,aF6,aF7,aF8,aF9,aFA,aFB,aFC,aFD,aFE,b1,b8,b9,bA,bB,bC,bD,\n b E,bF,f1,f2,f3,f4,f5,f6,f7,f8,f9,fA,fB,fC,fD,fE,fF,g1,g2,g3,g4,g5,g6,\n g7,g8,g9,gA,gB,gC,gD,gE,gFuk,xk,yk,jF,jM,jS,n,h,data,gn,xx,ys,us,\n saveDigits;\n options `Copyright 2007 by Peter Stone`;\n \n d ata := SOLN_;\n\n saveDigits := Digits;\n Digits := max(trunc(eval hf(Digits)),Digits+5);\n\n # procedure to evaluate the 2nd derivativ e as a function of x,y and u=dy/dx\n gn := proc(X_,Y_,U_)\n loc al val; \n val := traperror(evalf(GXYU_));\n if val=lasterro r or not type(val,numeric) then\n error \"evaluation of 2nd de rivative failed when x = %1, y = %2, and the derivative u = %3\",evalf (X_,saveDigits),evalf(Y_,saveDigits),evalf(U_,saveDigits);\n end \+ if;\n val;\n end proc;\n\n xx := evalf(x_rk89step);\n n := \+ nops(data);\n\n if (data[1,1]data[n,1] or xxdata[1,1]) ) then\n error \"independent variable is outside the interpolatio n interval: %1\",evalf(data[1,1])..evalf(data[n,1]);\n end if;\n\n \+ c2 := 0.04; c3 := c3_; c4 := c4_; c5 := 0.576; c6 := c6_; c7 := c7_; \+ c8 := 0.64;\n c9 := 0.48; cA := 0.6754e-1; cB := 0.25; cC := cC_; cD := 0.8115; cE := 0.906;\n a21 := c2; a31 := a31_; a32 := a32_; a41 \+ := a41_; a43 := a43_; a51 := a51_;\n a53 := a53_; a54 := a54_; a61 : = a61_; a64 := a64_; a65 := a65_; a71 := a71_;\n a74 := a74_; a75 := a75_; a76 := a76_; a81 := a81_; a86 := a86_; a87 := a87_;\n a91 := \+ 0.7125e-1; a96 := a96_; a97 := a97_; a98 := -0.3375e-1; aA1 := aA1_;\n aA6 := aA6_; aA7 := aA7_; aA8 := aA8_; aA9 := aA9_; aB1 := aB1_; aB 6 := aB6_;\n aB7 := aB7_;aB8 := aB8_; aB9 := aB9_; aBA := aBA_; aC1 \+ := aC1_; aC6 := aC6_;\n aC7 := aC7_; aC8 := aC8_; aC9 := aC9_; aCA : = aCA_; aCB := aCB_; aD1 := aD1_;\n aD6 := aD6_; aD7 := aD7_; aD8 := aD8_; aD9 := aD9_; aDA := aDA_; aDB := aDB_;\n aDC := aDC_; aE1 := \+ aE1_; aE6 := aE6_; aE7 := aE7_; aE8 := aE8_; aE9 := aE9_;\n aEA := a EA_; aEB := aEB_; aEC := aEC_; aED := aED_; aF1 := aF1_; aF6 := aF6_; \n aF7 := aF7_; aF8 := aF8_; aF9 := aF9_; aFA := aFA_; aFB := aFB_; \+ aFC := aFC_;\n aFD := aFD_; aFE := aFE_; b1 := b1_; b8 := b8_; b9 := b9_; bA := bA_; bB := bB_;\n bC := bC_; bD := bD_; bE := bE_; bF := bF_;\n\n # Peform a binary search for the interval containing x.\n \+ n := nops(data);\n jF := 0;\n jS := n+1;\n\n if data[1,1]1 do\n jM := trunc((jF+jS)/2);\n \+ if xx>=data[jM,1] then jF := jM else jS := jM end if;\n en d do;\n if jM = n then jF := n-1; jS := n end if;\n else\n \+ while jS-jF>1 do\n jM := trunc((jF+jS)/2);\n if xx<=dat a[jM,1] then jF := jM else jS := jM end if;\n end do;\n if j M = n then jF := n-1; jS := n end if;\n end if;\n \n # Get the da ta needed from the list.\n xk := data[jF,1];\n yk := data[jF,2];\n uk := data[jF,3];\n\n # Do one step with step-size ..\n h := xx -xk;\n\n f1 := uk;\n g1 := gn(xk,yk,uk);\n\n ff := a21*f1;\n g g := a21*g1;\n f2 := uk + gg*h;\n g2 := gn(xk + c2*h,yk + ff*h,f2) ;\n\n ff := a31*f1 + a32*f2;\n gg := a31*g1 + a32*g2;\n f3 := uk + gg*h;\n g3 := gn(xk + c3*h,yk + ff*h,f3); \n\n ff := a41*f1 + a 43*f3;\n gg := a41*g1 + a43*g3;\n f4 := uk + gg*h;\n g4 := gn(xk + c4*h,yk + ff*h,f4);\n\n ff := a51*f1 + a53*f3 + a54*f4;\n gg := a51*g1 + a53*g3 + a54*g4;\n f5 := uk + gg*h;\n g5 := gn(xk + c5*h ,yk + ff*h,f5);\n\n ff := a61*f1 + a64*f4 + a65*f5;\n gg := a61*g1 + a64*g4 + a65*g5;\n f6 := uk + gg*h;\n g6 := gn(xk + c6*h,yk + f f*h,f6);\n\n ff := a71*f1 + a74*f4 + a75*f5 + a76*f6;\n gg := a71* g1 + a74*g4 + a75*g5 + a76*g6;\n f7 := uk + gg*h;\n g7 := gn(xk + \+ c7*h,yk + ff*h,f7);\n\n ff := a81*f1 + a86*f6 + a87*f7;\n gg := a8 1*g1 + a86*g6 + a87*g7;\n f8 := uk + gg*h;\n g8 := gn(xk + c8*h,yk + ff*h,f8);\n\n ff := a91*f1 + a96*f6 + a97*f7 + a98*f8;\n gg := \+ a91*g1 + a96*g6 + a97*g7 + a98*g8;\n f9 := uk + gg*h;\n g9 := gn(x k + c9*h,yk + ff*h,f9);\n\n ff := aA1*f1 + aA6*f6 + aA7*f7 + aA8*f8 \+ + aA9*f9;\n gg := aA1*g1 + aA6*g6 + aA7*g7 + aA8*g8 + aA9*g9;\n fA := uk + gg*h;\n gA := gn(xk + cA*h,yk + ff*h,fA);\n\n ff := aB1*f 1 + aB6*f6 + aB7*f7 + aB8*f8 + aB9*f9 + aBA*fA;\n gg := aB1*g1 + aB6 *g6 + aB7*g7 + aB8*g8 + aB9*g9 + aBA*gA;\n fB := uk + gg*h;\n gB : = gn(xk + cB*h,yk + ff*h,fB);\n\n ff := aC1*f1 + aC6*f6 + aC7*f7 + a C8*f8 + aC9*f9 + aCA*fA + aCB*fB;\n gg := aC1*g1 + aC6*g6 + aC7*g7 + aC8*g8 + aC9*g9 + aCA*gA + aCB*gB;\n fC := uk + gg*h;\n gC := gn( xk + cC*h,yk + ff*h,fC);\n\n ff := aD1*f1 + aD6*f6 + aD7*f7 + aD8*f8 + aD9*f9 + aDA*fA + aDB*fB + aDC*fC;\n gg := aD1*g1 + aD6*g6 + aD7* g7 + aD8*g8 + aD9*g9 + aDA*gA + aDB*gB + aDC*gC;\n fD := uk + gg*h; \n gD := gn(xk + cD*h,yk + ff*h,fD);\n\n ff := aE1*f1 + aE6*f6 + a E7*f7 + aE8*f8 + aE9*f9 + aEA*fA + aEB*fB + aEC*fC\n \+ + aED*fD;\n gg : = aE1*g1 + aE6*g6 + aE7*g7 + aE8*g8 + aE9*g9 + aEA*gA + aEB*gB + aEC*g C\n \+ + aED*gD;\n fE := uk + gg*h;\n gE := gn(xk + cE*h,yk + ff*h,fE) ;\n\n ff := aF1*f1 + aF6*f6 + aF7*f7 + aF8*f8 + aF9*f9 + aFA*fA + aF B*fB + aFC*fC\n \+ + aFD*fD + aFE*fE;\n gg := aF1*g1 + aF6*g6 + aF7*g7 + aF8*g8 + aF9*g9 + aFA*gA + aFB*gB + aFC*gC\n \+ + aFD*gD + aFE*gE;\n fF := uk + gg*h;\n\n if DERIV_ then\n gF := gn(xk + h,yk + ff*h,fF);\n gg := b 1*g1 + b8*g8 + b9*g9 + bA*gA + bB*gB + bC*gC + bD*gD + bE*gE + bF*gF; \n us := uk + gg*h;\n Digits := saveDigits;\n return ev alf(us);\n else \n ff := b1*f1 + b8*f8 + b9*f9 + bA*fA + bB*fB \+ + bC*fC + bD*fD + bE*fE + bF*fF;\n ys := yk + ff*h;\n Digits := saveDigits;\n return evalf(ys);\n end if;\nend proc: # of r k89step\n\n # start of main procedure\n x := op(1,xrng);\n y := \+ op(1,iy);\n u := op(1,iu);\n if not type(indets(gxyu,name) minus \+ \{x,y,u\},set(realcons)) then\n error \"the 1st argument, %1, mus t depend only on the variables %2, %3 and %4\",gxyu,x,y,u;\n end if; \n xrg := op(2,xrng);\n x0 := op(1,xrg);\n xn := op(2,xrg);\n \+ y0 := op(2,iy);\n u0 := op(2,iu);\n\n # Get the options.\n # Set the default values to start with.\n maxstps := 2000;\n t := Float (1,-Digits);\n hmx := 0.5;\n hstrt := evalf(0.1*10^(-ceil(Digits/1 0)));\n hmn := min(0.000005,hstrt/20);\n errcntl := 0;\n maxtemp := 0;\n maxtemp2 := 0;\n outpt := 'rkinterp';\n prntflg := fals e;\n if nargs>4 then\n Options:=[args[5..nargs]];\n if not type(Options,list(equation)) then\n error \"each optional arg ument must be an equation\"\n end if;\n if hasoption(Options ,'maxsteps','maxstps','Options') then\n if not type(maxstps,po sint) then\n error \"\\\"maxsteps\\\" must be a positive in teger\"\n end if;\n end if;\n if hasoption(Options,' tolerance','t','Options') then \n tt := evalf(t); \n i f not type(tt,float) or \n tt>Float(1,-iquo(Digits,2)) or t thmx) or evalf(hstrttrue then prntflg := false end if; \n end if;\n if n ops(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 stdstep : = evalb(member(outpt,\{'points','rkstep','rkinterp','endpt'\}));\n d rvstep := evalb(member(outpt,\{'derivpts','derivstep','derivinterp'\}) );\n\n if prntflg then\n print(`method: Verner's \"most robust \" 16 stage, order 8-9`);\n print(`an embedded order 8 scheme pro vides error control`);\n if member(outpt,\{'rkinterp','derivinter p','interp_pair'\}) then\n print(`12 extra stages are used to \+ construct the interpolation procedure`);\n end if;\n print(` `);\n end if;\n\n saveDigits := Digits;\n Digits := max(trunc(ev alhf(Digits)),Digits+5);\n\n # procedure to evaluate the 2nd derivat ive as a function of x,y and u=dy/dx\n gn := subs(\{GXYU_=evalf(gxyu ),X_=x,Y_=y,U_=u\},\n proc(X_,Y_,U_)\n local val; \n va l := traperror(evalf(GXYU_));\n if val=lasterror or not type(val, numeric) then\n error \"evaluation of 2nd derivative failed wh en x = %1, y = %2, and the derivative u = %3\",evalf(X_,saveDigits),ev alf(Y_,saveDigits),evalf(U_,saveDigits);\n end if;\n val;\n \+ end proc);\n\n SQRT6 := evalf[Digits+3](sqrt(6)); \n\n # node s\n c2 := 0.04;\n c3 := evalf(48/335-32/1675*SQRT6);\n c4 := eva lf(72/335-48/1675*SQRT6);\n c5 := 0.576;\n c6 := evalf(48/125-8/12 5*SQRT6);\n c7 := evalf(48/125+8/125*SQRT6);\n c8 := 0.64;\n c9 \+ := 0.48;\n cA := 0.6754e-1;\n cB := 0.25;\n cC := evalf(57617028 499878/85094827871699);\n cD := 0.8115;\n cE := 0.906;\n\n # lin king coefficients\n a21 := c2;\n a31 := evalf(-15792/112225+5536/1 12225*SQRT6);\n a32 := evalf(31872/112225-1536/22445*SQRT6);\n a41 := evalf(18/335-12/1675*SQRT6);\n a43 := evalf(54/335-36/1675*SQRT6 );\n a51 := evalf(4014/3125+252/625*SQRT6);\n a53 := evalf(-14742/ 3125-972/625*SQRT6);\n a54 := evalf(12528/3125+144/125*SQRT6);\n a 61 := evalf(1232/16875-152/16875*SQRT6);\n a64 := evalf(29684/106875 -13372/320625*SQRT6);\n a65 := evalf(2132/64125-284/21375*SQRT6);\n \+ a71 := evalf(2032/16875+152/16875*SQRT6);\n a74 := evalf(-7348/983 25-33652/294975*SQRT6);\n a75 := evalf(10132/64125-716/21375*SQRT6); \n a76 := evalf(2592/14375+2912/14375*SQRT6);\n a81 := evalf(16/22 5);\n a86 := evalf(64/225+4/225*SQRT6);\n a87 := evalf(64/225-4/22 5*SQRT6);\n a91 := 0.7125e-1;\n a96 := evalf(177/800+69/1600*SQRT6 );\n a97 := evalf(177/800-69/1600*SQRT6);\n a98 := -0.3375e-1;\n \+ aA1 := evalf(2844530829046074022657/58982400000000000000000);\n aA6 := evalf(4287156859652598464203/58982400000000000000000-\n \+ 1598864762333658025459/117964800000000000000000*SQRT6);\n aA7 := eva lf(4287156859652598464203/58982400000000000000000+\n 1598864 762333658025459/117964800000000000000000*SQRT6);\n aA8 := evalf(-141 033886218604337343/6553600000000000000000);\n aA9 := evalf(-21409264 848554971927/204800000000000000000);\n aB1 := evalf(-72189389771/995 9178240000-459663572789/59755069440000*SQRT6);\n aB6 := evalf(1/30); \n aB7 := evalf(-14201240926266911/557169364500480000-\n 3 1790792357660029/557169364500480000*SQRT6);\n aB8 := evalf(224144369 41/1563197440000+459663572789/56275107840000*SQRT6);\n aB9 := evalf( 154180604903/2534154240000+459663572789/11403694080000*SQRT6);\n aBA := evalf(21871487332435000000/125536952879579583419+\n 1838 6542911560000000/1129832575916216250771*SQRT6);\n aC1 := evalf(-1781 4457135339308018349626715861482187798261191466639575293774540539140870 7734804982447062502773/12477180101129940547461455164104253535981349476 00568397156373491324203879120405304413829778240000+3525911945755693171 1565118099122309702656888038447848465094493141264804660882853103456253 8513357/81101670657344613558499458566677647983878771594036945815164276 93607325214282634478689893558560000*SQRT6);\n aC6 := evalf(-39115022 5456457796885858319889751408825022451618311227032014355910365202109457 51850583137867/3842542879826810236707110858948304316677703125568821833 1140907046999467997785653437677908480-49082670039628745454059833196112 9757400186839154291202145347161815801053957874498846640625/15370171519 3072409468284434357932172667108125022752873324563628187997871991142613 75071163392*SQRT6);\n aC7 := evalf(643210041535328932923955834959360 270277930780334485030265105750796567439186095378077346484617022694073/ 1814903407134118101527330524719997209072721513421672786517822272756721 738310655354625038802858212480000*SQRT6-622064296680932516193525865473 0602646524634866355956674478556999200235462116077974176356230048173164 59/9074517035670590507636652623599986045363607567108363932589111363783 60869155327677312519401429106240000);\n aC8 := evalf(120394354672838 5294644268186854769106596033156989737459970836017592684437096940490927 391123081521/654673243150492794078974012593317347953963670018788019816 8132038132534360122730704444373657280000-15111051196095827876385050613 9095613011386663021919350564690684891134877118069370443383945077153/32 7336621575246397039487006296658673976981835009394009908406601906626718 0061365352222186828640000*SQRT6);\n aC9 := evalf(6368146615670137844 9525903160928961790100434377497936201427140303316098275608362465676059 840449/119057634931893490852780569777780769114850167606078444507680127 107913165342297705956314829715000-352591194575569317115651180991223097 026568880384478484650944931412648046608828531034562538513357/154774925 4114615381086147407111149998493052178879019778599841652402871149449870 177432092786295000*SQRT6);\n aCA := evalf(10278934048763239705668635 9306562764382798025378120766919524062556606029760828355981796225798367 84640000000/2070660733355865000456385391607475107799460834755308758730 1432465002027701979512351053114927376343490460197-24757946279683404392 6692669258294252357855908695112663965189218125635382670244856534440255 61440747520000000/2691858953362624500593301009089717640139299085181901 38634918622045026360125733660563690494055892465375982561*SQRT6);\n a CB := evalf(1963500009650946638084395645582909493284711388363243988292 6745444809822658280742880787456/\n150099331243234774871371517927668137 37022277834253210285601916815234167186635020874092933);\n aD1 := eva lf(2525608241949563386308964624438617443527/\n 1241601789775 6354830807859200000000000000*SQRT6-\n 2548851195094876660216 3761842966272037005387677568247/\n 2534336434064494528100377 1622773961523200000000000000);\n aD6 := evalf(-552470350996365859393 640759989/2400793528263703412500070400000*SQRT6-\n 261754608 1675469247418718340204655213/431392587109884206933606400000000000);\n \+ aD7 := evalf(-45969294618407232267578352626581642155421231201/\n \+ 10187731154133781589406192186163200000000000000+\n 15 40493536582818303738906021531546510663696889/\n 885889665576 850572991842798796800000000000000*SQRT6);\n aD8 := evalf(-3968812951 635028178485515838403541696971/\n 18374628007211630439078297 600000000000000*SQRT6+\n 20301387341801440158880077748955015 3682185921397719/\n 6003783517480134311881093736968119910400 000000000000);\n aD9 := evalf(-6776022112547609085219173382640193141 17/\n 635714271434389910412902400000000000000*SQRT6+\n \+ 57340072791914637839492204156400815228449519011392389/\n \+ 19744238839693126186283635091213610188800000000000000);\n aDA := e valf(-8800028717594297513271653743688562521/\n 2044936274689 7197076153911415852248500*SQRT6+\n 2410078871503919222575819 7856261740786803059875758180717/\n 9662717001210818114953908 042643919942065136939286292000);\n aDB := evalf(12435891603352343922 5154730110040589545064737/\n 1993591244994566948500251017870 4400000000000);\n aDC := evalf(5947161392974866744750823561035920298 86330739685357945223223985387172161751824241784555387316314439/\n81801 9847119678359631725769101238313386585208743795596694052943582031156000 597320370585600000000000);\n aE1 := evalf(-2938809528732308039351664 16296767553377/\n 866938749696854853908947200000000000000*SQ RT6+\n 18459267936147075367459423920818945931746672238792936 9596771/\n 1278912170918306562333640142057316550645713216000 00000000000);\n aE6 := evalf(2897291244884828193281565089/1904926505 5803310768128000000*SQRT6+\n 5966995986367380181027852718263 477/684582962942931480729600000000000);\n aE7 := evalf(-374861943562 4523040662096435375495632409181/\n 1405830768127326348741938 035200000000000000*SQRT6+\n 99009240614446727611594225452277 068906413179/\n 16167053833464253010532287404800000000000000 );\n aE8 := evalf(41982993267604400562166630899538221911/\n \+ 116635822311401951029305600000000000000*SQRT6+\n 463264582 3113234486269357844283603936661991916850927460433/\n 5096189 922215990577140952099757378096638035200000000000000);\n aE9 := evalf (293880952873230803935166416296767553377/\n 1654471223996727 64770545400000000000000*SQRT6-\n 121354756771846880705598195 01757154968443992507349800863475059/\n 333753408855726885777 5113382843672473526974754800000000000000);\n aEA := evalf(2149529255 3013453087829315020563569618432/\n 2997365344626456661437259 5657785433238875*SQRT6-\n 8031428603597180964147750321204281 053557209400385686643427859804352/\n 25135864401783913069001 78164909088113749933981949109368563389778875);\n aEB := evalf(-44866 632128961269158599595825347949153517725172080973/\n 54296071 75821308141232283339099249860726338769531250);\n aEC := evalf(-35998 8533934752543813368225945058137961504440675167771570563740579175484411 998973149563531328527853237660249760109643/234128137445668240736067711 6624423798924834709317406966157166023457299333433080087587325901942949 58617150200000000000);\n aED := evalf(101113680735918918122257191691 4688/2927578889427871359661497484969729); \n aF1 := evalf(4220334940 168717525563719481764309232553/\n 55532688950306902357899960 03491120640000*SQRT6-\n 431179384946124492233842371061399556 97243762787772847383/\n 140301048622946906485795665217274884 45420965260989440000);\n aF6 := evalf(-65372649360291914372644744384 375/457582893592156886213077910962176*SQRT6-\n 4921705044310 44248358505817476691843/26311016381549020957251979880325120);\n aF7 \+ := evalf(312292306982904450161582808948983992497619279/\n 54 031196176535884913246084116864832317440000*SQRT6-\n 60242025 722206083647640080390153021797730167/\n 46718703460914486955 06240355969515576320000);\n aF8 := evalf(-42203349401687175255637194 81764309232553/\n 5229862652007483519857107084128791040000*S QRT6-\n 1012848601975442533636285582979463426076658292522730 4979/\n 2051440458733049774272501566471676463052668060718080 000);\n aF9 := evalf(-4220334940168717525563719481764309232553/\n \+ 1059789239915401287502749181781142480000*SQRT6+\n 90 164396775224825317874747969895939573106537263617688583/\n 99 32194582195572820411492715910530662743409752296080000);\n aFA := eva lf(-43216229787327667461772487493266526541342720000000/\n 26 879922067906624005297106621487120800647611685231*SQRT6+\n 82 2220421784353922416106346105112190310210366765138782108892460117760000 000/\n 11253996143693043613068245539207658293443583785731438 0718907401253008522853);\n aFB := evalf(2098142138719162166795696408 11090009729840605120/\n 116519746609607380969872306225548240 75229159217);\n aFC := evalf(394155089286395228118412271548581315021 4519858148244578543766661999079625453432169420046111603168071904019820 197053706993310801913/\n5763488069457478355617493981609669453909166107 6521018249385759399673275736397697647150553033702207473063063847554848 9174498085584);\n aFD := evalf(-475944389207705069529277276691227549 8897121280000000000/\n 4614026158486489304426198097242323507 384603506591241137);\n aFE := evalf(38733614144315448443538220691259 283298308750000000/\n 93806291160324220065540465392781147766 752569954001);\n\n#step for error estimate \n aG1 := evalf(-15631765 3995567850184921063401246768027/\n 2123592406830677012916618 98043594240000*SQRT6+\n 180924082138329654478403899452268147 27838921316097789/\n 456826090866320289268103474645955550170 6277524480000);\n aG6 := evalf(41984484090942118562371132909375/5249 4462812567108248894805557248*SQRT6+\n 6594683784650905775006 6287355594411/3018431611722608724311451319541760);\n aG7 := evalf(-3 8800907634871851557429961190168666395776983/\n 6198524154042 582121698476759940763269120000*SQRT6+\n 86929658981342392065 13518248119006769975359/\n 535962614823230784958890847664050 959360000);\n aG8 := evalf(26416302622224262844685000717365835661056 08571199325883/\n 235343729805469979809271071241826755571130 067491840000+\n 156317653995567850184921063401246768027/\n \+ 199992055607259790546219146109360640000*SQRT6);\n aG9 := ev alf(156317653995567850184921063401246768027/\n 4052676766181 9895652001992553977680000*SQRT6-\n 1934221034749233536945421 05476136625982637168991506421/\n 160483573437102114320728337 49116213173856151273040000);\n aGA := evalf(-19419587503350096681694 941672242361995243037384025897671049255680000000/\n 21557389 29233095407456284002740551925607350553898010429805538450410571+\n \+ 1600692776914614785893591689228766904596480000000/\n 1 027899053306897212338272667278244239283200723671*SQRT6);\n aGB := ev alf(-27285760059113968837908932750404506400064658240/\n 1336 728621411169422812695849204871581103756891);\n aGC := evalf(-1948530 1606187433333548455543655191732975032494415887278634251111026334129440 5932910123138589192221578993200454377/15840605894584140753571150900860 6665080004611349475377495883416420484790305489258084501428138744206891 13167632464);\n aGD := evalf(894887352566754892758772116806035181797 32480000000000/58814073298029244653337926984054935524805348324518339); \n\n # weights\n b1 := evalf(100976787617015984669475787/692150295 2403262310437464576);\n b8 := evalf(8877148253451235588984375/438551 4038208782482187638272);\n b9 := evalf(96191657294968151174775851562 5/4416417715504587515036809762176);\n bA := evalf(196733751670156400 1434375000000000000000000000000/\n 15431364863119854943071851 131903908575429289017877);\n bB := evalf(232371325207697480685545753 6/10352378514220126928031114081);\n bC := evalf(28308600293241456954 3119391171389373911412640543251581210888597980900569995046369938026341 22671806566061266984631226363619/1583915465406700809680657570071738908 8587763113250985823298798221316938089802975861235659646456168220355218 6100842929847264);\n bD := evalf(29613635234119765342208000000000000 0/3899432561650270968394778037550931439);\n bE := evalf(117048651891 177050452812500000000/903958175807874008864483503817601);\n bF := ev alf(145778296653275182685983/4945417885871057962703934);\n \n # er ror coefficients\n e1 := evalf(-177913950874589116688275/30899566751 800278171595824);\n e8 := evalf(-146310814863971313066015625/1370473 13694024452568363696);\n e9 := evalf(146310814863971313066015625/103 7692132402393683044363196);\n eA := evalf(22239243859323639586034375 0000000000000000000000/\n 15431364863119854943071851131903908 575429289017877);\n eB := evalf(-45545971423894813872198400/14789112 16317160989718730583);\n eC := evalf(3025370389918671796877721979223 0849580089055151782698388603441025752163092571411495771931144749354623 7081175474332041275/26051241207347052790800288981443074158861452488899 6477356888128640081218582285787191375981027239608887421358718491660933 );\n eD := evalf(-36436777139115851097758720000000000000/\n \+ 113083544287857858083448563088977011731);\n eE := evalf(11704865189 1177050452812500000000/903958175807874008864483503817601);\n eF := e valf(145778296653275182685983/4945417885871057962703934);\n eG := ev alf(-16723862451391031122709/339047561915509883967882);\n\n ## nodes and linking coefficients for 12 extra stages used for interpolation\n if member(outpt,\{'rkinterp','derivinterp','interp_pair'\}) then\n \+ cI := evalf(226653722310560373/305421660606510191);\n cJ := \+ 0.888;\n cK := 0.696;\n cL := 0.487;\n cM := 0.25e-1;\n cN := 0.15;\n cO := 0.32;\n cP := 0.78;\n cQ := 0 .96;\n cR := 0.42;\n cS := 0.25;\n aH1 := b1; aH8 := b8 ; aH9 := b9; aHA := bA; aHB := bB;\n aHC := bC; aHD := bD; aHE := bE; aHF := bF;\n aI1 := evalf(3087869512291919417337803948463966 1690038856015163826798964560158677379340068262361132541525526793677755 5906619425860405247304243350098196916984219632845530918276153550968630 41328551708358871485646120332024084108975995042341286612353842440693/2 0403328328115458494133410103092538326472371870850604130212953769287355 6667660937888053024876296028109843666686296038864614074267398811674942 2252854583423470769504064362172657759775020227135479838862766161624512 062675163952468167497075472344576+237041371792140016488292176699789957 9585818007296769261137280926500645849762612717599644271027754930360914 9314804030860352813229415562572410431201069297283740228146526641014393 7445459051963703569962871332731840781014225/12426302568909510326579728 6918195108175719520580444543463412989871404205233065643395132958732014 6803437551827609256142709084927740265171032272579749514163197940132746 513394263595335092515722480978556773742083196994120459986*SQRT6);\n \+ aI8 := evalf(133727921323555006019570849966463687303873497925022685 1939899808480335929866565136620212713369948589887091625387353301490756 8082702015234202520056507127612233667537598467333819967521261570671325 242954843184056029474183410504324658418633390890625/736878645460908712 3352457398969579942717124799744878613652798116958104906872894914045525 8812745718557854000413952212061689228479473308024119163225965015340569 7562894455269130785959470503210225011839593485731469643614088623525016 76930760850901504+8841894670628564938638219455811130726240203110772100 1948920458962640138626755282072267898040657304265783464784995141637589 2403285560606563718007334315631439249226287880342877750749805813856652 90519970241818077214403515625/2499855014213586015670970609045039762815 4065424765668547443655875961691216157773142345691726769887808701320678 2927247517729243106560360764277593123100503532351299237579911468789560 2121370622281856166575863117099558048424262*SQRT6);\n aI9 := eval f(19027838250299912052788416579684179951609584960616173000428881902679 8266321404493268572802739897123430394517339444358383789292458457429646 5219889788139277729751314444428212933448738125198221152312800906072259 3349691332125417162575872912510328125/95259467844256245233209584758601 8091941607394078226774898558096807703226398861971868080275027983782703 9149145139985005719723326957336805889948799892644873534053403586179073 3299366503262578665256865070593502377676407434449387200965408151977998 208-125080461194257747912443104496840385883397995225556539342375283410 5640985451660087851594655209298450589131940860906881702481936355183297 0901376689119586981335720762121234118758425241155415533138658922619574 2645815497656250/26776693962340140068807132003855981977872333681837698 6856113656979778290611658968192650592228874688829327135068264133065209 6582075033247674010155994114064791792472512878726931969092245172814641 4253290118500906575211496165331*SQRT6);\n aIA := evalf(1259048249 1688877403879750408595201934344022926666450484645373536529892988812193 7407009435025357650988964859374717985692362470222277459261827473554238 4434999603004026411108343010506046277552695340281804213162662295074075 36635736567933370633750000000000000000000000/9985357135562992906543688 7558660351574825195979887032071025368666945145476237025336343545686637 7367071115317383500029929708698317043902186209061528069683542508583153 5111800757873559555089616299610743556149426863301584827265535236214883 02531994773921078507510340723-5382772950704609289473413600415751778706 2309669480883137684259895304825856678337573751383782800154011559884903 2555789091274985024575432678790279586939467334723431418182764834845334 51592960639162228742859409248957841750000000000000000000000000/1127368 1740949200158247684268145698735742811097402300443591835959682002727747 5582671342889582071423041227873059682687949268918318661902881906935240 0731700220999067813569729578558627516429906319277190717304800626973428 89671473292164122768746705057*SQRT6);\n aIB := evalf(152553264273 9540438585464071223388279683247874854183173044990463480472098506588580 7994010294075234156120398464543812227174445677854315391003275403424676 7390678926011090834125274204953422728562502461369359331567188025243505 059909526401328050432/669883691973812610467335770453156370483999083890 5408282652319158792765233866591130386692836157657926708679975431388530 7276174293082872529583619794887431547787770142800380938974573945641870 0286433441117691950389837070309849019897303678878771719+24591819314480 6273015696138889147945877631130453062200870257197207841862867679986552 3263219713897497734280526287811801977615685429198776742977868094423757 2264533875991315976208564698130839371393254534583892570108493363200/24 1022828500152839880642205984289048073770218148565515773281251625009956 3656327794255889365871564646021400192680721350424271039869139199760851 1318564104719311144781806977489973000935496530247216299003016167059595 417422681099*SQRT6);\n aIC := evalf(-1286169054855917096277342379 8036227182768400822486062511152679333527894482477813636295898779693256 3150057009148306626630587252296717167130416631561655887317706843594367 0641337657955610449253549942918739603901411598518214731887233820991214 1629900298758444120123994508756162088857641720010405829526014031014558 51703911697343982521790319/3077847007399690652994790716760656217140198 7641096282821357524695767281042816881074495451326886117138069753267918 9918624817436214021311872388755756310373995232948217441261039523722434 9244185160307363678143371457542016247927492984132988765448850600056257 5903394144312011585873213895736912065412862905359227145137823607177284 246489228192-149435035485757625582968894536898996909445732860225802244 3661593597502090321796663723370603314834699697055639902776615578091291 0673731249822219140883145972506107825068648552192782645573645152085577 8283176410054821757608045276931599356445663362384577806549844881227542 8017787621870554561370630421818398005521746978200/38839862626189866686 5776477930247302618169204213866121749776511421565591875778010724621547 0251301547529951502490222907036352511570442429565232040956099733246456 0069567357384020195515380374464648829894067848180277531137913050117048 8515003038624216799751663058940028313968606732393228153544238100957720 42207684590076789*SQRT6);\n aID := evalf(560239638727388798677391 1766280268555866010542335241204051848993347270379535748298830428706661 5895322205574237442268993370668899290155940245925335083520767941840664 6810287491725358313940100248750495871323970271122904138697268786274167 67078400000000000/1149481599528462884538492214751747007614237551824746 5835900603610550248067892197347048018491126311533374461090906118513941 9592656382180721734388567109696596324476078437246159917724812281711316 0002805574494677363030270224366437829729628196949518539407689+10301553 9401655756767750106712184580137756080189788508155101354641343717778542 8296157893149509780816419979581893234062641964169630622220653507970287 3192750578246630044893537926448558093123006151963585368476070237018931 20000000000000/9650228182528661142482588330223020379830455715057788268 6036914184765380058705288227755096117696059956059156661010804769700933 3445772983105933370748140851008895123386328296949758702111206644993947 75191735116290462555352263327274001761*SQRT6);\n aIE := evalf(-58 8076437302196582984161244533620114374984526019262696171909025133647901 0727853802277214152023609529250674810622401784436242532686398471178136 4680440554593148417359262907036147631841618232301569779387727607836279 477698365365777291402137500000000/333746689850627323838088833576503846 2457091174435349318898710107557540450798720660005328332298530410370509 4730153155735994223895198608089547342288005069697073988870723967244927 6294808783278418671343854351208551202449907215412249411584544879301765 7-57814968729790247923973701634095111697215073348701689296031242109771 8499942100662829181529518964617161198763775708069764702761693062501766 1080780748609093595177596713814881559449889245169846428535679788603215 62880522500000000000/1347713572983128798080942723499096535415586930403 0822692632990703600819944388569085480658211721520233131765031481759359 7045411409395654740145970887778329546211769618737526836949225470794170 505270304450133814552105305767554050982833*SQRT6);\n aIF := evalf (-55867448836931479530687178180862025081886449063320593543352145502495 3761503787303038714739717587593329251119688513664290220096045352569348 0181641667332456360139612563880176916091504338212196205150767098482793 329143043883/349253823119279099665347901163806282663359962700679664974 8591658605360994283645200671428555727684608324877825342986495407499474 8877675417697079892308601070396084100520878433531175135255797047061079 0373486412643075809088442-39200946501734285094220225300045954123583127 9014464957921069979385626730728367123193760305414905977607585826582651 2244625092977870653660407545767958328314978859183988921353791001182244 2410322197863059503811317207511600/13432839350741503833282611583223318 5639753831807953717298022756100206192087832507718131867527987869550956 8394362687113618269028802987516065272303550330810399849388481572247443 5067359713768095023491937441785101656761888017*SQRT6);\n aIH := e valf(39232025182650223348705514342974632701372659084469723275868986428 5561292726062968338479777708318041698578704732566125565774470102410474 53809203074917818311689085695236821079162808291962058296896800766/2110 8120203624599039904358342948309669804450301472635254786055537091483716 0507379390370828341428589875192075274716930656265166151561850174242617 9424376628334268400782573489148452492234080426865002983107+75480094433 6806966504320672341445374683025099710891803616422753628143014299118632 7381680805016763616622545158788319590897849335742211353462315599050082 529876802005822088072459754534979821615887544400/211081202036245990399 0435834294830966980445030147263525478605553709148371605073793903708283 4142858987519207527471693065626516615156185017424261794243766283342684 00782573489148452492234080426865002983107*SQRT6); \n aJ1 := \+ evalf(6860400644785616741208965915106978554029126357689688712332022223 3201209618321727471353073299573169354110491204644252113503997229164047 1463208883989410524671228635143906551161406298561028469424429106643533 49601607693700074044306157987562421733697215037423454625363808531661/5 2929457106167154326180638398558662573947329502589301780280146172080516 1332834428333770391848107021187998702747628847415184402072554514026555 8698131688156311247788921741513624364515252273955466274124234548118470 306590427261358423180768325165814776275440537232421875000000000+932388 8804714432582281772674166380987021885172323245927388705704735888830449 0399656578029749975315704760995414541706489543788793798147545503021193 5595836461967119431580218739003544061826740336907211322312032216605773 959218828437861782074776969409452593048/151698742713677177196440446637 3167217177028817456170329550488661601559527600840225146316104123402191 9933617082755646885703910654071458149878744939927163669034509106436636 8333953103864699783459969238178312082637034023583370888928302328014197 68669157255517578125*SQRT6); \n aJ8 := evalf(-1425679017296707192 9017161600201273490523836842687749340853048423118780083284077773977090 7529290644322001569736669079071257202162403178023040681714111602622845 9701951892229742687549780159910881574872335003117180975264616740090359 96185280400449664808577597/8096564303547051681749371633221640839093041 6345299085606127418056891340466701020246079370981923701183202836713346 6495934055198124964712952032034132494788406474168709974975459898400105 9503197785863319255089460001986877426414256079827711622086543750000000 00+4484176714058709655179665043102368038239218192485135605653480056951 3118006016826953485500012995681100488834668910242228128871657736179178 8853232089386505917626771712894347902852030211444040766619059974426451 9031603062066957534862284043288/37005386155037097972908769786019937488 5339363297686712142675045064223821728433201176635198109919384810795802 5569097302875887768571157234049829591161647312710786740144547221660042 81733901772400901689266583041968312529100468812039681731234375*SQRT6); \n aJ9 := evalf(1076626769716159208771472829934494019886567247101 0751539099195493259845741564040931448561934275276630494047649646527315 4082185164273887153867312264326970960246596898146457057167155667776414 49002823005877843351540253070430486359658913836818008042991153575279/4 2913783536298693868036626220441398516177795657888600714158044323685496 0057515374021222896862581848672078899928551310614403216232627802067443 2159675751889128165416325781213181902176686680609776567507983886216332 0467645890419260524174245853939897031250000000-99611082050567766474718 2222939528700110089754473456898342046220094835699836433508545468543237 6772188302033298267860993556813503177350358942393725403630043001793684 7593260321097205355117071672938354627412001703876902739274631631200136 4576/64980688007942366158204582360115690714411518522393143014480143126 4177965592863730306819457114136467656180688339877364249237094282768768 4779903679052102164014545968017303762169732659233353309228900825907675 17467244139902745091735905344109375*SQRT6);\n aJA := evalf(142960 7818139480860934033702479003754063048529035758384276710120927175586014 5603424617375854403251903792989614872179684807226674369570697754567743 5451036237087439773759619403033959182635923937603049770471829206667888 652551430504293991457620737558785576435712000000/108703243556672625680 3501511996464116536774967389404738302712869724661197598715161231264724 2200060989022846956322670340654716546907312560075587234862639737140055 1134264679213526114126459370863278881290536169650887914830512658090570 4910116839119209336313424058961667-63052317756948728049646599249729415 6405896186508442551259952926147650657336661614871275994023460382289586 1903514581264333716296142735168497231132500213134559602441279630568681 09950843191629543406557886936480738501669253031371735040000000000000/4 0943882251966501142719841691721269745737583207870100150535603577489735 1614949080930618205107970341647258986105333896959250575109190929664620 9265288617698957081977046423181488875389787836532174875645509629274798 567906527888922432637970282212005943*SQRT6);\n aJB := evalf(33988 8279744145200053926668918218330653877695009038978811892662117884234855 4403881963131140336211761343662253616316936561786785679498248258491515 4732541534810032990939650587183522313481611240062217445074751252402215 4951031729901253818292006310591725683140352/15717621698146273954539031 7620898168370961099033497550973375423521848685515310361162133358857256 7421861800958961126585657655888433277321134042349891404927181898545345 2132089891185215172542969435314469760882677064417859950809500274700395 42084035167694091796875+8491680091808132933983019311365469801551736745 5006373799477512822380026540227411960045435232901974557088003391398280 1694102527688516429735480156872580830119036762685369026744658060366796 8281272042366181695071588940741866463327918369086373888/25698397438311 2796218554760897444813982713675729353637600111103357991371281114452386 3992475445384143804465316520079075713371551042784161516005642527774590 6362786364541732798723737563924361281028780953109462057337491848060127 336795470834228515625*SQRT6); aJC := evalf(208186015461349732097 3891971493159187333564497001390695733321306772767518822836818230436334 2495687776283259383468850137393026287823842664012727250772241565143045 2167273530422035138835169980886419398216538272162861573225029013530140 9808256505218128865246246669093552938780309142559168098177984850805024 10699016516968839611190189561829193442860116775977/6499455343969471581 9026561700767307137154356691519134885964696967702651498636848869310223 8285282192546407153860204132715038252649287539352104479177684257718757 1394397542590506390826169479312937565461361486225262987753917746887716 5093578956603100219134219289159870108092143705662858409313904786023495 8712551223936062372280104157661389241333007812500000-11013172510552271 9474682648683662012656705413969820252639074702022960153504083527758454 6394976037154360227860125701002314851364967914738820138184381326629492 5707843907806406723618691159970810035513731687518453981547831564205681 0795269415093126165821447643111236243874941704805317159526665707848773 7169033335139564927982963815088377984/80384918234465675566906277982549 4610245313327297708916116542904258150575358378924367401557836818024213 6295025459301186310961295317503138101120991745539300381653590848163577 4686370827777190908651698084567645697143167985447968820038784179431831 7408374361970688254392352005296658117078019509883750863093645978684090 42533849408321044921875*SQRT6);\n aJD := evalf(191607898049616610 4078448765060077220744248138931470721694055835079182187622768858644347 2620255716544532601054201603807876880792682775391875561522982818449135 5439036525997646332530424170294800279869504848424659605312971984176373 582228570174626022265458786304/121248969201499883828086525627751752788 2676371627314093298235599106511291652651069761878594688179958684730042 2840487642157496092205432254470454328197997949187644952397431300179287 2541684875827280063569849399308992691865121058306252769799517936146839 46678515625+6900615772902197344467137017617177748680749143371528799262 0775165405099222129679754536973234380943548123232065168730579664552016 4746680377373918378807417030523632740708672669275442838673756499128118 967899466950734053467770685823228459669690253312/227488329511907109070 6623349757811455263168645748353611659669826694537819985713507813681664 9016681355567200567019224073455895175686323299608754183128837432350501 4299766970000153727210087904845335176370045792845358869683191891602067 266970352915185055*SQRT6);\n aJE := evalf(71150989760142587244218 8404888085355392844630060280553471643650876033225365749408373301395790 2509053079540311670374572487958483806465265190286223165468589256500487 0237472659052835614875913169339429267278074344104909301059784325484432 2254156862155159296/12773161747965515663257378679929103504095935143717 7314254224726911124868014725672639386104139891133560862613896351099992 5128247880690484750935142462914261288858725382536500808164278192118022 6714940257306930622453702747916445923549919848463480843819140625-36847 3824615738036301206940472408999301430073526929067903694666826482331655 2154692761919152643173949740366361945870716208927742310532719511040306 7703110974345661320067631501090151555105043169874480392985505287619420 4990594533629690434551808/28234220075940118130314466853427873528815092 1355471205367670488182581852690034345163701816279382451655572527689873 5265606611606242069291155250071461388945056272074845444730802709553313 67066858687189281721315703433221935791217373628625879706295*SQRT6);\n \+ aJF := evalf(2221314725065122569207198530438886036644700558168552 4612182990111386604825048562717402625070789213456609329214962601238518 9758754696493471090956554801744421740703964948927939506595180878227078 2749625536820940384127886135783592516656619/49167694638860241597151726 0557953231533049954252928710576195425720452216346830687783026528220108 3258652222960953457160560299487962274325668053129688177829107491537014 6779936480111715335182884854994627452782452671271561320305633544921875 0-95946321023014796843691882151994649170915916787995293626103258152154 0178131028894851466470089504218037800930027166053218141569217798200939 7439326179530955284657245390839705577045636649902442545588031010462850 748042850045952/139570052953621521527981161433826136096209053850977062 2458030384509331712027338186460229922340067722085799500135373874078476 2073351942341745301819844999803196122504266380654286265572815685799328 124653072079965629943270947265625*SQRT6);\n aJH := evalf(-3388864 5341487890137299702915124815043135334697813581748763731684525607076654 6796564635138005688304031987746359115254664975571809645095063770496022 1919107162789431063507048527537981048743308139578379650582819186151745 9371384923651/31716214905835224231076720493971701366917276941082968289 6740033604098192739349851821764857950316538311441763257755842200838699 5018719542317273874236512603552685573534417079510863633572259676043467 924469406839177775987129211425781250+180863491806594503767247340835410 0526955943850596025181095707367483684248930017238419931149929042835906 4743689116704415553056284560365817009507428965392827270661480217400824 082647399380190174487324584978323513569536188764672/202983775397345435 0788910111614188887482705724229309970539136215066228433531839051659295 0908820258451932272848496373900853676768119805070830552795113680662737 187670620269308869527254862461926678194716604203770737766317626953125* SQRT6);\n aJI := evalf(533778013310333700623987816141481349887256 6133769231577040977887360741185975406942708599140904571624271773372300 0994293289208688151677406366889714485062698131562230866023895783536332 94233651736662751558158797043061380544633958234018254544715889539/7987 3312955658140244249709791713213174543159030618542895884585380730261286 6314320458998526916695092108735449274259457413012358450671464713010346 1483414984679700585731149811556385317045125323556694736816938867429479 5803206776494615352210998535156250+11795128106217938342154799091179267 0469521160132337815596228207889637835471175178850364250334867717273619 4942757891699423112254094226711756437756027766274271872307070617315960 9542953124406399773964899279046108831522303527909100101289344512/12468 0293394198072576389790894381601052945418974624066959429596691871627374 2539427057948920065085021828269969598844031083726608313243261991040540 3291184366329288719190087510722162446119220017259230808689855793060651 052207887062574103759765625*SQRT6);\n aK1 := evalf(18065596758808 7790642935383851091944153932397617932040759061578942971011488496692221 4946386141629657237728966174307137943638510220532889625296895331911566 2657444740081263297679926786351876458749827459294523079651670565299420 5993152581409182209578119630586303026057481153385346870875649261254639 09408630206386406633020779815703/1353796255210760012415768273641139814 5835364279966706565438982337482703019075362626189027336353625934518052 5102400507938953273878996688578830489892822522244351348819230587573651 1338925025558622795820390786804808614717639616854749845241527686337183 8892367199029417249122801527652862697749147101720658929215940206599531 25000000000+4242604887715171815942359378708231661138175031341176557197 4456649661054714337212298368024765824567397781419091717795955291729189 9913702974220986815828123738755257446544610695550038709288289851108244 8159252402313525295455541383973848351570180267942057427640140805416269 87846084030478078485896106903872099349489610832/1611662208584238110018 7717543346902554565909857103222101713074211288932165565907888320270638 5162213506167291788572033260658659379757962593845821300979193148037320 0228935566352989689196458998360471214750936672391207997190020065178387 1922948646871236776627617892163391812858961491503211606127502048403487 16183357928515625*SQRT6);\n aK8 := evalf(-27149876476166249070983 5530618709609419838960342984394677845551940836135802870831419747722334 9597756063228773361908027712753140598915161162915836426357353544055788 2348258563418303600503001479672722721469230855295968436422740739298212 2676988939316882909897807865667547171985510157052633088951024584943817 /203157711089482072251981255003250597814525268108079672480605465002733 9309115262311960819188737059593930605115229623412152107472998576619555 6775958432026463437444240650325260409123404469871214806360812736087752 3903985896715065562171188682994924171305069526106397589010037386347452 6198308028187519000000000+54263948408238908109892531875888695901103514 1470721913972410259627244806614610360246805586266403980305644661943954 4964030242146265285589821310527823915790335049140616283381133774070177 1795913632354448359009501726095624973991030104250860157090857977988229 433104072997652203830339748665778049776/130229301980437225802552086540 5452550093110693000510721029522211555986736612347635872319992780166406 3657725097625791103539150467939593715100497409251299015024002718365593 1156468739772242764197476671876513383028143580703022477924468710694227 5154944263266192989728134679726835560593716864120633025*SQRT6);\n \+ aK9 := evalf(14311427730454402425741631483851931644638581518225119525 1968065800722522688065394811683574810361695149893526758277154652186942 9312248540806363441154433507273165959411707525618040793408386703500601 1767797165661459032098454500663484045131596688809421755626915102307996 811079462207472459797145527183003496904229/593309014357620119289341495 8476710718085614491190149597628498741674569603421811400882131341693564 1599323810597417971230215584811344992022584407816478163536230809764233 6698095879660409247494030609263797670095458604573641229027664219942916 6905536182551249714601950924373909028145729973862317384842037675000000 0-28490197977932340708554491555419641505931728295700372734737983751301 8781823389673552839406083727752775616313065341600004836971879759696738 4372536865166701802618359696354392831852738319924518392250558905866899 0632354434880007290994113915230140852400942358233826525711369321171148 4574764906403392/49732107388674036201653087220364546131931957747128268 8127383571107917754538672048086950766690435466587235736476793750515214 3302348261290566249052101672537215179232716714009906703719241645032569 7962615373726578872312356244208151165534481411769693318172100104793345 607948877445668770369588833160175*SQRT6);\n aKA := evalf(-2619611 3968966332952439241356550473522607285147510511135590159319892434832343 4704977632687960054755382038484379592607689125954868515683663267688552 5980148885191332709024167113626316319789760623347239360701313673841012 0642759727361849827876250846252631049404065063024305779121094109029852 8736870400000000000000000/40118938322369531260674461997142938547089984 0936877671379896138517839436604615231709047606758914493726958397251984 5267675311188395002004120301896435292381293726129300014633388403384691 7973365625905420282381106884999485310164764742875950275191896208007881 8846432648193593764209417058678976803487729384707753800498251*SQRT6+68 2589336222094404769804816177099026173050133883858000764384279769662609 7218420517399793825739747824858209394541434999986335035402703747651483 5457362340300049834813456341317464007823882635008575195276401909060754 0157824723512451015801233723112688278865149413760761321894013868100084 19847105917002444533432320000000000/5228643918785389052730473097141928 9766443132126673357085697035309974988287770067984023447378022527518157 7351161407833957169485310394332622707345731131034207752335394343335720 0343439791895300208644787846230897687312147206923330696417961348008223 8443665129490514357849573655869750168947547219688836502524126256027793 4839);\n aKB := evalf(1852921118089170004852276774459735202404738 0194061935441376743956042203007461470426197386660243631785128189583360 6040292682564696920873939913192123189604395169222509000905307420626502 3974870198461224356978946629907340489720267488698889157893837254659143 601322801175773808185821419235733143552/137296243473878991735086631927 7185597172834719505490638123342735544789344470393665639111028434408663 5311171884840178813078764766836249409762204598116005774925788152016822 5355152325327768468063668782379174651700008088096384312307643623655284 2460992174613354732347432606589648175009724740788671875*SQRT6+44723275 6527839746980273224447738895196247764747028293529432242095071561501756 0487374357193259241378089295976833517026689639698801399997386480807863 9264937896643093453369922850658712005143165857081104741131416825863372 1845681368184587115198950719387417617078043373189524978297248573089957 285076506205526784/204812089526650820395868426020255816225744257880310 1652712284557808836867643743683947843870833443884911440762293717336683 0068440289374011210189078456686499450639952781870693611011028743984527 8529037604955098221253963879924716555878937939436098812694981500394704 4482711963830867905040114826570860015869140625);\n aKC := evalf(1 0506810707089318514673030779410529206637210175217606890065452488102554 7951507832059016714148887343541167451486305531430519166696731294410976 2154994988871414499950379675173715162720861660655245987362996508175318 7953302747715626587088846680192862890713117757804529799313435312986516 1407019784119704768840050130580988868094410816695854565082621057032454 71340823974240231869239886971711244392210264038648687/3324779352233413 0960180814989231339995464036777344280265533758844126335111671857111206 2645698784543703271642786217460011581544571438675879906450906259445051 3680138052015776922357900586747807870633805635569966942105502732576156 9985558382470399158261714762954483897217645142090817223422469673817691 8184613110158287714262236926944645292379346274432252929392269716644095 99721438772717758867338053710937500000-5018453579684846546151157737425 9859532993793222101074102330313653910808128240479422137879123727879379 3509309900203538323199562975064711759900558950142590210310848244841078 9651708681523410279141933419319788212215737930206783313118123439551694 8088788517220751882874244468736644840984600972736579154838774554907646 3744599637179162901240290327908787439335301518092189236527738107079400 782778818816/101442543165016417880032997678814157118120630899601160230 4615067707897333689454068991800597097740789331111038249328634665389914 7869982482987229623379388102253791420448560722875233869067117644151438 0034647443690071868885814680610177142280611439079364499658137250639870 7708378056970966360630780097385765409947088597144964872393423784263552 5439341945169470397245359087597169012592743786076991015625*SQRT6);\n \+ aKD := evalf(17060444770442586703255494732403691672227107077319860 4161378537875815782227913304038839500082192165254490215684390249628249 8179737233382314748632086747196271514794014679356351884329211767081020 0897146721153210799059524727055678894955662925822912266248877778387826 11619542625922276161295013332977321648601432064/1676340338249839226316 0567185062048706652483892082794060323481941798814195475686637062330756 6984850152573798851304100659237051296011437762753799354599895172232035 0600281393566089410645212640818429730286953905991798517071309697354525 2234691410025547963795534856869169451522030467683646703814982753104207 155324375-124578168103185562204077106812745641650182042132163533668672 2973054233609431801642040173033697793120269627938939155208549953324008 5793462415403179527486157967651827268730352397734794776266922381736630 0973602951776175385029981440400992626102028203721693461957598177433129 93307030286251525602938399490048000/6877293695383955800271001922076737 9309343523659826847426968131043277186442977175946922382591583528267722 5841441247592448152005316970001077964305044512390450182707938576981975 8315530852154423870480944766990383556096480292552604531385532181091292 53249796739891563863362113724326879329095541127497563249524321*SQRT6); \n aKE := evalf(8531524064222325552820312829939986418279640546856 7335107353637931104470098591600920056183594272964857457278705668605530 5670543161642420218769181601092745028306953059629894919773079057803074 4597425063625904519128260889057133733063344112415427448141781407445370 82085947057796714636599352575644020568234206464/3886056574231853148776 5160906711292476853633078098994332793273860801921842770235110369978517 0282290261016100799761445663503079159859637758730539894618483796134096 7285934727574491888863369427176915402665789467942328685497597062178053 4748667461287884271774296251897704820646476719889476465943289825929808 25625-1095373026466712216895979217525469341313840533077222936182258245 3251784415852075316717242495915012064588069761282701970969739673175104 6601383514296087852040513744137743744024820784923804556500070172313272 7150481542214116786613556859815681232313102799581090542849336050348586 88992352673380184393908224000/2072563506256988346014141915024602265432 1937641652796977489746059094358316144125392197321875748388813920858709 3206104353868308885258473471322954610463191357938184921916518803972900 7393797027827688214755087716235908632265385099828295186595597935353827 827962466767877590434478758394105411516975457382923107*SQRT6);\n \+ aKF := evalf(560018165117032485807638857754452618594558805046012328005 3536338074561364737780764790020963646304906391980941574589540116565963 5912008043135804405094749033491306584238194308163104829560293375548361 3412562272250534072746598730600316164072668409310828998726905765604879 19307621718504684397806867872133104411/1038087172845932305578071414317 6111527593372096033426622851672825805319162689387349227842766001784238 4497824121046633873663953047323290062477234489669591660338577663055134 0023576777028771624408524187917862358273091909269850672881229696343484 536151424181244069758256832418301390481297720123825757263183593750-265 3577349909117272127462186231979302290177624381335349098723128021111755 5199702900818266751418833572251274949932065258247030445108946374321195 7061339649262077539855093133370034999964838931215644185243794895671679 4299144436856264194616208427823181662525797300091115969468850684213358 108558623698944/170352766825999147582042488503402855837429695934907513 8108992463721898529261848180386107530831062028873810447114611427670382 8192381257856406520531638086836568381975475714297822798392267021528755 2687248059463921738159469924212985637693758930795676131147691334524431 890448131510232828343815191919140625*SQRT6);\n aKH := evalf(-2916 3093825537096491269353202009681684725240629411232196600191307627236182 7165136571622432400883269076649373154968775119258240639323209392014802 6472532916966310270515627641772934043467983283642385310008775372831930 7592701146872157684211224177959582075662942626192184346118212750650465 1278644030381722/46874146275846228153786211828432317865477465670088993 4443931341650438565155629925839002167981990317941735469385007899061836 0717479653658310615579835606366537422208821115986314547996868464307358 1946259492818935932558834351286326251271006454639521375699766276397770 90751102034867431661220109954833984375+1058758407478500923884833446549 7137399730029446782400276288215742402272214937903047066187818021935077 8047226753480281555868253232808750543588760988175460510503481311492581 9351452452457088183555999741694995914289514536291231779256235078180301 348383858787133122164191144323544689313256643886283776/599989072330831 7203684635114039336686781115605771391160882321173125613633992063050739 2277501694760696542140081281011079915017183739566826375879421895761491 6790042729102846248262143599163431341848912121508082379936753079696464 9760162688826193858736089570083378914676161410604630312526361740742187 5*SQRT6);\n aKI := evalf(-184621060990196855075156181661547245849 2444444267115651005516006235967530632770917618519362382897665387164158 8709599047829847272304867287364223987428200532802226192293323425316512 2760364639171250833979354940683780372320511267205241311147012576646675 0954467866701317448978721983543198057126952793629364437126524639431198 4280739383198933/14089937733026253360245421909932921501118170946238036 0218589279204198959629423593488515904510643045386219743019773005280970 6076649860306014953428045607282274161517150710279376074624631726551596 6554392216012320294781656574455294967106447830015472787070682053389426 4965087777957890090902366552281689562676393713186917878723824218750000 000+327653829470375072359419413625891662999198519274679571766077034751 2297621748888032221691503830934455620183030692615203283091562780398954 8045035804561671018928993569239056600301406811142533040239386356338165 6431397521855266176909743553794872846036239384384289269567498094476019 2174823837262855207971789322403546719478940631344/18786583644035004480 3272292132438953348242279283173813624785705605598612839231457984687872 6808573938482929906930306737079608102199813741353271237394143043032215 3562009470391680994995089687354622072522954683093726375542099273726622 8085971066872970494275760711859019953450370610520121203155403042252750 235191617582557171631765625*SQRT6);\n aKJ := evalf(67008584722151 6856512672645887761764829466525233611414637178836167899692855180102552 5305466258624193165366299501310020738762027115460241748875041122974018 8395625935876249089572706574409770918245941057289519452361146099267078 082557314952641494391829076002065266453443723953327354085439650000/104 6565622261363471747393953709342614474843680883623768763437261241788714 8409879703921321356449438959933385863781497970744006797046263474478712 5522944957654959124958218139063349982144890039706397239055948735025073 3024414517777784114471792507262948173417733694301650530982423157115702 374385113*SQRT6-136568976418497265725923281586994776481923934136060623 1866266558341083958803809181811518063426163891777246049921977228782512 8204836649124315208539045763492379764025177498081983618057963568050608 6273954651291790076787084630426603247193231175177807204691286691705882 88708161040856098487181993835187/5023514986854544664387490977804844549 4792496682413940900644988539605858312367422578822342510957307007680252 1461511902595712326258220646774978202510135796743803799799447067504079 9142954721905907067474685539281203518517189685333363749464604034862151 2324051217326479225487156311541553713970485424000);\n aL1 := eval f(25711452144848685434607859731637718106441723838038536210021326350921 3940495753541356893220184983172087654063000460915690172737865896429137 4252982720477399248822509977943873704120634174822852732142976844424692 7325561085574382784404751692281943540773897648907655002253676518421227 8927372534780020434537317299368202350937943/16551933034682069166315471 0299291374238822816329315938558527962435108629569913827071254410753895 6083859897037353215181651803796298355058839724691534749692076663710122 2966150715226889702486812638658232135741272065091233422343283690607924 2180521444399190803339657432598960665625077059358130550646322305829437 44000000000000000+1794301137423767612573631451668431951237934899906305 6544420842780347857457289614881050460022669649220378678877840540469694 9046068463995587805927877265848815561354102492833404791525004572405629 1668205898704440412721678869420952574529696832861911650227048676252476 31832962716489209562211123669821857049411173/7115686697535963320587452 8584748137664394460994052715673904036828103186484387679950174285932128 2402741393496616118913355488921840375741318491394063997476390981039124 3342499583427516698671537051086461890804712598584692849047072947669692 9665564854526281137550568900231738607475839034888122321804236800000000 0000*SQRT6);\n aL8 := evalf(1447573279370938110820815176333644575 7470029398694010540128092022755421415157995648181979454314866777272113 0368667605003845569515373978024774064071581259319514584747043023033394 8128155913065713355857904684221934064858241979335370186532285646077786 02914530457788069287489649622692229397227107/3660108194192557018804837 8032113830697767315391369763901845881988914481372743826284545448330303 4962869909920149951354039284479788756534857370370493862049831901076093 7587536997500292152730131535067052018210172065563131402192418001540549 832062282768474548539248265242881282183069512990720000000*SQRT6-299427 0442762627231467330396657531521628503270310679882989148633716643826828 4347503837816367634359548731038084732812580510370371606596140019921082 0230237597054998585932361539963674362154892137661201090245015972313779 1214690834423765518795921704342347506755730671335932302727424942096924 2177127539/18843145700220462374549904832731618041765868876135147085291 2713939287618529846726524883027563987853546576741898109024817179108292 6811022378534842015076170698722935859907135185162743510927194669242354 5264729797284514588546282974265365615775414936810587424733480503522413 14223815627013462425600000000);\n aL9 := evalf(776196474941913376 9147394990621040868131996995983046669356628889816158825422501203482182 8181382510414044743407539080139544940450265672893895288015575745586617 2131765331535432578686549067741611466392662744362921815380093535162938 5091148564394984601228873262214256365203378406363248955571208179761230 551/550301937486912045101092580359562329721649440745113989093001684664 5966805847280373412918381174375865306927197009370500456245588580038978 6688979902196930342645917805693060735840443856555198923017966822019266 7254373189105116408679622599374508398962183162942453255170885382379624 62425479170437939200000000-8889857892595718364809163117341716059537373 8759749320299851361581742197260887371802599984924231837205509669576998 9831138234635971126658426791493916919284088182122064080614195973406466 4036837138886761974887579225172806613503412749348277767205370105151040 161579912690899209220415008157817671/163020792063389696719417680914761 2093714066945315510938971837902915938466001373179881758713721971787057 7545566984100833516259580801720820771202071912773275399875295574366084 9182334478374544592720403115717732243826346756950850513840260510168048 5289436964054379191147858014165473512284160000000*SQRT6);\n aLA : = evalf(-2234945872051433611127408739764937825216482364387345708492381 4588879356661712697696941560707204402182367091181229187298284073612126 0806431608363036445497232741130051731364598986110215624301866861620509 9219940231733519411633723525577593819465264459757994292167089602918008 1292045682053288375000000000/35753451532820308452048611286870339107865 5808142931656180810491216267548802946474695857107931162575859257056099 8070732572212306466496888562941779081977299215587888426372584527643875 2327760279189541736376684150890763106648615714233682488479488482184854 931472246034591491740099648000454376413862351945479*SQRT6+459915916660 8908507269963111893400551051018653394595593566233103088648435973696989 8626461348885451600432551068326390210825678645548334479677371049219569 2208606039739681461834422662511197801488707549842214815282087076500735 7423900826101101354266099015766006121882383292216099811783520708508798 4209619140625/36789561900688659735603840698093988521184554404511509631 3719220072065867699980827017732911845140128574847388166920103062923600 3789063922533572684983373634465959614682700981770300148086073440810784 8318281889852973818186470253529621337204455976831165136037831186571400 8258662506736618192680669040733446162604);\n aLB := evalf(5827787 2355754452702340119960049167965425170479150824534459515208793848115449 6558038433202879634327523396527294219712181296443344683055644252107433 8627926658493281093375020687056479500175869589573687550425917902356375 4795293546837217550833827570143160952315516869179191221620199688782609 9721/45200873936362057186687087814802073824944456277680804130667848660 5548796974067860668310531869139027829571307758078195826063624502296473 7868838138860500333209499851562473980161224460119494315761799096313248 6107222398440816354088890123330756797974746571207089345558200695751165 8446865507812500000*SQRT6+28396034400295483885846603472605555036456811 8476156127962427739302208044133333966524550618761811442034956348899751 2311241489391805687954775585015819878203677752397319061134955224126727 3943046039912231213330550578711878062393821640396602257583080193453011 7329511392196013546601332909863050002026587239/12301869850520297483928 7578196765324121968832205336076522025616914566160584462308959487394353 5048778140961271194385617760214760445450083058382987872273770686297479 6012429184406788490661215729777312420526137418941647959652578928832335 96569877013680702681972143628711990135563729628989166062500000000000); \n aLC := evalf(9256288885614387827205667130141552645643073053245 3703575467367171572686684133959966521766458827389791645151441015569847 9966304043051474402473851229052634922272833555709636264745123940914087 8014720907751116032700433241437735096756265627820605417995359993126524 8121816479825332366525731878223666220324797965875825364117081072588802 7324532604408324448072719582391440865186729077363553665187361794871/22 0269764872560155656079645275695882115020190273424691505553107554421830 3777106789590986615596182260770530287155551389916781992043335717233446 7827659321447060388514803339496498745455098663478824943885695536350466 9333198932970632733457273389853424448158948516738736003064710845410491 2078942990629903259447605978013330729221528037500774632215789707484561 6686140191169919598866579734528000000000000000-43566912704570424972966 6083647967393623316395104573288891473634068474512898220356640631956875 2743533774320960459467278581843706405216026004601240564139324960258595 4456537162994184347630893018846071499398537194159105124099176098874774 5053894411356991190702835943951179505359786575620416695023275890998910 5805675537083166339400799875801557987968056797834377327834102999223866 33179034744129/9882780670962494923604019073954800238549535852004378430 7581464165554536994219754034625888958145635518512262881264904270182342 5859225146495856230699719040335219476197409137439022405730229651123186 9693925731028332056890638554839720803670754415179368004847448665627707 5232518281896172888171181273482743698388163574179107723024850971396562 02973611983058489890156369613984041708640000000000000*SQRT6);\n a LD := evalf(1065023161614411396345428434921547655073430818302319903414 0929497336417998280655943128329836575695939582300342610379994096488546 0052404589413440921077575318822465362848500088107725806664591391439632 7517846889673372171902041842943234368399780853437759324970412910472207 24263773541005636500585281801/3706998294037268192386635071622967719626 2333725738946443952928584796104631319795496767871758760694223356629988 4285109846410040174574172108175309004926175489423405162646695606171752 5523126893692880290401477276069569066546134045001553810342357590939044 623710836739837660441196249000877084911662391500-332049001651316336314 5969505844233330259189039269114121137100187032838424983947984942757681 5208590949482266667325676035625198201210044312087045792127756995827193 2090165224081672460168331856013498781827230090086301665070816128763035 761490920056548530795228137594016884774117791608678284932608/149560166 7892063339137672505294508076989523671658958542885214580198341992710392 7820853655998854471969400722177208307506108692010593648515620725772812 3204829106513823386869848370754680994387706482703558520022434824863493 3484243121743649779051719091037127293971088452215138060295731815171835 5775*SQRT6);\n aLE := evalf(3839008026269537195706470921673516523 1001767316189283452534335314468346955252806509340390546392349013878901 4190223848860185908489052614425621742350368831447759791386421770471132 4278560995514015575956772294201147452301798328287702091353170474774154 50804169725989066466681745600582858984709519337/3591725860710669399162 4562149965504940855550811627528782084125391554552001453333448748074462 2680554846372715953391375832690522211767650329775994785645114526057037 9037520897594897451222218583816570714184763725251293328706562264573844 4041768679649084165528186989695903647032472058772709860918272000-20342 3546411650983754092150770747157531760458505559416432755672526906928638 1397945329670092891617939361592072160001957174493574513740881828059799 3981243950776063300973742275640842095870768103452015338092965339213460 0391255051678059853388861412172090466299240788041089177023413678906321 581/364813768378108144583974170335709866199989534034226248879432073597 9303658613015951702173363550660264375487348555362823426060991692398204 3144174342288068604220882272297468210090043607761501317808528588322278 8317310411017312835979223496051653192767311468142392721354949942811838 1078695543200*SQRT6);\n aLF := evalf(-194922387757999088899350835 9749362929609500293259075545470707603793198854802859239154684416602373 3194659288040914333775456423423111832438829320076889300546288520098072 2748008767149279528417809892806448033028174134912132227404634299693983 26680697312912833020523713609420200289594044675649483617479031/4814197 7340082743549081622811379309872183945603758758903172970534022063301559 3811160494044654632901400916052003001210596358083479743959248402583703 1236057660172434490735024464314950545622174933327991548249874716941067 9537509776841196601901354667221122386152429448487243987692427124725760 00000000000000-4372473861777308879797843409761900944919483505919644307 8859822999247177996198509281382061733972588535933234389142753273392507 3064470722722709015988638200740633821403802808948644641599202469490002 2459048325365709081065039385447200709394007345884653819289639177003309 414257470876588947206553/274428098801474209772349311366416293360503367 3564525172423888978614302378246451456156320027335842995501456860369383 1230365463672077019537315363403530434944743671850435504318526880710341 8215288114182456080189608514301822583249519577859828644845268704592885 777555282890139256520946000000000000*SQRT6);\n aLH := evalf(47849 4701539040219114559776797149173296754112712345510745142708154882211613 2218926926890074425178802920029389928026757326018097363625088303189401 2980062316409904647685627792918207629809103583782273173831553093672698 3036320553404701734459502360476225409590513731944630001707157178612050 61494117/8587928694096255832126000351346984946588937534612838603943814 2282771132826332869688078086520940913255426018273221886716163415281788 0314953569774348819093308738579609508136354853212461452908735522569896 5343182082126246426989254643834266785262575328399327308399859747610556 196634624000000000000000+151192151745239876252371990136272260948543884 9486330964239651140279180388913663523531867129613388809973708067721230 7668268465471453212751575929411862974468047607209950632646160741221536 3777428823598442935726170420542707468558421049059175235487559456585735 6348489634644906655243429712840667/83866491153283748360605472181122899 8690325931114535019916388108230186844007156930547637563681063606010019 7096994324874625333523612112450718454827625186458093150191499102894090 3634029438760618703375966458429512520764125263566939881194011574829837 191399680746092380347759337857760000000000000*SQRT6);\n aLI := ev alf(382147340238992387520778217670681519823718601009147042358215793965 8890525856471971902177955492212902466244347430734747118666238757259374 3888313672036505348512845019874744494883490685733667390863584600794096 4883403510842935831240334730149545773086698233729875307766720352304447 352280995959571383716398303546796596299038877091292271712637930232919/ 8413770171468077535364116227384419885418721053938487458818046195361664 4974129865776064000610601782174207953731789808422493317738760499428836 8790872332005141452615995125118186018280703881839729790859690934671095 1966496659017364414600349174814745087011859187027615513368547807005319 362272524087204445796951159352514058170018155200512000000000000000+183 2445187395156688986517693170312762770931033697792416988015660820959377 9219167010284424062984891070926381230117652982647576942478983283394719 3165124938131263967053912629752923352055583118151483325592450253566549 3073684183599217024563416058846262256419701850863597383650542775327242 826149668089765688707356110761846565860149650750279615673/821657243307 4294468129019753305097544354219779236804159001998237657875485754869704 6937500596290802904499954816200984787591130604258300223473514733626172 3770949820307739373228533477249884609111123886416928389741402978189357 1644936133153491030024499035018737331655774773972467778632189719261803 9105915985851165551895099316583546880000000000000*SQRT6);\n aLJ : = evalf(16440832367227341708798532690981884445673065125135318370990586 8588890431893343512512920521320143106478222875282094041917488402298049 5355802120777312946737470293144612592207079027995971667234466330945620 7155404846575380603055923100193145956040162196525512671089011086023225 838766125799/239679856908252765217406736121894062952579254371954856072 5557559930111547476564347297094540164247976816412561839407125470830458 2498785671688853484115960631349800159640337075363044819107795174487181 1224985681197920995151530955253747508068844667003966171938942483419320 744088541073506304*SQRT6-148028942198789717926933157804430264364951341 4835716032320589107908874158995244061163406866494487113252867029683644 0553412802845111393303681535535933183326791630151480918553445455718755 1581582354189040477452071305755076391077607020567676175924732639581508 129428989744597790144806131627723/490864346948101663165248995577639040 9268823129537635452365941882736868449232003783264449618256379856520012 9266471057929642607784957513055618771935469487373004390726943410330343 5157895327645173497469388770675093342198070335396359674896524993878024 1227201309542060427688838933321185409105920);\n aLK := evalf(-467 8527139361743330805198938527208176797870233225135922547603190201283606 3506041403666962257019512454646952525108946676581999679387365026025695 8741812324264109447443406447297041821515115208817240788634449732668546 3240899027918043236388255220089355500263294471722501030167102184185374 59369/4341680549290783344438945374255841888912227105828172519439018606 1131358521722352310779622092464775142953671700095936461355188474225903 5364275642322993671074434766656588801811650366894336535447796755058653 5864249815353515983194485471875384897905965212710088874693429585766371 107645947904000-174227445323495365644419859821998205953915779031574991 5631380711817201974006848079967122534814630679890591614630445321797101 1945854000287204350678699570623547699791841759703608586978643457338594 4344404194924898064002555835720811793024996046429702656683336996973041 1041685588555159/29240844216667452481404535117563590307867908848519480 8690666662588438567630134377093073963446018151555453069100861641038221 9051335257511882244358317575909714673805607413805304757320139658778608 5449559445958137458346939089326471480818126245271457201055428939080640 0160679308398952448*SQRT6);\n aM1 := evalf(6725673802230822651323 4738081007026882097212803631688575117434358317000998232193028042384616 0925260642411/37308282434364191258140352761576451495725380576434086056 140524583892308007884242471075848266443023974400000);\n aM8 := ev alf(-22553598487711760273401856889983081401977354192153706316067385102 98855378897125/6322938924136902453910485088419682107862042747535148791 137444962250826995715801088);\n aM9 := evalf(-1502706955974881248 92440515191492126097781888158838335016480974104265948574834647675/6367 4951750963501702425903867324901861212307316357900481504197900530106341 74265032704);\n aMA := evalf(204693608956500139128131057786128511 5575792177893835004030610956608209186299835205078125000000/24111278296 9703416106540926494246574487431451260714001209386037189705775851562480 899911609473391);\n aMB := evalf(-4416562324658900236647478447460 03218158385096720438569512292184954756550655098657/1822001291013703373 66005188012855962466596007240017916114507235048378836249907200000);\n \+ aMC := evalf(-244821733157410479301167568020718125633909596111053 7914164459476993806099915118110794726663041517832337344963013238639424 9876247559390639192239494098944002883800666785495379326493/71364216525 6083117788076090644678999481087071684448407792547489746348188956674434 5155058163202462972757265927272882156872828779606813419681685418419807 01790225283611393576140800000);\n aMD := evalf(-12671356151586851 324805938427289130740588314571393874209217862186435551883536562500/670 2085977554280325068268539139373035193944755898922987664282182119136118 66851243007);\n aME := evalf(-19053705984758385635919096498869956 6718064077084051358076851720809750537016084296875/50910440296037809807 24581845742777286877744109966803181609499632016071764657521065984);\n \+ aMF := evalf(-216030383240087048889185535017990927204152335314416 660949022715478078589399524401/222818629229242204357707354917731887145 31075024815023580940580795542849244364800000);\n aMH := evalf(474 5621998266889341000299942193646867639301459975535073165275632864689052 19401/4304715563216235077360026430649407035848047170287034263524341215 4148821401600000);\n aMI := evalf(4481303055313480430731067907870 6310865652516886883903737655831497987195453976513831494750556620233965 363871988553749001354912440161174796784712541/910230707806505705586027 7243261335218496726640961113554115573637352669581557982756264539281030 672778686440752552343004829819746897059467650662400000);\n aMJ := evalf(846576866316095537738451728499686531956386189617851012875616445 803607630859375/177935857133170838349652786504271688283833164264957382 04950702206332616801517568);\n aMK := evalf(192917535741805855763 01967480572947742916873551648262555079215781656345703125/5667384423379 34787379602359435774908270415136782864704954551190557274358677504);\n \+ aML := evalf(5008625330425422069075699699200835325104755984954432 191699846241005638671875/181260158259689799377328794325354594481857066 886774698800745165271666219690176);\n aN1 := evalf(11044272451245 7475011689518308920056730278055846309407306640307947520493029846911480 828229981071807737/659707926276372980709143326223863436299156356643478 2449484724961786512797176033101559836852669644800000);\n aN8 := e valf(-3225597817492455405547718704460101729976248444353378332895594376 48764077125/1016418937136204741176454007269110421145518702985974278410 72610632890094452736);\n aN9 := evalf(-15022491706321206022337551 63283297105805145308077461866629990783957472207033575/7873703079366925 562681265811387714399979758640535709045770046630229367771365376);\n \+ aNA := evalf(126260982509616902626345124317614534462423369401255182 5536867071136085995378295898437500000000/10914570422496862457497737413 319803783381670633201045322235581930398203845132457983123570799207);\n aNB := evalf(778861998724960641175870439680056238323010571863410 08185208456780514632903621/2928885820173777285333159529527648573601401 865355226274988863732130575428400000);\n aNC := evalf(-3543258921 5507465315880864045937967261399517520050772164757320374167639283891935 0088827087706686928792604752864456954192009559010894844864216338290365 7317635963563584517337421/11471871226467385509710585304859166015320972 7315529900944018050692249901774156769951695250823084860030177242915266 23837565632683267125481741392455021551919210154379041177600000);\n \+ aND := evalf(-372074705908231612088603439904041890828195234125304548 34765889438139925740000000/2121584671590465440034273041829494471413087 92526081765991271990570406334873963673);\n aNE := evalf(-28801162 7696787270131694454364094842136371692637735759213282972929624776947656 25/8183905654584267265825266598737746410232999147966183098009097916692 5021937010048);\n aNF := evalf(-253750400590603029813425284205766 8970942507567352978955462460416688276889469/27552556835287349185574370 216758157143443181961280052504922172754855731200000);\n aNH := ev alf(568156922174197380183056102105775966155343133887334620836957603873 3020633857/56050983896044727569792010815747487445938114196445758639639 859575714611200000);\n aNI := evalf(-1021000702312224905689967726 9901011050200232079096536684949506464555680001138165261002824327628102 37570902132714324198032604717509409357918455163/1185196234123054304148 4735993829863565750946147084783273587986506969621850986956713886118855 508688513914636396552529954205494462105546181836800000);\n aNJ := evalf(324424008822063321596721713904694021904791499888280927798129616 74335658203125/6950619419264485873033311972823112823587232979099897736 3088680493486784380928);\n aNK := evalf(1088970878553275163098687 9344519278906642790214230186235782833297756423828125/24352042444208135 395217288882005953089744400408638717791015871469257882599424);\n \+ aNL := evalf(191142703970987920825375799727983372386625054966925031890 1937848300148437500/10384696566961394755992795508223440308856394457054 800452126025093689210503083);\n aO1 := evalf(10203156967062494130 8191879151681504510667796509185032406856359475388996019087846143176477 013121569543/955516255409471001102458407118313402060836521770746788516 5144000733629523001766465181352825157187500000);\n aO8 := evalf(2 2455166560798450102851630177816190335300625809490384410541913411111420 93/5888695757963603785178144544753881271800066109313768140168343635509 560812000);\n aO9 := evalf(11343079727161954117598893397002041492 8672443767560197149229862703216848562247/11860384000644740034346637105 07096757389834286949744457034472337002495421874200);\n aOA := eva lf(3670161835945529534014508525033042393592891238928768222396501046428 36351657789440000000000000000/2652240612666737577171950191436712319361 745963867854013303246409086763534367187289899027704207301);\n aOB := evalf(311827150827255922057933345835609284508248766380477564772627 9426582442363327668224/17375958356987985359764593888555141684207535480 500976191950534348333247780791015625);\n aOC := evalf(38683257384 8977092054262891370872246047736814238302856675240105425504237984235868 6083271015578797673914731672234479363956081628729904093605185625186233 15092215538010090162981/1661577646751150297438902991462217176987526639 5612815576431981514821485359144267498410907953983319394190949218517360 642721943509780833077807178298057538964558050120514667968750);\n \+ aOD := evalf(-40898392440781722328352148369666990327713643477774474671 10402053805894862792294400/6702085977554280325068268539139373035193944 75589892298766428218211913611866851243007);\n aOE := evalf(-45955 2573667314871220447673319039061526192846896539564588904802763541051863 0400/15536633391124819887465154558541190450676709319967050725126646826 2209221333542513);\n aOF := evalf(-459671564933021673417707834443 14802417855786218791001521918580597619367743064/4150320388921391300069 305206047964974219179716858085911896187960271322958984375);\n aOH := evalf(906558569895601286607641808694052130213817873906972859136519 94362268351747/9020427257974193360712434601933849817754799624109479685 248590758706894531250);\n aOI := evalf(-5258585680165066858486586 5304917779691237295787382826773606986778868589006898002075778700169220 4377111790112335378217935909517824063009863648219/57220992424468635699 7647056281697123542920731254737046456710640826546770292486842766270415 3634332237405094791178434647861987658921177630000000000);\n aOJ : = evalf(17502775622870021733819566153995887408044542332875240614995004 7868972875/35794587005642150606517681744808968779917772376193473602359 66440819059712);\n aOK := evalf(107059523602143095695613263396651 34800074748155274645534724248618944875/1393435045864570735657727559013 70733774629976703483874078841427627131744);\n aOL := evalf(-35031 7157914581912452504531162465548756110991909970161562903875248859381760 00/2803868073079576584118054787220328883391226503404796122074026775296 08683583241);\n aP1 := evalf(226754171021148681688130390405675916 1703834487542614922422809751399628129553915447742796974373121407879/16 1061505438567622243443194878872909252723719883661680895623168012366035 087305495643550704410880000000000);\n aP8 := evalf(14667815824384 764604720731977556493579653694501640465538480423897282357953/763535860 2285191865808698972874928043460927756805696202003651640090902528000); \n aP9 := evalf(4977635525247032866212634385755744119729567049171 201219997360100580197645187/236589635798285022917105342890255841345545 63222763548815414803576410359889920);\n aPA := evalf(140484304488 0607882637732112806657258074128319106170572463258665936110798551557500 000000000000/109145704224968624574977374133198037833816706332010453222 35581930398203845132457983123570799207);\n aPB := evalf(122265795 6790103213431252472696539777172663249999529533116463694558147400072664 /550046165146818150040031462125835444261080578679992915224771584309377 8974609375);\n aPC := evalf(4730907654590941123878534886499854759 5889181878018596957350689318059450914233945405078126004626998626915516 007688042888491860577798576868969784183008361647856043251491372696693/ 2800749811149264040456685865444132327959221858289304222266065690728757 3675331242663988098345479702155804990946109921478431720418132630570657 6964233924607402591659644560000000000);\n aPD := evalf(1153740045 748269159478796480967395212179751854806602513177292442252497320755200/ 1631988208915742646180210032176534208779298404046782815317476850541587 1913381821);\n aPE := evalf(7623956445453559631109402846102213430 9167759815278768007650265780350846830800/63936762926439588014259895302 6386438299453058434858054531960774741601733882891);\n aPF := eval f(13894574309133430688354891646743497141234547141255257157294322614999 72115829/5174383420088519603661052099000555352960333150781259860449626 7944065000000000);\n aPH := evalf(-421142478049871693473884211579 82253968628636767026653878664393051311769046581/1368432224024529481684 375264056335142723098491124164029288082509172720000000000);\n aPI := evalf(239714805499988003758280844908209154470678284682564307391939 1446167548003463445393877597738118390702600421694255228628200952383747 860161187031279/289354549346448804723748437349361903460716458669062091 6403317018303130334713612478976103236208175906717440526502082508350950 79641248686080000000000);\n aPJ := evalf(-83380447351344787545521 767124148918942563153960911840766655937288341980125/543017142130037958 830727497876805689342752576492179510649130316355365502976);\n aPK := evalf(-37188604359440314722233083387157545823708645525560940622604 6222491463375/17295484690488732525012279035515591683057102562953634794 755590532143382528);\n aPL := evalf(13642777828763738182781161173 561838093435874808627613343934647836906752000/944063324269217705090254 137111221846259672223368618222920547735789928227553);\n aQ1 := ev alf(466546532723241178503333942513305323245827985724807536181361864458 447933925932870653921126053707/327953766482175132604488104668263814516 49918202437105973651376149306965417003080293870930937500000);\n a Q8 := evalf(4723491269910257197408253207852997193458084742530955434102 2327772536183/24233315876393431214724874669769058731687514853143078766 124870928022884000);\n aQ9 := evalf(10367164276990912692184594376 34102746967174686856076182315999827058358706693/4880816461170674911253 760125543608055102198711727343444586305913590516139400);\n aQA := evalf(126107176528519559643266532933651605948968657536009282253251770 1973500323840000000000000000/98240957898261588276307267446622896340069 04260306971487160739811339517412360448229634177137);\n aQB := eva lf(1593585599185410121376197356584779060871239468221379968652311452262 0899139559424/71506001469086359505204090076358607753940475228399078979 220305960219126669921875);\n aQC := evalf(10657723851600378741841 9600981060033971317382474418007429340663573433616773277359424055465412 3695611605944223229904518029927614330580356951033977912552385182206284 514559/621107102700166492076592399507853909647260785717514909291648827 3463307559114285281145171516601762566202268932421307610541597095747262 930706219153299391393782210410156250);\n aQD := evalf(19893647189 6683904802218217623982545469417973212849595160688218787298733037977600 /275806007306760507204455495437834281283701430283906295788653587741528 2353361527749);\n aQE := evalf(7802974809496486749416392541153380 9400547896738615365523971243063975724441600/63936762926439588014259895 3026386438299453058434858054531960774741601733882891);\n aQF := e valf(47089048172413134997528432836773327900280211171315979008137365046 2846095736/17079507773339058848021832123654176848638599657852205398749 744692474580078125);\n aQH := evalf(-8017167945338692474386475317 007433013318192540440906434781184327080792127/334089898443488642989349 429701253696953881467559610358712910768840996093750);\n aQI := ev alf(379440546633543696948683315777242581367120938370727641143789276793 2878706597258190100164705439305095301720467892671832287937845207567497 514493/706432005240353527157588958372465584620889791672514872168778568 9216626793734405466250252041523866959759376285405474873903688467803923 0000000000);\n aQJ := evalf(-233588086623589610967302059384622582 0564112415275796854849718353742375/13257254446534129854265808053632951 3999695453245161013342072831141446656);\n aQK := evalf(-152960233 160113384609842819678797535294565646547801727288480414604125/422253044 2013850714114325936405173750746362930408602244813376594761568);\n \+ aQL := evalf(10373426455351662576622889624826508120400531851220415524 405102038745088000/944063324269217705090254137111221846259672223368618 222920547735789928227553);\n aR1 := evalf(64250875282710999263292 9585199870482143280706874928077245198394371913249038165677118360380512 78775223279472574793320679/3419591173062699310255866115599253791530194 6385082933308977514635102079195031329287723999854767036942379866035200 00000000);\n aR8 := evalf(222348235080065777289456859144064691738 8668944690361370691106216132811392499592441721202793/12472604243778136 6075433873943998883328379229876365972326898281264432363526172519186946 4576000);\n aR9 := evalf(1241307821368539744905540773139905143998 5697734732346757085870701455988697074352942605382553463367/61546429065 7408094587098411600275532965555190451700059880001606150278993422881289 38831260065792000);\n aRA := evalf(273497285700751964846476316265 3058717810972032092016948043929880669723752733216405366579286625000000 0000000000/20572271987618184593178936958872085377956018323554433050227 6475856876964169921820909017383269517865682906837457);\n aRB := e valf(29384223718432424813936072759758106384165271793214191366327380829 559952125029694605974522191858559/132082165119229462793488932841512959 794481500793005301870120878550487236504362054850146000566406250);\n \+ aRC := evalf(147930072861410678874559763587715639493268296275126547 7848899939674020272272430795006240725669690120898844713247377212533356 8710755531174588849827082196300693860215971616328390339253755605669/95 1167368070302556967244447666164744339010758665620815041118168791095440 2299641768304299822582318038425720818514026053472491635692846468054683 0137357279759429781449684222880875237920000000000);\n aRD := eval f(10950630983299038232297656995581558091938197315611766049380531473647 78610638106378476889915392000/1732838453094668456641896441272868125519 6156605742588455678952837710486932298180475780086042156833);\n aR E := evalf(22643686664198250931888753811048017750114343290720364765591 553524006236766954692145692037375/217136719151367883667281882064278858 619682539197025973487121443934414211393865389232784019462);\n aRF := evalf(865194495976831180299612546078734600556176564030906784364409 666041223394460306006987488382548603/376897956217255918165595209029446 51386750181809191520769371089115416275557505901418168070000000000);\n \+ aRH := evalf(-815851446446078225835079578775135286223813340179334 426018934783202022915053187926766080958082611/328600583770705457378572 4336239416712924921315711790909908897153498076298264835684832528000000 0000);\n aRI := evalf(2283261768824642109503807855489304349836877 5632741065851780405581732011329314047391687503657558982561919003969962 4473549925170585049834800992406072675877904145000964496039330011822341 9/32777075344216878077721966728442567149478736482438099214464000420337 0668847550879413781663578240365122060887801283078740424501477275391874 63608846309822169873912593294551531520000000000);\n aRJ := evalf( -126961466422949927922079550931908696947438487034244039280864970063025 266043269361725023193588625/865617486939533081827894424639575717584475 101332940162751438476547165779526334018474129934516224);\n aRK := evalf(-14537494230026498493249257398574811122781042572001577452138355 467562423750388023689292255442875/569180051412472342869836345281024159 57487167003291680791272800068628581684629417909392434266112);\n a RL := evalf(-101612202727188278351596381542424836532107508186863979877 043290571591433212732952554674846224000/738509738649613913688624208590 810739737759432541424875041852805939342283743895483742216401172409);\n aRM := evalf(-11069967147037708058951931197098322757226586427213 9133271958560164457877727876019027397503452032/12595280657650768284021 4512692347692727211447597814324199099975141370284333864572439438899856 09375);\n aS1 := evalf(-55857142711467061786411703861346764471553 8638426732772427573818795154103361/91810938973590519734861607217003019 049024250494194606074681612156503013195776);\n aS8 := evalf(13169 10833601519088693218702357900833196116789140625/\n 442043 9963472550565232420607397542739995601455914418176);\n aS9 := eval f(142698794677197642653418320637229646162284884395963359375/\n \+ 4451589755480155662936573014022421188335006960404360593408);\n \+ aSA := evalf(14250556328848031496382863781561058392986449154815673 8281250000000000000/\n 7594853109003067338050023476367198 583770760143535377363246317959607241167);\n aSB := evalf(13465592 48108390398828213036554868662602157290783629/\n 407610317 51487067180878484586742664098219374493043608);\n aSC := evalf(419 9535858350819722634616299226732711002654446947997562693858624122353784 3119621182250648663810293093189394413098325108660699412264907818890048 63621/1596529656739107451224393062057215709364668088284569354309579066 2768118979317824285244747452570003942128847988697383841623783304466617 7390009746522112);\n aSD := evalf(2145085799580162030574792125556 9329406610394890000000000000/\n 1919183285269672643438871 312728531675659960737496307019545469);\n aSE := evalf(67828052597 198445423908718515586964773592276112060546875/\n 35592079 49700514920649101368549673912791588501866176994968);\n aSF := eva lf(21625978600958682217468848064156580694685242478697/\n \+ 4984802845986379257213925850261011466012609267945472);\n aSH := e valf(-214265192783445276830405408385463656194344690061465/\n \+ 44694338815224270061176709946379818561173725526032384);\n aSI := evalf(200416671522329247230264763042929152445692539014815196410266 2690681300628243916915601168387937773922757512940859652389544027408955 020413100471639723616603/451660176696275450155433571971167355768373780 2547896687257470883395176871708411541729723678187401842120066927384845 93870567225762491431984825846552273616896);\n aSJ := evalf(-71691 2933396659551324066315399423700530347849090576171875/\n 2 7729700973178370024811788881106275420485659818842646380544);\n aS K := evalf(-189617065355963384637110846764300902215783937713623046875/ \n 558862635291651381182419477632177315530989304733814279 3728);\n aSL := evalf(-157349418783621049529989882790700369975091 7399108886718750/\n 4861400983361925835202735266243902681 1788089947060710129507);\n aSM := evalf(1264675919386056109072877 709034273986243620181732850/\n 17495269254381150072614134 320113792634146195935038149);\n aSN := evalf(41956998473885686826 0381599620842860505940333791825/\n 3196126989683661069213 878876717295545568748121591532);\n end if;\n \n xstart := evalf( x0);\n xend:= evalf(xn);\n \n sgn := sign(xend-xstart);\n h := sgn*hstrt;\n\n eps := evalf(t);\n safety := 0.9;\n pgrow := -0. 11111111111111111111;\n pshrink := -0.125;\n errcontrol := 0.00000 01983592905; #(5/safety)^(1/pgrow)\n tiny := Float(1,-3*saveDigits); \n \n xk := evalf(x0);\n yk := evalf(y0);\n uk := evalf(u0);\n \+ \n if errcntl=2 then\n if stdstep then\n if maxtemp<> 0 then\n maxval := abs(evalf(maxtemp))\n else \n \+ maxval := max(abs(yk),tiny)\n end if;\n elif d rvstep then\n if maxtemp2<>0 then\n maxval := abs(e valf(maxtemp2))\n else\n maxval := max(abs(uk),tiny )\n end if;\n else\n if maxtemp<>0 then\n \+ maxval := abs(evalf(maxtemp))\n else \n maxva l := max(abs(yk),tiny)\n end if;\n if maxtemp2<>0 then \n maxval2 := abs(evalf(maxtemp2))\n else\n \+ maxval2 := max(abs(uk),tiny)\n end if;\n end if;\n \+ end if;\n f1 := uk;\n g1 := gn(xk,yk,uk);\n\n finished := false; \n soln := NULL;\n soln2 := NULL;\n\n for k from 1 to maxstps do \n if stdstep then \n if errcntl=0 then scale := max(abs( yk),abs(uk*h),tiny)\n elif errcntl=1 then scale := max(abs(yk) ,tiny)\n elif errcntl=2 then scale := abs(maxval)\n el se scale := max(abs(uk*h),tiny) end if;\n elif drvstep then\n \+ if errcntl=0 then scale := max(abs(uk),abs(g1*h),tiny)\n \+ elif errcntl=1 then scale := max(abs(uk),tiny)\n elif errcntl= 2 then scale := abs(maxval)\n else scale := max(abs(g1*h),tiny ) end if;\n else\n if errcntl=0 then\n scale : = max(abs(yk),abs(uk*h),tiny);\n scale2 := max(abs(uk),abs( g1*h),tiny);\n elif errcntl=1 then\n scale := max(a bs(yk),tiny);\n scale2 := max(abs(uk),tiny);\n elif errcntl=2 then\n scale := abs(maxval);\n scale2 := abs(maxval2);\n else\n scale := max(abs(uk*h),t iny);\n scale2 := max(abs(g1*h),tiny);\n end if;\n \+ end if;\n \n if abs(h)>=hmx then\n h := sgn*hmx ;\n maxstepsize := true;\n else\n maxstepsize := \+ false;\n end if;\n if abs(h)<=hmn then\n h := sgn*hm n;\n minstepsize := true;\n else\n minstepsize := false;\n end if;\n if (xk+h-xend)*(xk+h-xstart)>0 then \n \+ h := xend-xk;\n laststep := true;\n else\n \+ laststep := false;\n end if;\n\n # Do step.\n do\n \+ ff := a21*f1;\n gg := a21*g1;\n f2 := uk + gg*h; \n g2 := gn(xk + c2*h,yk + ff*h,f2);\n\n ff := a31*f1 \+ + a32*f2;\n gg := a31*g1 + a32*g2;\n f3 := uk + gg*h; \n g3 := gn(xk + c3*h,yk + ff*h,f3); \n\n ff := a41*f1 + a43*f3;\n gg := a41*g1 + a43*g3;\n f4 := uk + gg*h; \n g4 := gn(xk + c4*h,yk + ff*h,f4);\n\n ff := a51*f1 \+ + a53*f3 + a54*f4;\n gg := a51*g1 + a53*g3 + a54*g4;\n \+ f5 := uk + gg*h;\n g5 := gn(xk + c5*h,yk + ff*h,f5);\n\n \+ ff := a61*f1 + a64*f4 + a65*f5;\n gg := a61*g1 + a64*g4 + \+ a65*g5;\n f6 := uk + gg*h;\n g6 := gn(xk + c6*h,yk + f f*h,f6);\n\n ff := a71*f1 + a74*f4 + a75*f5 + a76*f6;\n \+ gg := a71*g1 + a74*g4 + a75*g5 + a76*g6;\n f7 := uk + gg*h; \n g7 := gn(xk + c7*h,yk + ff*h,f7);\n\n ff := a81*f1 \+ + a86*f6 + a87*f7;\n gg := a81*g1 + a86*g6 + a87*g7;\n \+ f8 := uk + gg*h;\n g8 := gn(xk + c8*h,yk + ff*h,f8);\n\n \+ ff := a91*f1 + a96*f6 + a97*f7 + a98*f8;\n gg := a91*g1 + \+ a96*g6 + a97*g7 + a98*g8;\n f9 := uk + gg*h;\n g9 := g n(xk + c9*h,yk + ff*h,f9);\n\n ff := aA1*f1 + aA6*f6 + aA7*f7 \+ + aA8*f8 + aA9*f9;\n gg := aA1*g1 + aA6*g6 + aA7*g7 + aA8*g8 + aA9*g9;\n fA := uk + gg*h;\n gA := gn(xk + cA*h,yk + \+ ff*h,fA);\n\n ff := aB1*f1 + aB6*f6 + aB7*f7 + aB8*f8 + aB9*f9 + aBA*fA;\n gg := aB1*g1 + aB6*g6 + aB7*g7 + aB8*g8 + aB9*g9 \+ + aBA*gA;\n fB := uk + gg*h;\n gB := gn(xk + cB*h,yk + ff*h,fB);\n\n ff := aC1*f1 + aC6*f6 + aC7*f7 + aC8*f8 + aC9*f 9 + aCA*fA + aCB*fB;\n gg := aC1*g1 + aC6*g6 + aC7*g7 + aC8*g8 + aC9*g9 + aCA*gA + aCB*gB;\n fC := uk + gg*h;\n gC : = gn(xk + cC*h,yk + ff*h,fC);\n\n ff := aD1*f1 + aD6*f6 + aD7* f7 + aD8*f8 + aD9*f9 + aDA*fA + aDB*fB + aDC*fC;\n gg := aD1*g 1 + aD6*g6 + aD7*g7 + aD8*g8 + aD9*g9 + aDA*gA + aDB*gB + aDC*gC;\n \+ fD := uk + gg*h;\n gD := gn(xk + cD*h,yk + ff*h,fD);\n\n ff := aE1*f1 + aE6*f6 + aE7*f7 + aE8*f8 + aE9*f9 + aEA*fA + a EB*fB + aEC*fC\n \+ + aED*fD;\n gg := aE1*g1 + aE6*g6 + aE7* g7 + aE8*g8 + aE9*g9 + aEA*gA + aEB*gB + aEC*gC\n \+ + aED*gD;\n \+ fE := uk + gg*h;\n gE := gn(xk + cE*h,yk + ff*h,fE);\n\n \+ ff := aF1*f1 + aF6*f6 + aF7*f7 + aF8*f8 + aF9*f9 + aFA*fA + aF B*fB + aFC*fC\n \+ + aFD*fD + aFE*fE;\n gg := aF1*g1 + aF6*g6 + aF7*g 7 + aF8*g8 + aF9*g9 + aFA*gA + aFB*gB + aFC*gC\n \+ + aFD*gD + aFE*gE;\n \+ fF := uk + gg*h;\n gF := gn(xk + h,yk + ff*h,fF);\n\n \+ ff := b1*f1 + b8*f8 + b9*f9 + bA*fA + bB*fB + bC*fC + bD*fD + bE*f E + bF*fF;\n yout := yk + ff*h;\n gg := b1*g1 + b8*g8 \+ + b9*g9 + bA*gA + bB*gB + bC*gC + bD*gD + bE*gE + bF*gF;\n uou t := uk + gg*h;\n \n # error estimate\n ff := aG1*f1 + aG6*f6 + aG7*f7 + aG8*f8 + aG9*f9 + aGA*fA + aGB*fB + aGC*fC \n \+ \+ + aGD*fD;\n gg := aG1*g1 + aG6*g6 + aG7*g7 + aG8*g8 + aG9*g9 + aGA*gA + aGB*gB + aGC*gC \n \+ + aGD*gD;\n fG := uk + gg*h; \n gG := gn(xk + h,yk + ff*h,fG);\n\n if stdstep then \n ff := e1*f1 + e8*f8 + e9*f9 + eA*fA + eB*fB + eC*fC + eD *fD + eE*fE\n \+ + eF*fF + eG*fG;\n errst := ff*h; \n elif dr vstep then\n gg := e1*g1 + e8*g8 + e9*g9 + eA*gA + eB*gB + \+ eC*gC + eD*gD + eE*gE\n \+ + eF*gF + eG*gG;\n errst := gg*h;\n \+ else\n ff := e1*f1 + e8*f8 + e9*f9 + eA*fA + eB*fB + eC*f C + eD*fD + eE*fE\n \+ + eF*fF + eG*fG;\n errst := ff*h;\n \+ gg := e1*g1 + e8*g8 + e9*g9 + eA*gA + eB*gB + eC*gC + eD*gD + eE*gE\n + eF*g F + eG*gG;\n errst2 := gg*h;\n end if;\n \n if stdstep or drvstep then \n err := abs(errst/sca le)/eps;\n else \n err := max(abs(errst/scale),abs( errst2/scale2))/eps;\n end if; \n if err<=1.0 or mins tepsize then break end if;\n \n # Shrink, but not too \+ much.\n if prntflg then\n print(`reducing step-size and repeating step`);\n end if;\n htemp := safety*h*e rr^pshrink;\n if h>=0 then\n h := max(htemp,0.1*h) \n else\n h := min(htemp,0.1*h)\n end if;\n if maxstepsize then maxstepsize := false end if;\n if abs(h)<=hmn then\n h := sgn*hmn;\n minstepsize \+ := true;\n end if;\n end do;\n\n if member(outpt,\{' points','derivpts','rkstep','derivstep','step_pair','endpt'\}) then\n \+ soln := soln,[xk,yk,uk];\n else # 10 or 12 extra stages n eeded for interpolation\n ff := aH1*f1 + aH8*f8 + aH9*f9 + aHA *fA + aHB*fB + aHC*fC + aHD*fD + aHE*fE\n \+ + aHF*fF;\n gg \+ := aH1*g1 + aH8*g8 + aH9*g9 + aHA*gA + aHB*gB + aHC*gC + aHD*gD + aHE* gE\n \+ + aHF*gF;\n fH := uk + gg*h;\n gH := gn(xk + h,yk + ff*h,fH);\n\n ff := aI1*f1 + aI8*f8 + aI9*f9 + aIA*fA \+ + aIB*fB + aIC*fC + aID*fD + aIE*fE\n \+ + aIF*fF + aIH*fH;\n gg := a I1*g1 + aI8*g8 + aI9*g9 + aIA*gA + aIB*gB + aIC*gC + aID*gD + aIE*gE\n + a IF*gF + aIH*gH;\n fI := uk + gg*h;\n gI := gn(xk + cI* h,yk + ff*h,fI);\n\n ff := aJ1*f1 + aJ8*f8 + aJ9*f9 + aJA*fA + aJB*fB + aJC*fC + aJD*fD + aJE*fE\n \+ + aJF*fF + aJH*fH + aJI*fI;\n gg := aJ 1*g1 + aJ8*g8 + aJ9*g9 + aJA*gA + aJB*gB + aJC*gC + aJD*gD + aJE*gE\n \+ + aJF*gF + aJ H*gH + aJI*gI;\n fJ := uk + gg*h;\n gJ := gn(xk + cJ*h ,yk + ff*h,fJ);\n\n ff := aK1*f1 + aK8*f8 + aK9*f9 + aKA*fA + \+ aKB*fB + aKC*fC + aKD*fD + aKE*fE\n \+ + aKF*fF + aKH*fH + aKI*fI + aKJ*fJ;\n gg := aK1 *g1 + aK8*g8 + aK9*g9 + aKA*gA + aKB*gB + aKC*gC + aKD*gD + aKE*gE\n \+ + aKF*gF + aKH*gH + aKI *gI + aKJ*gJ;\n fK := uk + gg*h;\n gK := gn(xk + cK*h, yk + ff*h,fK);\n\n ff := aL1*f1 + aL8*f8 + aL9*f9 + aLA*fA + a LB*fB + aLC*fC + aLD*fD + aLE*fE\n \+ + aLF*fF + aLH*fH + aLI*fI + aLJ*fJ + aLK*fK;\n gg := aL1* g1 + aL8*g8 + aL9*g9 + aLA*gA + aLB*gB + aLC*gC + aLD*gD + aLE*gE\n \+ + aLF*gF + aLH*gH + aLI*gI + aLJ* gJ + aLK*gK;\n fL := uk + gg*h;\n gL := gn(xk + cL*h,y k + ff*h,fL);\n\n ff := aM1*f1 + aM8*f8 + aM9*f9 + aMA*fA + aM B*fB + aMC*fC + aMD*fD + aME*fE\n + aMF* fF + aMH*fH + aMI*fI + aMJ*fJ + aMK*fK + aML*fL;\n gg := aM1*g 1 + aM8*g8 + aM9*g9 + aMA*gA + aMB*gB + aMC*gC + aMD*gD + aME*gE\n \+ + aMF*gF + aMH*gH + aMI*gI + aMJ*gJ + aMK*g K + aML*gL;\n fM := uk + gg*h;\n gM := gn(xk + cM*h,yk + ff*h,fM);\n\n ff := aN1*f1 + aN8*f8 + aN9*f9 + aNA*fA + aNB *fB + aNC*fC + aND*fD + aNE*fE\n + aNF*f F + aNH*fH + aNI*fI + aNJ*fJ + aNK*fK + aNL*fL;\n gg := aN1*g1 + aN8*g8 + aN9*g9 + aNA*gA + aNB*gB + aNC*gC + aND*gD + aNE*gE\n \+ + aNF*gF + aNH*gH + aNI*gI + aNJ*gJ + aNK*gK + aNL*gL;\n fN := uk + gg*h;\n gN := gn(xk + cN*h,yk \+ + ff*h,fN);\n\n ff := aO1*f1 + aO8*f8 + aO9*f9 + aOA*fA + aOB* fB + aOC*fC + aOD*fD + aOE*fE\n + aOF*fF + aOH*fH + aOI*fI + aOJ*fJ + aOK*fK + aOL*fL;\n gg := aO1*g1 \+ + aO8*g8 + aO9*g9 + aOA*gA + aOB*gB + aOC*gC + aOD*gD + aOE*gE\n \+ + aOF*gF + aOH*gH + aOI*gI + aOJ*gJ + aOK*gK \+ + aOL*gL;\n fO := uk + gg*h;\n gO := gn(xk + cO*h,yk + ff*h,fO);\n\n ff := aP1*f1 + aP8*f8 + aP9*f9 + aPA*fA + aPB*f B + aPC*fC + aPD*fD + aPE*fE\n + aPF*fF \+ + aPH*fH + aPI*fI + aPJ*fJ + aPK*fK + aPL*fL;\n gg := aP1*g1 + aP8*g8 + aP9*g9 + aPA*gA + aPB*gB + aPC*gC + aPD*gD + aPE*gE\n \+ + aPF*gF + aPH*gH + aPI*gI + aPJ*gJ + aPK*gK + aPL*gL;\n fP := uk + gg*h;\n gP := gn(xk + cP*h,yk + \+ ff*h,fP);\n\n ff := aQ1*f1 + aQ8*f8 + aQ9*f9 + aQA*fA + aQB*fB + aQC*fC + aQD*fD + aQE*fE\n + aQF*fF + aQH*fH + aQI*fI + aQJ*fJ + aQK*fK + aQL*fL;\n gg := aQ1*g1 + \+ aQ8*g8 + aQ9*g9 + aQA*gA + aQB*gB + aQC*gC + aQD*gD + aQE*gE\n \+ + aQF*gF + aQH*gH + aQI*gI + aQJ*gJ + aQK*gK + \+ aQL*gL;\n fQ := uk + gg*h;\n gQ := gn(xk + cQ*h,yk + f f*h,fQ);\n\n if saveDigits<=27 then ## use the first interpola tion procedure\n if outpt='rkinterp' then\n s oln := soln,[xk,yk,f1,f8,f9,fA,fB,fC,fD,fE,fF,\n \+ fH,fI,fJ,fK,fL,fM,fN,fO,fP,fQ];\n elif outpt='derivint erp' then\n soln := soln,[xk,uk,g1,g8,g9,gA,gB,gC,gD,gE, gF,\n gH,gI,gJ,gK,gL,gM,gN,gO,gP,gQ];\n \+ else\n soln := soln,[xk,yk,f1,f8,f9,fA,fB,fC,fD,f E,fF,\n fH,fI,fJ,fK,fL,fM,fN,fO,fP,fQ];\n \+ soln2 := soln2,[xk,uk,g1,g8,g9,gA,gB,gC,gD,gE,gF,\n \+ gH,gI,gJ,gK,gL,gM,gN,gO,gP,gQ];\n end i f;\n else ## 2 more stages are needed for the 2nd interpolatio n procedure\n ff := aR1*f1 + aR8*f8 + aR9*f9 + aRA*fA + aRB *fB + aRC*fC + aRD*fD + aRE*fE\n + aRF*fF + aR H*fH + aRI*fI + aRJ*fJ + aRK*fK + aRL*fL + aRM*fM;\n gg := \+ aR1*g1 + aR8*g8 + aR9*g9 + aRA*gA + aRB*gB + aRC*gC + aRD*gD + aRE*gE \n + aRF*gF + aRH*gH + aRI*gI + aRJ*gJ + aRK*g K + aRL*gL + aRM*gM;\n fR := uk + gg*h;\n gR := \+ gn(xk + cR*h,yk + ff*h,fR);\n\n ff := aS1*f1 + aS8*f8 + aS9 *f9 + aSA*fA + aSB*fB + aSC*fC + aSD*fD + aSE*fE\n + aS F*fF + aSH*fH + aSI*fI + aSJ*fJ + aSK*fK + aSL*fL + aSM*fM + aSN*fN;\n gg := aS1*g1 + aS8*g8 + aS9*g9 + aSA*gA + aSB*gB + aSC*gC \+ + aSD*gD + aSE*gE\n + aSF*gF + aSH*gH + aSI*gI + aSJ*gJ + aSK*gK + aSL*gL + aSM*gM + aSN*gN;\n fS := uk + gg*h;\n \+ gS := gn(xk + cS*h,yk + ff*h,fS);\n if outpt='rk interp' then\n soln := soln,[xk,yk,f1,f8,f9,fA,fB,fC,fD, fE,fF,fH,fM,fN,fO,fP,fQ,fR,fS];\n elif outpt='derivinterp' \+ then\n soln := soln,[xk,uk,g1,g8,g9,gA,gB,gC,gD,gE,gF,gH ,gM,gN,gO,gP,gQ,gR,gS];\n else\n soln := soln ,[xk,yk,f1,f8,f9,fA,fB,fC,fD,fE,fF,fH,fM,fN,fO,fP,fQ,fR,fS];\n \+ soln2 := soln2,[xk,uk,g1,g8,g9,gA,gB,gC,gD,gE,gF,gH,gM,gN,gO,gP ,gQ,gR,gS];\n end if;\n end if;\n end if;\n \+ \n if err>errcontrol then\n hnext := safety*h*err^pgro w;\n inc := false;\n else\n if abs(h) `,evalf(abs(errst),5),`abs err bound -> `,evalf(abs(scale)*eps,5) );\n if stdstep then\n print(`step`,k,` `,h,` ` ,[xk,yk]);\n elif drvstep then\n print(`step`,k,` \+ `,h,` `,[xk,uk]);\n else\n print(`step`,k,` `, h,` `,[xk,yk,uk]);\n end if;\n if laststep then\n \+ print(`last step`);\n elif inc then\n prin t(`increasing step-size by a factor of 5`)\n elif maxstepsize \+ then\n print(`used maximum step-size`)\n elif not m instepsize then\n print(`using error to adjust step-size`) \n else \n print(`used minimum step-size`)\n \+ end if;\n print(``);\n end if;\n \n if (xk-xe nd)*(xend-xstart) >= 0 then\n finished := true;\n brea k;\n end if;\n \n if errcntl=2 then\n if stdste p then \n if abs(yk)>maxval then maxval := abs(yk) end if ;\n elif drvstep then\n if abs(uk)>maxval then maxv al := abs(uk) end if;\n else\n if abs(yk)>maxval th en maxval := abs(yk) end if;\n if abs(uk)>maxval2 then maxv al2 := abs(uk) end if;\n end if;\n end if;\n h := hn ext;\n end do;\n\n if not finished and k>=maxstps then\n erro r \"reached maximum number of steps before reaching end of interval\" \n end if;\n \n if member(outpt,\{'rkstep','derivstep','step_pai r'\}) then\n soln := [soln,[xk,yk,uk]];\n eqns := \{SOLN_=so ln,GXYU_=gxyu,X_=x,Y_=y,U_=u,c3_=c3,c4_=c4,c6_=c6,\n c7_=c7,cC _=cC,a31_=a31,a32_=a32,a41_=a41,a43_=a43,a51_=a51,\n a53_=a53, a54_=a54,a61_=a61,a64_=a64,a65_=a65,a71_=a71,a74_=a74,\n a75_= a75,a76_=a76,a81_=a81,a86_=a86,a87_=a87,a96_=a96,a97_=a97,\n a A1_=aA1,aA6_=aA6,aA7_=aA7,aA8_=aA8,aA9_=aA9,aB1_=aB1,aB6_=aB6,\n \+ aB7_=aB7,aB8_=aB8,aB9_=aB9,aBA_=aBA,aC1_=aC1,aC6_=aC6,aC7_=aC7,\n \+ aC8_=aC8,aC9_=aC9,aCA_=aCA,aCB_=aCB,aD1_=aD1,aD6_=aD6,aD7_=aD7, \n aD8_=aD8,aD9_=aD9,aDA_=aDA,aDB_=aDB,aDC_=aDC,aE1_=aE1,aE6_= aE6,\n aE7_=aE7,aE8_=aE8,aE9_=aE9,aEA_=aEA,aEB_=aEB,aEC_=aEC,a ED_=aED,\n aF1_=aF1,aF6_=aF6,aF7_=aF7,aF8_=aF8,aF9_=aF9,aFA_=a FA,aFB_=aFB,\n aFC_=aFC,aFD_=aFD,aFE_=aFE,b1_=b1,b8_=b8,b9_=b9 ,bA_=bA,bB_=bB,\n bC_=bC,bD_=bD,bE_=bE,bF_=bF\};\n if out pt='rkstep' then\n return subs(`union`(eqns,\{DERIV_=false\}), eval(rk89step));\n elif outpt='derivstep' then\n return s ubs(`union`(eqns,\{DERIV_=true\}),eval(rk89step));\n else # outpt ='step_pair' then\n return subs(`union`(eqns,\{DERIV_=false\}) ,eval(rk89step)),\n subs(`union`(eqns,\{DERIV_=true\}), eval(rk89step));\n end if;\n elif member(outpt,\{'rkinterp','de rivinterp','interp_pair'\}) then\n Digits := Digits+3;\n if \+ saveDigits<=27 then # use the first interpolation procedure\n \+ d12 := evalf(-28.32690107549798096690906467156557560246);\n d8 2 := evalf(-.1352877251970476367599723128957768440819e-1);\n d 92 := evalf(-1.455702711708433893360889952963677129273);\n dA2 := evalf(-.8520791942350588325316811661249319358110);\n dB2 : = evalf(-1.500195363988222220268242336906764975318);\n dC2 := \+ evalf(-1.194515595127319561381305768593044511548);\n dD2 := ev alf(-.5075697553248201181074098453886273625940);\n dE2 := eval f(-.8654131818113355423508731936492858938138);\n dF2 := evalf( -.1970131900633844007334057633668811920145);\n dH2 := evalf(-. 4541849829711136730965001627668703429520);\n dI2 := evalf(-.16 42163800536330788290065204813343796028);\n dJ2 := evalf(-.6748 844193125564745929227754653506820255);\n dK2 := evalf(1.778873 344420799933681245486496441730823);\n dL2 := evalf(.4134694024 574781779455481610866056129998e-1);\n dM2 := evalf(31.31247017 428404500084714290987346601228);\n dN2 := evalf(-2.73095872962 0607116715051590434641454760);\n dO2 := evalf(3.15981330884341 3258842148106168068986690);\n dP2 := evalf(.912802095332092040 9453895709005641365133);\n dQ2 := evalf(1.73185748910807259044 1870089449361718970);\n d13 := evalf(257.522084478351382265599 1530565674934511);\n d83 := evalf(.491657339269641537427224467 9017599493338);\n d93 := evalf(52.9025764136205190092071742311 6225499945);\n dA3 := evalf(30.9659275351442879216271273849302 9801871);\n dB3 := evalf(54.5195109141503170557750879382091494 5821);\n dC3 := evalf(43.4106167696289060095796916957067310330 3);\n dD3 := evalf(18.44590076692263941141687424224329073812); \n dE3 := evalf(31.45050607647596882232093808213253876385);\n \+ dF3 := evalf(7.159776002331775566615895079547204997740);\n \+ dH3 := evalf(16.70127113669635686632210799083287987501);\n \+ dI3 := evalf(6.019579370077226689069574595580813231251);\n d J3 := evalf(24.73882523992791864853900738883021962605);\n dK3 \+ := evalf(-65.20707180707839471257988195976321618762);\n dL3 := evalf(-1.515629491027822593270509776882653001566);\n dM3 := e valf(-355.3157275297828193986043583116718624296);\n dN3 := eva lf(87.05655731583556409257744115400905155577);\n dO3 := evalf( -113.1719939045261456697649954642660064729);\n dP3 := evalf(-3 2.82005802633989134102763080315296130729);\n dQ3 := evalf(-63. 35430859967743018082992099191698629861);\n d14 := evalf(-1150. 934922587486676595644173070427468166);\n d84 := evalf(-4.43646 4950699828531781508575523348010080);\n d94 := evalf(-477.36585 48642740885503090276141520646170);\n dA4 := evalf(-279.4207290 379426863235594737603647308773);\n dB4 := evalf(-491.956246720 9968998612925445316059331330);\n dC4 := evalf(-391.71525451610 95434284638812068789918804);\n dD4 := evalf(-166.4463960979508 832639844199618192084686);\n dE4 := evalf(-283.793318528161236 2330622863936780662583);\n dF4 := evalf(-64.606165213342112614 63809724329632268974);\n dH4 := evalf(-156.7717275533304690372 380410971656210197);\n dI4 := evalf(-55.9104056745873237770136 6184031559718280);\n dJ4 := evalf(-229.77647939200528187529707 71400909901114);\n dK4 := evalf(605.64926773927173737354606951 65065607758);\n dL4 := evalf(14.077305819234795790796475545132 13783817);\n dM4 := evalf(1749.5147152304403918334471096268751 35263);\n dN4 := evalf(-458.0573888328072551306550581455948332 526);\n dO4 := evalf(972.1689485848533047356437130956188610315 );\n dP4 := evalf(285.2155813990437864609136220241493488672); \n dQ4 := evalf(584.5655351968502690285922607726311318915);\n \+ d15 := evalf(2904.420880778592699327677577124945314980);\n \+ d85 := evalf(17.31944616187202911483010888269379627330);\n \+ d95 := evalf(1863.581097723678565157175620323654474102);\n d A5 := evalf(1090.826215660802050077745313656207403448);\n dB5 \+ := evalf(1920.540300388688941881662910323116196240);\n dC5 := \+ evalf(1529.211058075771098268564306266884477941);\n dD5 := eva lf(649.7874835236435459733721670731086552039);\n dE5 := evalf( 1107.896299411122562578451965902514345412);\n dF5 := evalf(252 .2149983312684580977777634191985258330);\n dH5 := evalf(651.54 66733893466243333417542222885186689);\n dI5 := evalf(228.26886 56052759709055637645192351601670);\n dJ5 := evalf(938.12262065 96337368237001113946310937453);\n dK5 := evalf(-2472.721663050 785177698018480246106083819);\n dL5 := evalf(-57.4742857141502 0809167337188498904022101);\n dM5 := evalf(-4695.1476224134401 14700018050785654357371);\n dN5 := evalf(1030.5282204796892426 04149818460454461893);\n dO5 := evalf(-3550.940444875616705777 455788680906685775);\n dP5 := evalf(-1042.59133956344395176618 6011126489506480);\n dQ5 := evalf(-2365.3888045719493671106614 78844786750241);\n d16 := evalf(-4344.528637462060406744624584 680228201053);\n d86 := evalf(-34.6410268681887209841089545449 9673069594);\n d96 := evalf(-3727.3918735006936021192159813426 24059544);\n dA6 := evalf(-2181.786870784446576299842227492434 297046);\n dB6 := evalf(-3841.31729879824014602765920840944228 3399);\n dC6 := evalf(-3058.6105845897488644319334366811710416 96);\n dD6 := evalf(-1299.655050454701135142040066484500460116 );\n dE6 := evalf(-2215.929142096727917414601771920948508172); \n dF6 := evalf(-504.4610810354733798936380034445962688417);\n dH6 := evalf(-1412.320009571548049765391447883774876836);\n \+ dI6 := evalf(-482.2012255868892821374987074119699671610);\n \+ dJ6 := evalf(-1981.715185876861586680601839010188195151);\n \+ dK6 := evalf(5223.443036336624954800506019083865201996);\n \+ dL6 := evalf(121.4102104446333031674235730516112272387);\n dM6 := evalf(7343.556109316445935223022259185806343012);\n dN6 := evalf(-1166.915434857878624822018690873833960735);\n dO6 := e valf(6713.264174671284729472235882859087918016);\n dP6 := eval f(1892.181696336440909747003099385300652954);\n dQ6 := evalf(4 957.618194378028460052984086615037507229);\n d17 := evalf(3822 .157475253294982131000232331973581223);\n d87 := evalf(37.3828 1301815147188288272397739113810538);\n d97 := evalf(4022.40943 9034606738749309726708665413881);\n dA7 := evalf(2354.47208151 0133899345761960831165410270);\n dB7 := evalf(4145.35189360204 1132240186825905030942458);\n dC7 := evalf(3300.69509815994745 4006902079837487651010);\n dD7 := evalf(1402.52082953869624014 3275819971514339950);\n dE7 := evalf(2391.31666320624071206220 4317538870339080);\n dF7 := evalf(544.388431065862863584023255 2836960844226);\n dH7 := evalf(1667.13851561629096503162480989 1759454368);\n dI7 := evalf(550.037169861310936495296803049177 7978723);\n dJ7 := evalf(2260.50236803986982884201936214648504 3259);\n dK7 := evalf(-5958.2756579299893127610659695191720449 23);\n dL7 := evalf(-138.4901675933193250049116011300621399397 );\n dM7 := evalf(-6685.313457191056010094751616991673574687); \n dN7 := evalf(648.4882950191960598212061502167065649832);\n \+ dO7 := evalf(-6928.875337321575454509723879737483510177);\n \+ dP7 := evalf(-1796.360453156949035787162250294206098163);\n \+ dQ7 := evalf(-5639.545999732754146178078750017326392993);\n \+ d18 := evalf(-1828.450847963912086611128480846949392101);\n \+ d88 := evalf(-20.77503017271466649882774316118528416602);\n d9 8 := evalf(-2235.403671264127820837729037807288709372);\n dA8 \+ := evalf(-1308.468373164874203463640310982951825568);\n dB8 := evalf(-2303.727400725200622735225098094654082708);\n dC8 := e valf(-1834.319964682933276992160596708277754909);\n dD8 := eva lf(-779.4333866041422479301856382011190453387);\n dE8 := evalf (-1328.944288020880399801387165802578257268);\n dF8 := evalf(- 302.5370529387022446453538858257877493512);\n dH8 := evalf(-10 17.673390248052278400509234341149434655);\n dI8 := evalf(-321. 9620585702092198978986346679238877457);\n dJ8 := evalf(-1323.1 76024632043052129631852045198788472);\n dK8 := evalf(3487.6528 37788410553784668028541744220262);\n dL8 := evalf(81.064665977 61229475532476786812136393672);\n dM8 := evalf(3285.6825738930 41315538969260935086785998);\n dN8 := evalf(-131.2788560071460 746781394967167667482200);\n dO8 := evalf(3717.788457472750001 241039636185655260178);\n dP8 := evalf(850.9940020538469208530 391946403353379361);\n dQ8 := evalf(3312.967807809277108448776 287030887991565);\n d19 := evalf(367.1554574315021425912203561 515068047982);\n d89 := evalf(4.674158442717667575904712851691 441884529);\n d99 := evalf(502.9417938773550941496020410671302 902552);\n dA9 := evalf(294.3913170095037265437261593264381545 568);\n dB9 := evalf(518.3138984780918128529461223609665108621 );\n dC9 := evalf(412.7022718276975364384031516482215784580); \n dD9 := evalf(175.3641325304376264979817562401261871246);\n \+ dE9 := evalf(298.9981777216614016801117759308073585656);\n \+ dF9 := evalf(68.06758442573064372308655760592131398740);\n \+ dH9 := evalf(251.8328522135679646449465513799759499414);\n d I9 := evalf(75.91229137507532480130986827669701519861);\n dJ9 \+ := evalf(311.9787603807909928458652100409969677860);\n dK9 := \+ evalf(-822.3196224208751607207370309035710798363);\n dL9 := ev alf(-19.11344638322878584148388848903955641263);\n dM9 := eval f(-674.2890614799327434029117465686419357976);\n dN9 := evalf( -7.090434387268304770405112504539894769146);\n dO9 := evalf(-8 13.3936179360131427508167163638739057876);\n dP9 := evalf(-157 .5322311379308302075254133968373379435);\n dQ9 := evalf(-788.5 942819688829666512243546539758628716);\n eqns := \n \{ d12_=d12,d82_=d82,d92_=d92,dA2_=dA2,dB2_=dB2,dC2_=dC2,dD2_=dD2,\n \+ dE2_=dE2,dF2_=dF2,dH2_=dH2,dI2_=dI2,dJ2_=dJ2,dK2_=dK2,dL2_=dL2,\n \+ dM2_=dM2,dN2_=dN2,dO2_=dO2,dP2_=dP2,dQ2_=dQ2,\n d13_=d 13,d83_=d83,d93_=d93,dA3_=dA3,dB3_=dB3,dC3_=dC3,dD3_=dD3,\n dE 3_=dE3,dF3_=dF3,dH3_=dH3,dI3_=dI3,dJ3_=dJ3,dK3_=dK3,dL3_=dL3,\n \+ dM3_=dM3,dN3_=dN3,dO3_=dO3,dP3_=dP3,dQ3_=dQ3,\n d14_=d14,d84 _=d84,d94_=d94,dA4_=dA4,dB4_=dB4,dC4_=dC4,dD4_=dD4,\n dE4_=dE4 ,dF4_=dF4,dH4_=dH4,dI4_=dI4,dJ4_=dJ4,dK4_=dK4,dL4_=dL4,\n dM4_ =dM4,dN4_=dN4,dO4_=dO4,dP4_=dP4,dQ4_=dQ4,\n d15_=d15,d85_=d85, d95_=d95,dA5_=dA5,dB5_=dB5,dC5_=dC5,dD5_=dD5,\n dE5_=dE5,dF5_= dF5,dH5_=dH5,dI5_=dI5,dJ5_=dJ5,dK5_=dK5,dL5_=dL5,\n dM5_=dM5,d N5_=dN5,dO5_=dO5,dP5_=dP5,dQ5_=dQ5,\n d16_=d16,d86_=d86,d96_=d 96,dA6_=dA6,dB6_=dB6,dC6_=dC6,dD6_=dD6,\n dE6_=dE6,dF6_=dF6,dH 6_=dH6,dI6_=dI6,dJ6_=dJ6,dK6_=dK6,dL6_=dL6,\n dM6_=dM6,dN6_=dN 6,dO6_=dO6,dP6_=dP6,dQ6_=dQ6,\n d17_=d17,d87_=d87,d97_=d97,dA7 _=dA7,dB7_=dB7,dC7_=dC7,dD7_=dD7,\n dE7_=dE7,dF7_=dF7,dH7_=dH7 ,dI7_=dI7,dJ7_=dJ7,dK7_=dK7,dL7_=dL7,\n dM7_=dM7,dN7_=dN7,dO7_ =dO7,dP7_=dP7,dQ7_=dQ7,\n d18_=d18,d88_=d88,d98_=d98,dA8_=dA8, dB8_=dB8,dC8_=dC8,dD8_=dD8,\n dE8_=dE8,dF8_=dF8,dH8_=dH8,dI8_= dI8,dJ8_=dJ8,dK8_=dK8,dL8_=dL8,\n dM8_=dM8,dN8_=dN8,dO8_=dO8,d P8_=dP8,dQ8_=dQ8,\n d19_=d19,d89_=d89,d99_=d99,dA9_=dA9,dB9_=d B9,dC9_=dC9,dD9_=dD9,\n dE9_=dE9,dF9_=dF9,dH9_=dH9,dI9_=dI9,dJ 9_=dJ9,dK9_=dK9,dL9_=dL9,\n dM9_=dM9,dN9_=dN9,dO9_=dO9,dP9_=dP 9,dQ9_=dQ9\};\n if outpt='rkinterp' then\n soln := \+ [soln,[xk,yk]];\n return subs(`union`(eqns,\{SOLN_=soln\}), eval(rk89interp1));\n elif outpt='derivinterp' then\n \+ soln := [soln,[xk,uk]];\n return subs(`union`(eqns,\{SOL N_=soln\}),eval(rk89interp1));\n else # outpt='interp_pair'\n \+ soln := [soln,[xk,yk]];\n soln2 := [soln2,[xk,uk ]];\n return subs(`union`(eqns,\{SOLN_=soln\}),eval(rk89int erp1)),\n subs(`union`(eqns,\{SOLN_=soln2\}),eval(rk 89interp1));\n end if;\n else # use the 2nd interpolation procedure\n d12 := evalf(-23247272030551848660652158203294479 4394707787222506409930071654271832607410815502715416288891020310980616 1371422018344018284489971184160832578057443004570310907159489110861407 7591113/81448745081825304653040925355737215884470269479429423497142366 9519913767770131942462437963489507455520263207326661002120811587205348 517600062563867363630293524002932114371981759080); d82 : = evalf(21502683584899453427587070285284560592250230972913236384946162 4570070243975692461192255957449934495959898993812660122618440747369381 87307628300794672440627960877874430545765625/1732473122267937813783031 2192060186531063039128814615670219238400537318050520854627913510661167 9620892412025712972666728715428507932530408739841120312094841203241465 5458133122088);\n d92 := evalf(1631002544833756037930437630785 6634753972797176631452267288625564007296424040044102085420269249552669 7265195424911009485694537168326394859630795872496427225382885480330412 73731140625/1221277014623658319004167433947119813177826152325233440261 8742186855362882777919122089968880909842394337811137730913738310176254 319710990146658045169944034872707295611228002208548678);\n dA2 := evalf(396480097574440483155029056022934789307043058976637107062007 5595922276957585506187166172357808245962119383560212231340871153499366 1250484512347586735724139450716599772423054800000000000000000000000000 00/5071934850534744112617721567739881910293383876935119602866938076981 9762051407318250400312030131978301750110673940580945844519129444305795 17054136405989560468014509350258101500522748695949149211050732031);\n \+ dB2 := evalf(1260810289517604761288644720927328696269968749957 1446425869862695830864934973001270054537548725384326053244042733329323 795683329807688237702956770682061133604914226693450990306705408/916081 6020977381447949001637423265164424336911300590288511496652292961664072 2922007312827020820327646844443570737913716486406232594573109709587238 55932137093123525182377146328123885);\n dC2 := evalf(641307235 4330356780421665606238710688384326037787785907346790995854461098648136 8701116233992048113184116624059387474088286643884457827029507111315301 1096729629570008308920061857803651484185902990382685285609923092542091 51655963040560832961143659284061411253746747492673806/5852030102732719 9543274765362725590525734933140824896127902061866651231598807264970334 5719907019236253297981923673465778358560713766188173323172702506912214 4955440839002977062110406684295037064579423657638524309207357196633679 0629401910498717243477290786941061893349477395);\n dD2 := eval f(45908265857092151395316432364750719795430516837566731838457002003025 3433258774221762308048291829183786837988361931646130564336311961614200 43564308284974332361928107788699172864000000000000/9858875629242003518 4527621504258749776206995305740237701650019087174639816444443644776498 8533717135250464414769154286818052890528977150744154306134052821759222 53744929618136360602342731009);\n dE2 := evalf(235889675913756 2446585615268836485858531584292657502630716333850618244509444100692288 7246774551723209754033496440183196843572302454216219059341347925833920 3444701116173436828000000000000/29711026963423301878814667249197128083 7681640756162191442139268144797033721327429634780077385990764422607161 9335325256842609978502922968737115217027479011423624151067876387544520 79112003);\n dF2 := evalf(276839544145908832935620713244536166 1925440005842832925828056476113415204905973430073468365325559778542824 0506458571932272495477575085379603505046167261013507302885764164254987 84/1531669477500262699507893279153040467906926042233828236540783803251 4612585062364956839496707015246220325849097231173079942503441492341951 893581768205237902903076267644562936943365);\n dH2 := evalf(-5 4415591795629811492677746416739849649510634907662244968858819094047734 6245547695458661735888477636915732947174050598866214066220649758087642 397226905839164560/212232204142571091047596341871280871652770394481994 0416388159849351518556581870272675987534684714147249754559056584132933 5745959704670895404730923001592982526183);\n dM2 := evalf(2026 7899489210127389575847344542255351960548258345973188682327343893978939 9262174054256870677598150755094774512166419468563547310799839913296112 823989900087016816640/651991967829712362118288210252152167432597049806 9258334345557275128509938133752503196680326381420116499332195391416565 622488301896859069212439579069696271769853943);\n dN2 := evalf (-30519679122741543761947682271471992460158050049487752049381183155677 9355330007380739259807724406945564534993116400362575367887438506281720 10188641318227006300160/5388968192961836481145863226198667900901066442 9597233143398416237452352063677583726255482855630672704460852439994769 51962995055598991669366091550981595710296617);\n dO2 := evalf( 9731827534890381584526148949375549386228704536437741363202795862790693 9651962896144297211355864062899611122955574195821076195999122377075733 00713908550476991796875/2889019195199688732805900799190752529984295175 5442348790357195391297912790285622169492815895344522611339605634004109 52617791324621365608031520487775614964492843168);\n dP2 := eva lf(-848960477726039832565597341338175629306384880772309675132200911297 0799184791119236525364065927732323229702284479360583228949872260706414 3935532527609861614450000000/52477877929105362905094124839138827992854 9948463740005315769530230433307383387676553407779410540424730798692057 77573214626468655247600464358947878195072783647089613);\n dQ2 \+ := evalf(-113172517075834062454859869586705330686707909306841160891080 6326700744109112101280796982695630475188551519321016347490895541646758 758744082026346365137641248828125/189691680392256644136334385562193110 1117175387921822606647624251558322792641450947164192996518199679197022 005887815887090974259570845067616864225945521690024409184);\n \+ dR2 := evalf(-26434483098045822717111142796255066174269306017094398474 6710094150308945791265604373509372227936701891407388216421358153741119 853774946839999649436127699550000000/643506201865442826866241314657840 9316958332281887199016535222644825192628780323233194037070407662681767 9723795993754191087529193329135816548034402897878187659603);\n \+ dS2 := evalf(11083833718207427478760859203772866431406595116806196081 1004720487060990653527123507101116732067701226241710038447654910091063 2240429562847131385533654392832/19567785740602165871989336333328496372 1897837434993584398687059685738388030782802201363409061839770168703167 90121557559778486040664457768213840054399403450605);\n d13 := \+ evalf(1015004176276158830731638211397051094965865098094857243993712256 4569702621814400771414762385006116020371317006830828640393514848943339 03656283016515316421780248560729232658261881999933/3773791855457905782 2575628748158243359804558192135632887009296687756004573349446667426292 3083471787724388619394686264315976035405144813154695654591878482035999 4546918796590182150404);\n d83 := evalf(-177716341481335754603 4273085656009455221765815008728637730893678810306757083642630474460121 0046304732640521452983521885910436861484149979232379627069314840024092 8451182814545078125/42041347767035290947801557586066052648712974952590 1340263986851853038918025972738970701192044342546698919849063480337928 349439845916273791875347785290683481319865956391173637626688);\n \+ d93 := evalf(-19257118308058104453013403088153964441072720470328061 7721916142106439302917343602627721683463613198614747836339349530121989 19186346639510487675161506575788581700484049608504364397421875/4233760 3173620155058811137710166820190164639947274759262411639581098591326963 4529565785587871541203003710786108005009594752776816416647658417478899 224726542253852914522570743229687504);\n dA3 := evalf(-9452441 6881175970443874062482400184172760294436275710074365535675272658631737 8974559653776234032135046608358545706930424158694973624524890514968807 215414044563307224824764330275000000000000000000000000000/355035439537 4320878832405097417917337205368713854583722006856653887383343598512277 5280218421092384811225077471758406662091163390611014056619378954841926 923276101565451806710503659240871644044477355124217);\n dB3 := evalf(-11164715677251868384684662463037444182547631337322626026912624 9727409051694773293552376215538510100766916817848907886583234829832469 3314369620299715366584866988923056071472444116785152/23818121654541191 7646674042573004894275032759693815347501298912959617003265879597219013 3502541328518817955532839185756628646562047458900852449268202542355644 2121165474180580453122101);\n dC3 := evalf(-566724891027525549 1273353902310164144591783241280290808113911612844069243583549411151847 1175205146893438275284488518176440494267051648191975426352057772994860 9811352787102129575356213152045946356826621350407389373901628499253142 359720211934631135337906787074395848973803353617/151840674398904973748 2835911944853322174402398560603304865298831900043955883719168430281027 9187459116652238304312914192062476788653186695803825254387712682258777 7171635997244838224685435175228368954112503527577409566894728655192753 08815710733834107574382851640859261077734756);\n dD3 := evalf( -474280862413172002614089258246637524226188474524696017029133330372321 2843423197178598053238675985901810212463249957182386573749787947395030 2348895707808673588973139119219319275520000000000000/29905256075367410 6726400451896251540987827885760745387695005057897763074109881479055822 0465218941976926408724799768003348093767937897357257268061939960226002 975030262865083469604937729507273);\n dE3 := evalf(-1874607258 5943602025763804076550196129998459802433382032197845716087797933834137 3266188141523278175452899257620899011626018899439666427289704047369068 83099384145061094602800767500000000000/6932572958132103771723422358145 9965528792382843104511336499162567119307868309733581448684723397845031 9416711178242559929942328317348692705326883973078435998845635249171157 093721517928007);\n dF3 := evalf(-8171556615366945364751516190 8419857277267272696418179237218029339512702341391159686767813841008018 0554877985549817145405012031242677172856749317792738587619185684605387 20039051532/1327446880500227672906840841932635072186002569935984471668 6792961512664240387382962594230479413213390949069217600350002616836315 960029691641104199111206182515999431958621212017583);\n dH3 := evalf(460240330132521931116561578353506954356511461022767746889454678 1403856779912746088505561545953421874624661567428461710591909130920877 409487387364776579773259448038/469033171155082111215187915535530726352 6225718052068320217833267066856010045933302613932451653218265421957575 515050933783199857094732267884445533983352049138286443);\n dM3 := evalf(-90015552340618286736345080522884739205107132545805768684047 5871607447987532551776300843530885259632654301098652823888646610292911 04102212461032576476626176369714790400/2542768674535878212261324019983 3934529871284942470107503947673373001188758721634762467053272887538454 3473955620265246059277043773977503699285143583718154599024303777);\n \+ dN3 := evalf(35091695021081334455043300724934694104112696274192 7467856134235522484082888625584204104878587226219482115976158109445252 9384301119683644348842507445550363720555699200/17314754803986380613921 6585457763199655951264812295910089739111370934407180596076512458866415 1413513994327188897031944665710311363956023367325215330386701718303042 1);\n dO3 := evalf(-180024016958806190025760314193284297539296 4702958402128007129054665367304663323114615643654317103125456334529848 4177141537603075105932782519580857606520340845892578125/19645330527357 8833830801254344971172038932071937007971774428928660825806973942230752 5511480883427537571093183112279447780098100742528613461433931687418175 85513335424);\n dP3 := evalf(182896554965870973147942048001265 0182281115051917938701622665434505633817764346782640272659074695631389 01075924749199115781798283511237100238409067894450858579156250000/3306 1063095336378630209298648657461635498646753215620334893480404517298365 1534236228646901028640467580403175996398711252146752528059882925461371 6326289585369766645619);\n dQ3 := evalf(4124343552145458307440 7107323326623421384464037602939836517496553369043496010793627279488829 0328284017453765223475770905444074002631310707139343150530055403238867 1875/20486701482363717566724113640716855892065494189555684151794341916 8298861605276702293732843623965565353278376635884115805825220033651267 302621336402116342522636191872);\n dR3 := evalf(25994634414325 2906945363035624578892963124825080939362543111556023094917748738212405 0938275481017763073117138877014924278603461990239448418611915976547173 3218750000/19305186055963284805987239439735227950874996845661597049605 6679344755778863409696995821112112229880453039171387981262573262587579 987407449644103208693634562978809);\n dS3 := evalf(-3673277527 3540739744960835935622670842597764295608074661344501082692565471694829 5117297855846543083003188863794718384208322398396834836891172022683022 668426240/117406714443612995231936017999970978233138702460996150639212 2358114430328184696813208180454371038621012219007407293453586709162439 8674660928304032639642070363);\n d14 := evalf(-883336048111889 1690292223099780723042914053471614433014036853688901329177786213675318 1140266876078162724928062988975123169071040772446731003273157499307594 4074888866433538777450941379527/69006479642658848589852578282346502143 6426206941908715648169996576109797912675596204366487924062697553167761 1788548833206418933122648011971577683965777957229704314365799479190217 88160);\n d84 := evalf(593089610023011382708690769780853070156 8967702798266189921989092273439903152599574634654635167925275665482093 4267816139675130895068716422303976940126213491163511602512089311077031 25/1552295917552072281149595972408592713183248305941789564051643760688 1436973266685746610505552406494031960117503882350938892902394310754724 62308976437996369777181043531290487277390848);\n d94 := evalf( 6426644107285237229339620582992539256784826674834915381270573499557544 3744965262774820182413748207756799697456816407524339932652701022946213 1229550027865661971686863791261383698638796875/15632345787182826483253 3431545231336086761747497629880353519899991748644899557364762751601675 6459826475239825629556958503702560552923006738772229781752836463706533 838237184282694230784);\n dA4 := evalf(85435639319401040164878 3966623562063617203763043618629109423622346594664357887306733540976633 6456102039894446267384245628264970509854224605099825658371134575360266 129901323333165312500000000000000000000000/355035439537432087883240509 7417917337205368713854583722006856653887383343598512277528021842109238 4811225077471758406662091163390611014056619378954841926923276101565451 806710503659240871644044477355124217);\n dB4 := evalf(38812300 6153421781716445931935560686856244766387480032530594626231278337514047 0464990707120255095685505323109684509087047366215145700896681262056085 037955679010208348601102590632370816/916081602097738144794900163742326 5164424336911300590288511496652292961664072292200731282702082032764684 4443570737913716486406232594573109709587238559321370931235251823771463 28123885);\n dC4 := evalf(122935863508841554172101032658423621 2867442825459224596907348995212327538718601289223014672234157751145847 0435585326014409623959032888897925977632105911325017309431234134377791 1018052791585099313745507609991044695108955437315571452744922286839699 0393048813554735411845643661600089/36441761855737193699588061886676479 7321856575654544793167671719656010549412092600423267446700499018799653 7193035099406094994429276764806992918061053051043742106652119263933876 1173924504442054808548987000846618578296054734877246260741157705761201 85817851884393806222658656341440);\n dD4 := evalf(989255719906 4176899138067139064238308063420646483760661207070793816476428642523462 0188970976209654969767338911215756902675554350602449524558366445464628 151840317404165005714180096000000000000/690121294046940246291693350529 8112484334489671401816639115501336102224787151111055134354919736019946 7532509033840800077263702337028400552090801429383697523145577621450732 6954524216399117063);\n dE4 := evalf(5083076147789288480010516 0735828029215004852106299129283278146704494923118904889049527200466484 2006086857180411830936431474141732793040857669802664407634062243459363 510767441744343750000000/207977188743963113151702670744379896586377148 5293135340094974877013579236049292007443460541701935350958250133534727 6797898269849520460781159806519192353079965369057475134712811645537840 21);\n dF4 := evalf(340884895973250242571820471394168209239267 8022992811249241853996721011393211859234456219748229609549735285591806 542241097798412476209064739128141031246509345899659886395921975544647/ 6126677910001050798031573116612161871627704168935312946163135213005845 0340249459827357986828060984881303396388924692319770013765969367807574 327072820951611612305070578251747773460);\n dH4 := evalf(-4011 6046043720503927836748415417374074978760652652146644330919614162828869 9820567184013440994631989924139294898755625706949327367808305178910044 551566142862246495687/375226536924065688972150332428424581082098057444 1654656174266613653484808036746642091145961322574612337566060412040747 0265598856757858143075564271866816393106291544);\n dM4 := eval f(15107876256554417330793552766047794531442142052525056234131012783247 7577231219519534793984660029737052380737953981591950047807772777391686 956437757045513910858313072640/847589558178626070753774673327797817662 3761647490035834649224457667062919573878254155684424295846151449131854 0088415353092347924659167899761714527906051533008101259);\n dN 4 := evalf(-3918822079628415223750836469082414909755051518607775549565 5500684136801716189033392915841310993652828506589430289466615096662089 51180091043764846433823372240130626880/2473536400569482944845951220825 1885665135894973185130012819873052990629597228010930351266630734478771 34753126995759920951014730519937176239036021900552431026147203);\n \+ dO4 := evalf(9174584513648988421921890350345040323444198237323066 6550980420280082113163479467841877693176670184327789149491600272575905 6048991943678105523839420312619645138940234375/15716264421886306706464 1003475976937631145657549606377419543142928660645579153784602040918470 6742030056874546489823558224078480594022890769147145349934540684106683 392);\n dP4 := evalf(-2378626836103778338629505406137077434123 4208090170893492270154158898466522009232309444552224108084776449271812 5435585368243358876121297849918181511874329548310832421875/47230090136 1948266145847123552249451935694953617366004784192577207389976645048908 8980670014694863822577188228519981589316382178972284041792305309037556 55052823806517);\n dQ4 := evalf(-29305700463870082641972130716 5400107711262069850832402931121922339706927853375187215564969664821021 163661705238156822296083016739057731321338981240707686611441109765625/ 1638936118589097405337929091257348471365239535164454732143547353346390 8928422136183498627489917245228262270130870729264466017602692101384209 70691216930740181089534976);\n dR4 := evalf(-31655990496397627 5872457433593399598492304911551508975862511072113576022286246715101909 8572479934123487181191998826198796428115593036595036812414629015734133 1640625/27578837222804692579981770628193182786964281208087995785150954 1921079684090585281422601588731756972075770244839973232247517982257124 86778520586172670519223282687);\n dS4 := evalf(937559249930781 9204366030739014634986707821221131923155443146599595418442333474304699 2236574052940692034070852465986501035608263529463846370516682358031225 19104/1956778574060216587198933633332849637218978374349935843986870596 8573838803078280220136340906183977016870316790121557559778486040664457 768213840054399403450605);\n d15 := evalf(96901747031528596063 4203359774688754048366075454316908232373636049048543966514646060001414 6606181575185548129436932132494229486593675879000580996866419494358388 5945055749769399858528036829/27947624255276833678890294204350333368175 2613811473029837508848613324468154633616462768427609245392509032943277 4362277448599667914672444848488962006140072678030247318148789072038242 0480);\n d85 := evalf(-436605385408888719269156853630408555007 2138503190708741043238759280725668347540473629621844434363789158358858 2285829005655321088746498662338090981344739220698419389695462477032059 53125/2724279335303886853417540931577080211636600776927840684910634800 0076921888083033485301437244473397026090006219313525897757043702015374 5417135225364868362895895273139741480517182093824);\n d95 := e valf(-4731000813246699285880165394140538182788997348947908242683874264 6964589659387468250133769077257839500909002926243038686904205387380969 8683921257087448471857775440078994838565090982484546875/27434766856505 8604781096172361880994832266866858340440020427424485518871798723175158 6290609407586995464045893979872462173997993770379876826545263266976227 99380496688610625841612837502592);\n dA5 := evalf(-96759694688 5405340205181707679238028838523425632766379683622653979266742697114185 4795393585048266161697167368753721700447422615422446351986272877281711 61373289635878324630400538663125000000000000000000000000/9585956867510 6663728474937630283768104544955274073760494185129654959350277159831493 2565897369494389903077091737476979876461411546497379528723231780732026 928454742267198781183598799503534389200888588353859);\n dB5 := evalf(-57143673341738841216735103335998225165995007998361812110545840 3794583893433575744029287137159159260041087217924047014636013855847882 9812655863942806257030537218763843310837913113907647744/32154464233630 6088823009957473556607271294225586650719126753532495482954408937456245 6680228430793500404239969332900771448672858764069516150806512073432180 119686357339014378361171483635);\n dC5 := evalf(-6961519053493 1632281473861115789503325161898739031070906577833534264044924213347196 1973471099504421051942962962024281482849401254839813406891558021822050 8658805745396352038659347434833791108610201290289719091566747225465765 6605964912896531722298043340325399462693260379634846175501/49196378505 2452114944438835470132476384506377133635470776356821535614241706325010 5714110530456736753795325210597384198228242479523632489440439382421618 9090518439803610063107327584798080996773991541132451142935080699673892 084282452000562902777622508541000439316384005891860609440);\n \+ dD5 := evalf(-14564894328225754821195703066543095705094765344042544798 0481221931736253485417213600050049749070186335760428849102999313989987 772559756288015920933176271722532381358960021994612363264000000000000/ 2422325742104760264483843660359637482001405874662037640329540968971880 9002900399803521585768273430013103910670878120827119559520296968593783 8713017136778306240977451292071761037999956090089113);\n dE5 : = evalf(-5756811794899346626822160005588632548527306534926936652197481 1835642220372900812159275043297477498760983419006478028251103404656360 002390614873014230699567681146447819781787004754437500000000/561538409 6087004055095972110098257207832183010291465418256432167936663937333088 4200973434625952254475872753605437647354325328593705244109131477601819 353315906496455182863724591442952168567);\n dF5 := evalf(-2509 4383525062139557760323708810311223829670744121058788880134804318107701 8823031825147674504194970171315515350464186384573456957980360845929105 2424711886218328790953510215098177098999/10752319732051844150545410819 6543440847066208164814742205163022988252580347137801997013266883247028 4666874606625628350211963741592762405022929440128007700783795953988648 3181734242230);\n dH5 := evalf(9290772551508887290716415294744 2861348335034555311950380641857836619592155622741560563379811297755260 20027479477026011855533827492876976654734352480121484916341523571/1688 5194161582956003746764959279106148694412584987445952784199761440681636 1653598894101568259515857555190472718541833616195194855410361643840039 223400673768978311948);\n dM5 := evalf(-1121298951139393638856 9695409834713160221501813207386015571095560949726589972411560593611291 8895924061041219612400795051969730537226015655570210085541141282770801 94744320/2288491807082290391035191617985054107688415644822309675355290 6035701069882849471286220347945598784608912656005823872145334933939657 97533293566292253463391391218733993);\n dN5 := evalf(423730769 1491839242922440202871230484873011323474510998832792873279506318409082 4314099287062324466471175466960390741882224524329507192225631926685727 976709766479372160/742060920170844883453785366247556569954076849195553 9003845961915897188879168403279105379989220343631404259380987279762853 044191559811528717108065701657293078441609);\n dO5 := evalf(-1 3141488358107372740570348910330962543231331985583722928783861853225768 5345217158277357857527041920815122367584142933773183497165670841893520 5641216579813718488507421875/78581322109431533532320501737988468815572 8287748031887097715714643303227895768923010204592353371015028437273244 911779112039240297011445384573572674967270342053341696);\n dP5 := evalf(100680647057850169072115401012268778927603511571084984103641 9316582368910276167934515174751632563255949817859007472525818553504099 261244618131739976153704227162739843750/472300901361948266145847123552 2494519356949536173660047841925772073899766450489088980670014694863822 57718822851998158931638217897228404179230530903755655052823806517);\n \+ dQ5 := evalf(1800916386709928736623872762068108772223421670080 6704982024738579528789992090021199826712558566033408578292309912147581 02644165062400611993885456821340532556416652734375/2458404177883646108 0068936368860227070478593027466820982153210300195863392633204275247941 2348758678423934051963060938966990264040381520763145603682539611027163 4302464);\n dR5 := evalf(1123526588280651001188595677264972632 8681729666027672923649416363311196543782956697665156880388612107326458 75587142140893709475497048969103886856547078037817044531250/2482095350 0524223321983593565373864508267853087279196206635858772897171568152675 3280341429858581274868193220355975909022766184031412381006685275554034 673009544183);\n dS5 := evalf(-1188351828313185448639649237326 8044870519443220243827166143992278628209508220895962966139747118145520 71239798780062924876289958204519620407237812804050351519475072/5283302 1499625847854371208099986940204912416107448267787645506115149364768311 3565943681204466967379455498553333282054114019123097940359741773681468 783893166335);\n d16 := evalf(-1863702386750616080828147010739 1508859043690850973618953835559800959232658818092251639982811890322121 4279942799952475164109284715666157226569805188736967670455874767623619 356529916486605365/335371491063322004146683530452204000418103136573767 6358050106183359893617855603397553221131310944710108395319329234732938 3196014976069338181867544073680872136362967817785468864458904576);\n \+ d86 := evalf(58119437263982642468499671102878166334413188879346 2655117686172375644340661446218035542217466881420491125931727968879965 68427824881585057133004913358090610671097541696843778683006640625/1634 5676011823321120505245589462481269819604661567044109463808800046153132 8498200911808623466840382156540037315881155386542262212092247250281135 2189210177375371638838448883103092562944);\n d96 := evalf(6297 7488173636373262797794951173944320058901544643072383159843261783416462 1163513451715717052626168985158773640434390860825936207617325276475550 6385047676211116215322627584546800540705859375/16460860113903516286865 7703417128596899360120115004264012256454691311323079233905095177436564 4552197278427536387923477304398796262227926095927157960185736796282980 131663755049677025015552);\n dA6 := evalf(64401622071909703125 9722150889322279199317326500919794554724166962686591138831190869338516 4033853019390158386004505105717928415968139664363622249501645548248427 611276999379431481695312500000000000000000000000/287578706025319991185 4248128908513043136348658222212814825553889648780508314794944797697692 1084831697092312752124309396293842346394921385861696953421960807853642 26801596343550796398510603167602665765061577);\n dB6 := evalf( 7606773184229929268021459726711400198837965999733016351044051673422965 8231997577138154391494947191850542002092645370484611152763285881416790 37009209393009976470850313339671147480660424320/1929267854017836532938 0597448413396436277653535199043147605211949728977264536247374740081370 5847610024254398159974046286920371525844170969048390724405930807181181 4403408627016702890181);\n dC6 := evalf(1853387903186769088903 7913956265587984235338474022395799283492588014207040122030237491048141 6690535363884913724186674664532611006893789452845918122099354529306148 9952552532277211400770377536780063491988928492873248517822594343843080 65166268822352638000001136832224471390106316131685/5903565420629425379 3332660256415897166140765256036256493162818584273709004759001268569326 3654808410455439025271686103787389097542835898732852725890594269086221 2776433207572879310175769719612878984935894137152209683960867050113894 2400675483333147010249200527179660807070232731328);\n dD6 := e valf(96941481994443083061400036211931521725162008643400167491338695810 0485711991098515011195718001177179558293807845172438964391032111373487 278720547017921820911878962671348716457796249600000000000000/726697722 6314280793451530981078912446004217623986112920988622906915642700870119 9410564757304820290039311732012634362481358678560890905781351613905141 0334918722932353876215283113999868270267339);\n dE6 := evalf(3 8316369098478396650523048597838671795516863991668827495992995663848927 2465217482673769867577973608528955361414352192149595148943418083042339 600731559488334402986489933681196283927343750000000/168461522882610121 6528791633029477162349654903087439625476929650380999181199926526029203 0387785676342761826081631294206297598578111573232739443280545805994771 9489365548591173774328856505701);\n dF6 := evalf(6680959501208 5530195978280031657331172929180418850193013926291799121162377100979461 5053977451497767856323433103862886989516720518608807591190945610349894 8346831512046999057861757650815/12902783678462212980654492983585212901 6479449797777690646195627585903096416565362396415920259896434160024952 7950754020254356489911314886027515328153609240940555144786377981808109 0676);\n dH6 := evalf(-118560556728390809729963047984313900045 4514686572588719667760460282988740741834051117576097626170671174539513 1842262949924286367696497701084397710183025536317023131475/77931665361 1521046326773767351343360708972888537882120897732296681877613976862764 1266226227362270348701098740855776936132085916403555152792617194926184 9431836143976);\n dM6 := evalf(4131056178574323916285955498398 2978851143352864991255622614191129846831497087570300901889199200628378 71523097462159376031692783920280265055359708151690176939599220736000/5 2811349394206701331581345030424325562040361034360992508199013928540930 4988833952758931106436895029436445907826704741815421552453645584606207 605904645398013358169383);\n dN6 := evalf(-2472505541180997154 1386540025616889606549304552870624515716529903383309914033751021176689 5818473454218513175581240533503967790032803205216630617827612945075604 887384000/222618276051253465036135609874266970986223054758666170115378 8574769156663750520983731613996766103089421277814296183928855913257467 9434586151324197104971879235324827);\n dO6 := evalf(4008189996 7953552706188889118737884745219663921757593120493116373673554905421653 4756665750231299405031033978811998154184988425568361471866126250204676 4244232209080078125/15716264421886306706464100347597693763114565754960 6377419543142928660645579153784602040918470674203005687454648982355822 4078480594022890769147145349934540684106683392);\n dP6 := eval f(-6776333177795703804999428192880038213112448808980324864732067773477 4475625781879375089777100491686340997318355411049548209875913689257930 14917679098771068959761982421875/1416902704085844798437541370656748355 8070848608520980143525777316221699299351467266942010044084591467731564 68555994476794914653691685212537691592711266965158471419551);\n \+ dQ6 := evalf(-232188897035532798628382087774023494321918302596227172 6685240246002444720179956385421762062279916378591392794843192148951038 1344922882120825996303583972365082255654296875/14750425067301876648041 3618213161362422871558164800925892919261801175180355799225651487647409 2552070543604311778365633801941584242289124578873622095237666162980581 4784);\n dR6 := evalf(-704105147551833843285823269391324810119 9655822702744598858679626758180179731683450939240608420111399806284836 892762247087554947465238769854765348764136682571822265625/744628605015 7266996595078069612159352480355926183758861990757631869151470445802598 4102428957574382460457966106792772706829855209423714302005582666210401 9028632549);\n dS6 := evalf(1567895693130955229911636340053836 4751944845740385862788715576892273611058141561971757094050612159937440 35690033097074308654630574261554566129455024110188277556160/3169981289 9775508712622724859992164122947449664468960672587303669089618860986813 9566208722680180427673299131999969232468411473858764215845064208881270 335899801);\n d17 := evalf(33963862483023360501402695298901653 5514449214436075756798598531074046988424848999349422669745557498449061 0101076421683998700808209238269994420204668064831115248655036515146394 3202198163625/65211123262312611917410686476817444525742276556010373628 7520646764423759027478438413126331088239249187743534314017864738006589 1800902371313140911347660169582070577075680507834755898112);\n \+ d87 := evalf(-1355864369393950426860840259294932246067570905721612046 8226988792849205378431709932489416132031579958865478641232448480843476 972760934550808251614730416758058490505157119926499033203125/317832589 1187867995653797753506593580242700906415814132395740600008974220276353 9066185010118552296530438340589199113547383217652351270298665776292567 9756711877818663031727270045776128);\n d97 := evalf(-146919750 6175426510578903538300958976161368593185593015717317917135960337947976 6434043817255462539006720874446936452316676581606250754507501005466451 48332010382142882815019297605907529296875/3200722799925683722446122010 8886116063764467800139718002383199523310535043184370435173390443088514 9470805354297651787253633099273210985629763614047813893265943912803379 063481881643753024);\n dA7 := evalf(-6009684113207379872469956 5393912343279639045009833362483855469690330623467775806058756868713268 0217476569566154600513157161099486076634824261560450948676976901457647 4911531077953906250000000000000000000000000/22367232690858221536644152 1137328792243938228972838774486431969194905150646706273484265376052882 0243107179880720779619711743293608493885567020874155041396166394398623 463822761730532174913574802073372825671);\n dB7 := evalf(-7098 3156149381987393935351197465886271071121592607358974409111674366437697 8949808973265577292171502580753335887632225001020925182837016529164833 1982553704750655561290138882487159233856000/15005416642360950811740464 6820993083393270638607103668925818315164558712057504146247978410660103 6966855311985688687026676047334089899107537043038967601684055853633424 873376568546692363);\n dC7 := evalf(-4323755939312935073661164 9824857256045741832004356624853142612997779996937630307373104771104412 9050971413995442335216233872977555243105427151747237908087721177329088 1978329206866688646492488027731927468995035347035267042071899112279460 6841820683207228009828518422329841270954277625/11479154984557216015370 2394943030911156384821331181609847816591691643323064809169133329245710 6571909218909215806056312919923245222180914202769189231711078778763595 4175681391709769786218899247264692930905266684852163257241486332572133 464677314778585326233435840489601374767475536);\n dD7 := evalf (-90461647627799939605519743364020711300957097303126686836286917383741 7390079966089431055381845539863537911096526673049073268907227101509056 882933282328966291600906678875792972231680000000000000000/565209339824 4440617128968540839154124669947040878087827435595594267722100676759954 1550366792638003363909124898715615263278972214026260052162366370665248 2714562280719681500775755333230876874597);\n dE7 := evalf(-357 5519796532472885105724634193796775210033340217703585836045976065501124 4751598625189447840947564427988980328695615058245877247374740650849305 9474166354936016711365284260766030546875000000000/13102562890869676128 5572682568959334849417603573467526425983417251855491871105396468938014 1272219271103697584126878438267591000519789029213067810709118244037818 25062093348690713366888393323);\n dF7 := evalf(-22265663771726 8198521017549731406960954848541891969171106843362416094055612711527938 6968668907580355284226975211130811993246700709029367726699672639649907 67809561478111920044897862125/3584106577350614716848470273218114694902 2069388271580735054340996084193449045933999004422294415676155562486887 5209450070654580530920801674309813376002566927931984662882772724474741 );\n dH7 := evalf(19389322393902097460007346431045968828446865 2106525685940944360449962727405722611317997060793568194627976611197400 61804745161927719530880022171878524355728447213199375/8442597080791478 0018733824796395530743472062924937229763920998807203408180826799447050 7841297579287775952363592709168080975974277051808219200196117003368844 89155974);\n dM7 := evalf(-16562274879863103837621119021996210 9356547892793937528046493033153647583215560098173272088481429703627886 61843162447539273783922782341989158994968020059394518172057600000/2288 4918070822903910351916179850541076884156448223096753552906035701069882 8494712862203479455987846089126560058238721453349339396579753329356629 2253463391391218733993);\n dN7 := evalf(6229726540408146156220 0131476563270044120625687363331910167396974250987426355829178163818809 1146178063905143801648406032688977123991641106763472410383183531459741 600000/519442644119591418417649756373289598967853794436887730269217334 1128032215417882295373765992454240541982981566691095833997130934091868 0701019756459911601051549091263);\n dO7 := evalf(-847131331713 6159120601971321105248932626039024408065558122890211639074554446611565 6640343569869558461881696042604941643125962103998178959640471616929787 9475995849609375/39290661054715766766160250868994234407786414387401594 3548857857321651613947884461505102296176685507514218636622455889556019 620148505722692286786337483635171026670848);\n dP7 := evalf(19 2199536689203016498164669863697596313903985705566233907430060579117336 2576296424307507315668079507961528050896857580077151174447548705069343 1120192609459078333007812500/33061063095336378630209298648657461635498 6467532156203348934804045172983651534236228646901028640467580403175996 3987112521467525280598829254613716326289585369766645619);\n dQ 7 := evalf(22242656577209132137928034855897489762583074002299371185968 2394165403449004868350395991523900216356220374502752592770504662331446 9058321213812394587322423923121826171875/12292020889418230540034468184 4301135352392965137334104910766051500979316963166021376239706174379339 2119670259815304694834951320201907603815728018412698055135817151232); \n dR7 := evalf(1871736451411923969701559071023703939498679631 4607212569975747897472699052302634634524758967083861330828894032415208 276570869749417022470440098629019283318233398437500/173746674503669563 2538851549576170515578749716109543734464510114102802009770687272962390 0090100689240773525424918313631593632882198866670467969288782427110668 09281);\n dS7 := evalf(-59872065062863860638352370797924293013 0755669845497798132642764732928530595132258747219042997402452197343650 877840575170394219213920880906885704664131915202912000/105666042999251 6957087424161999738804098248322148965355752910122302987295366227131887 3624089339347589109971066665641082280382461958807194835473629375677863 3267);\n d18 := evalf(-103126451771286765302080471992047507582 9598161231838437473400760612259546155815044831245671980093381437233987 5996674674843496132094731283857582123235641116313108597714723000234113 8440434375/39126673957387567150446411886090466715445365933606224177251 2388058654255416487063047875798652943549512646120588410718842803953508 05414227878845468085961017492423462454083047008535388672);\n d 88 := evalf(7115780036212695343113919200641647119006724199962875622131 6493231780951007648429161389291035092798704861441899820575239054396123 91426166824225465922630083274655027504585236975830078125/2724279335303 8868534175409315770802116366007769278406849106348000076921888083033485 3014372444733970260900062193135258977570437020153745417135225364868362 895895273139741480517182093824);\n d98 := evalf(45356290442885 3725330484396453340437524946306963694983178546105469918817246175758131 4132694836812552895698143534834794737500991610853618845106253946916933 7704453141127104178603364013671875/16138098150885800281240951315404764 4018980509916670847070839661462069924587484220681546506435740411497885 0525870513213043528231629635221662673684274691898819885274638886034362 4284558976);\n dA8 := evalf(1576986282773265393767807714184426 0208438921080912760988828025242262579049288745618990252176083159553377 4669817505432866591327954847923083147837604244057703211404380317633585 4423828125000000000000000000000000/95859568675106663728474937630283768 1045449552740737604941851296549593502771598314932565897369494389903077 0917374769798764614115464973795287232317807320269284547422671987811835 98799503534389200888588353859);\n dB8 := evalf(186265137146760 6970545561570150178277362133600028535580304441413134481158938119262533 0215714945659143986319318951266621599951478012587289037557599494773168 70759096854544633027526749600000/6430892846726121776460199149471132145 4258845117330143825350706499096590881787491249133604568615870008084799 3866580154289734571752813903230161302414686436023937271467802875672234 296727);\n dC8 := evalf(22691721155097070385155661442485544724 3003656596507484151792774836360755063974437258495822000374838789244348 7195551316715874394275451475295706453438104427754417476061623565769465 0962635909194910376929811893948555819558415160966806790107628439109100 540016017033958122053031002540625/983927570104904229888877670940264952 7690127542672709415527136430712284834126500211428221060913473507590650 4211947683964564849590472649788808787648432378181036879607220126214655 1695961619935479830822649022858701613993477841685649040011258055552450 1708200087863276801178372121888);\n dD8 := evalf(1396342134567 4867269475983828473404090176043468794105027612159784324425571137987361 1559261254754698808214864630082218777303168890331951590659878020007877 81808568283866750656064000000000000000000/1424897495355741332049319800 2115514600008269850953162590173770405716946472294352825600932804866723 5371199474534577181335997408942923344669316890010080457827200574971348 27750649294115064122889);\n dE8 := evalf(938243269812506676272 1962011783188035974050560445249382837937259487701568217139995696121518 8017790554000785418684950410890929656197179627348227070540612410070990 323983501493381835937500000000/561538409608700405509597211009825720783 2183010291465418256432167936663937333088420097343462595225447587275360 5437647354325328593705244109131477601819353315906496455182863724591442 952168567);\n dF8 := evalf(81797485453126782440770702413652487 0166537465979144893511526543079909569175697426990881814794826148271533 6965121094826263715996477302558580979804793012797785569773628204282671 80271875/2150463946410368830109082163930868816941324163296294844103260 4597650516069427560399402653376649405693337492132512567004239274831855 24810045858880256015401567591907977296636346848446);\n dH8 := \+ evalf(-297625734716720540712885358881900309825380023095363322905966077 3191980599702866477889724654665642044155155827666071285064055213840506 8958899262535046785717791288796875/16885194161582956003746764959279106 1486944125849874459527841997614406816361653598894101568259515857555190 472718541833616195194855410361643840039223400673768978311948);\n \+ dM8 := evalf(824000207343077357503305774896925209134044980298554239 3800318072183813200694981779032464911305022315520569712238482403724434 766143485229893205877004653252974167040000000/228849180708229039103519 1617985054107688415644822309675355290603570106988284947128622034794559 8784608912656005823872145334933939657975332935662922534633913912187339 93);\n dN8 := evalf(-50181008748594324958316900089621931186323 2236211324894560094799151424976078638126581069542682388159449693190224 17123251499898711132684374120054289733126734015270000000/7420609201708 4488345378536624755656995407684919555390038459619158971888791684032791 0537998922034363140425938098727976285304419155981152871710806570165729 3078441609);\n dO8 := evalf(7527177875668363025850091036418130 6576188133167494881408039571268978584249656005204487974898416171995335 8454952814813992481430865789047055988453945857465388885498046875/78581 3221094315335323205017379884688155728287748031887097715714643303227895 7689230102045923533710150284372732449117791120392402970114453845735726 74967270342053341696);\n dP8 := evalf(-56813821503966701437607 0925228062638828901111643031424732713990985160932607703000736080421438 3536806980026931163020651118924773451409848646164636987244940851196289 06250/1574336337873160887152823745174164839785649845391220015947308590 6912999221501630296602233382316212741923960761733271964387940596574280 1393076843634585218350941268839);\n dQ8 := evalf(-258004151616 1825004089517083548801251030605627088253348494462691056056359844059395 8418204881036047541438975982470751912357719995839607718905790785915151 05000140380859375/2458404177883646108006893636886022707047859302746682 0982153210300195863392633204275247941234875867842393405196306093896699 02640403815207631456036825396110271634302464);\n dR8 := evalf( -109882252504213447998914427007962923963087452883649285391056796480621 4663214762948798802583441193382994526522684544266476336041419904524963 3003194810302693200683593750/17374667450366956325388515495761705155787 4971610954373446451011410280200977068727296239000901006892407735254249 1831363159363288219886667046796928878242711066809281);\n dS8 : = evalf(34687987505181639863565677117014381088736312609144039838422173 5139986294391024365812789221946686217330260138723496511914063027197196 744142879477163537290994800000/105666042999251695708742416199973880409 8248322148965355752910122302987295366227131887362408933934758910997106 66656410822803824619588071948354736293756778633267);\n d19 := \+ evalf(7647388829390407072050436441201063192701605491264269048124591173 5771745655593497324159977975063342019707168762488624377704384124856482 4465216259859042232889853458000575076625856711171875/13755471313144066 5763288166787036797046487614610334381873148886426870636669858733102768 8354639254666255396517693631433431732649051752843948865660987397067021 218012351901357121393822258);\n d89 := evalf(-6128248875820813 8189351075812740163826665468755334950443688109021147048123110960473585 3634364261060681869440861373221221047599744108511137234963008500590962 71587381946566656494140625/9577544538177727219046042337575672619034924 6063869399078889504687770428512791914596762865312601786419847678114774 11448430210676489780112321160266733653383058818196319036424432182986); \n d99 := evalf(-132809861647190694743481879402208262954806691 3588821718332722836264088737905199993438457740160120499418855286695455 1386317737767872860524802686549332570977325713152260347650492077636718 750/192900704459806831486708246191947574491437640759770621889363032841 3804567334772325334110584739709606185657269204597824966092339369798350 8936646382345926603081441173417934629488402636901);\n dA9 := e valf(-3476816424263507539648601277866430195683377611991420521124785172 8808843130940854832258557744703262493918341385350040564349638345755520 1966762189060999784094927618210734163506250000000000000000000000000000 0000/86273611807595997355627443867255391294090459746666384444766616689 4634152494438483439309307632544950912769382563729281888815270391847641 5758509086026588242356092680404789030652389195531809502807997295184731 );\n dB9 := evalf(-4106628543151784906781979989897271298955426 0483845989327524266885667335675037657665744936624425067382920536000260 4502075896655609142345881004379546302413609342712144348208199909888000 0000/57878035620535095988141792345240189308832960605597129442815635849 1869317936087421242202441117542830072763194479922138860761114577532512 9071451721732177924215435443210225881050108670543);\n dC9 := e valf(-4225417052195283099015649082430909194592099731222062410181998574 7435106508189023286349059607863576513992478220744441528760917061908068 2606217092293281206758041254491225391510179199773320460333368754049499 9481175216175419086611151820873223926810553183685936210961405422148312 5000/74791791646487652609796444581607977828725631658829716841000192463 1845975567048157963293830643760655137802819178656381487401728305957641 9757424736789623341463951997170448783208585526735286671721686996487504 8381034847477200803807781757612521114628813660304721933691900849112413 );\n dD9 := evalf(-5233528689920003954836897492689462655273196 8983349547798080752742313865237570499676150703884059405531284172056705 9489459414163998283032479461600377868775443629496794511404646400000000 000000000000/218009316789428423803545929432367373380126528719583387629 6586872074692810261035982316942719144608701179351960379030874440760356 826727173440548417154231004756168797061628645849341999604810802017);\n dE9 := evalf(-55907178964891756029115256168408759961338947104 4358901561525517269004818631639776379622495680730263116049986637383334 1297173275336010886262379707588489860559699397168074893750000000000000 000/136590423958873071610442564840227878028350397547630239903534836517 3783119891832318402056517928568352115823736348483314024129614441478910 7626575632874977833598877516125561446522242880257219);\n dF9 : = evalf(-9017035975314695096508707663852596844142303496473697579396238 3989137557922606470032494893173074518601113865286472611538603740693823 9560175629231502211989676044065478306027126990000000/96770877588466597 3549086973768890967623595873483332679846467206894273223124240217973119 4019492232562001871459630655151907673674334861645206364961152069307054 163585897834863560818007);\n dH9 := evalf(67688562108349667935 5185280995994051467680135846536960660207745291297618192550205304693092 7729215020477003943979869046096393321776284387941455501882702103924925 000000/126638956211872170028100737194593296115208094387405844645881498 2108051122712401991705761761946368931663928545389063752121463961415577 71232880029417550505326733733961);\n dM9 := evalf(-51183242042 2117789571784566951171205366522191261076592299186646443064360134183695 0092557981673914078034499595987133654481461613932698669586970292822890 575560704000000000/686547542124687117310557485395516232306524693446692 9026065871810710320964854841385866104383679635382673796801747161643600 480181897392599880698876760390174173656201979);\n dN9 := evalf (241988288270258019449724284803381394451125075552976152458037287624949 2163047428415014987965524833049182377323624810097152941646457359698658 42208629511133792064000000000/1558327932358774255252949269119868796903 5613833106631908076520023384096646253646886121297977362721625948944700 0732875019913928022756042103059269379734803154647273789);\n dO 9 := evalf(-5381561043553201898195543307762879248596447488459819487792 7891957635455396697904422543225520466666738762711378020971391711027225 6440018897453771437411597747802734375/30695828948996692786062695991401 7456310831362401574955897545201032540323396784735550861168888035552745 4833098612936637156403282410200958533490518261590899773645866);\n \+ dP9 := evalf(88867149471088518306084554664778503454087184123826396 5304156336468282633399607522044032837405914123660882393922968002818004 8249622001587184971466827380275859375000000000/99183189286009135890627 8959459723849064959402596468610046804412135518950954602708685940703085 9214027412095279891961337564402575841796487763841148978868756109299936 857);\n dQ9 := evalf(69371351338581058563607097156820860883141 2908891292846420021467707935099360792994577477127560700179732805287515 3678889554101030543680413705667265868112426910400390625/28809423959573 9778282057848072580785982171012040626808384607933205420274132420362600 5618113462015762780477171442120378519417156723220946443112543154761066 7245714482);\n dR9 := evalf(7808423189582799195312500930899926 4262370893200130767874363198554324968236101219077542526388665754408217 78878036571551602936875606341659621037369172874453125000000000/5212400 2351100868976165546487285115467362491483286312033935303423084060293120 6181888717002703020677223205762747549408947808986465966000114039078663 4728133200427843);\n dS9 := evalf(-241346974388131504896351852 0917855029339245356683966506549224061166795166775093117564200886049982 53547649020917590859892035494983822857823744800781320148480000000/3169 9812899775508712622724859992164122947449664468960672587303669089618860 9868139566208722680180427673299131999969232468411473858764215845064208 881270335899801);\n eqns := \n \{d12_=d12,d82_=d82,d92 _=d92,dA2_=dA2,dB2_=dB2,dC2_=dC2,dD2_=dD2,dE2_=dE2,dF2_=dF2,\n \+ dH2_=dH2,dM2_=dM2,dN2_=dN2,dO2_=dO2,dP2_=dP2,dQ2_=dQ2,dR2_=dR2,dS2_=d S2,\n d13_=d13,d83_=d83,d93_=d93,dA3_=dA3,dB3_=dB3,dC3_=dC3,dD 3_=dD3,dE3_=dE3,dF3_=dF3,\n dH3_=dH3,dM3_=dM3,dN3_=dN3,dO3_=dO 3,dP3_=dP3,dQ3_=dQ3,dR3_=dR3,dS3_=dS3,\n d14_=d14,d84_=d84,d94 _=d94,dA4_=dA4,dB4_=dB4,dC4_=dC4,dD4_=dD4,dE4_=dE4,dF4_=dF4,\n \+ dH4_=dH4,dM4_=dM4,dN4_=dN4,dO4_=dO4,dP4_=dP4,dQ4_=dQ4,dR4_=dR4,dS4_=d S4,\n d15_=d15,d85_=d85,d95_=d95,dA5_=dA5,dB5_=dB5,dC5_=dC5,dD 5_=dD5,dE5_=dE5,dF5_=dF5,\n dH5_=dH5,dM5_=dM5,dN5_=dN5,dO5_=dO 5,dP5_=dP5,dQ5_=dQ5,dR5_=dR5,dS5_=dS5,\n d16_=d16,d86_=d86,d96 _=d96,dA6_=dA6,dB6_=dB6,dC6_=dC6,dD6_=dD6,dE6_=dE6,dF6_=dF6,\n \+ dH6_=dH6,dM6_=dM6,dN6_=dN6,dO6_=dO6,dP6_=dP6,dQ6_=dQ6,dR6_=dR6,dS6_=d S6,\n d17_=d17,d87_=d87,d97_=d97,dA7_=dA7,dB7_=dB7,dC7_=dC7,dD 7_=dD7,dE7_=dE7,dF7_=dF7,\n dH7_=dH7,dM7_=dM7,dN7_=dN7,dO7_=dO 7,dP7_=dP7,dQ7_=dQ7,dR7_=dR7,dS7_=dS7,\n d18_=d18,d88_=d88,d98 _=d98,dA8_=dA8,dB8_=dB8,dC8_=dC8,dD8_=dD8,dE8_=dE8,dF8_=dF8,\n \+ dH8_=dH8,dM8_=dM8,dN8_=dN8,dO8_=dO8,dP8_=dP8,dQ8_=dQ8,dR8_=dR8,dS8_=d S8,\n d19_=d19,d89_=d89,d99_=d99,dA9_=dA9,dB9_=dB9,dC9_=dC9,dD 9_=dD9,dE9_=dE9,dF9_=dF9,\n dH9_=dH9,dM9_=dM9,dN9_=dN9,dO9_=dO 9,dP9_=dP9,dQ9_=dQ9,dR9_=dR9,dS9_=dS9\};\n if outpt='rkinterp' then\n soln := [soln,[xk,yk]];\n return subs(`u nion`(eqns,\{SOLN_=soln\}),eval(rk89interp2));\n elif outpt='d erivinterp' then\n soln := [soln,[xk,uk]];\n ret urn subs(`union`(eqns,\{SOLN_=soln\}),eval(rk89interp2));\n el se # outpt='interp_pair'\n soln := [soln,[xk,yk]];\n \+ soln2 := [soln2,[xk,uk]];\n return subs(`union`(eqns, \{SOLN_=soln\}),eval(rk89interp2)),\n subs(`union`(e qns,\{SOLN_=soln2\}),eval(rk89interp2));\n end if;\n end \+ if;\n else\n soln := [soln,[xk,yk,uk]];\n Digits := saveDi gits;\n if outpt='points' then\n return evalf([seq([soln[ i,1],soln[i,2]],i=1..nops(soln))]); \n elif outpt='derivpts' then\n return evalf([seq([soln[i,1],soln[i,3]],i=1..nops(soln ))]);\n elif outpt='points_pair' then\n return evalf([seq ([soln[i,1],soln[i,2]],i=1..nops(soln))]),\n evalf([seq([sol n[i,1],soln[i,3]],i=1..nops(soln))]); \n else # outpt='endpt'\n \+ return soln[nops(soln),2];\n end if;\n end if;\nend pro c: # of de2rk89" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 1 ";" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 0 9 "desolveK2" }{TEXT -1 10 ": \+ examples" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 9 "Example 1" }{TEXT 277 44 " .. a combined o rder 4-5 Runge-Kutta method " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{PARA 0 "" 0 "" {TEXT -1 34 "Consider the initial value probl em" }}{PARA 257 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "d^2*y/(d*x^2)+ 3;" "6#,&*(%\"dG\"\"#%\"yG\"\"\"*&F%F(*$%\"xGF&F(!\"\"F(\"\"$F(" } {TEXT -1 1 " " }{XPPEDIT 18 0 "dy/dx+2*y = sin(x);" "6#/,&*&%#dyG\"\" \"%#dxG!\"\"F'*&\"\"#F'%\"yGF'F'-%$sinG6#%\"xG" }{TEXT -1 3 ", " } {XPPEDIT 18 0 "y(0) = 2" "6#/-%\"yG6#\"\"!\"\"#" }{TEXT -1 3 ", " } {XPPEDIT 18 0 "`y '`(0) = 1;" "6#/-%$y~'G6#\"\"!\"\"\"" }{TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 59 "First we find an analytical solution and set up a function " }{TEXT 272 1 "g" }{TEXT -1 17 " to evaluate i t. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 120 "de := diff(y(x),x$2)+3*diff(y(x),x)+2*y(x)=sin(x);\n ic := y(0)=2,D(y)(0)=1;\ndsolve(\{de,ic\},y(x));\ng := unapply(rhs(%), x):" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-%%diffG6$-%\"yG6#%\"x G-%\"$G6$F-\"\"#\"\"\"*&\"\"$F2-F(6$F*F-F2F2*&F1F2F*F2F2-%$sinGF," }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\"yG6#\"\"!\"\"#/--%\"DG6#F (F)\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/-%\"yG6#%\"xG,**&#\"\"$ \"#5\"\"\"-%$cosGF&F-!\"\"*&#F-F,F--%$sinGF&F-F-*&#\"#;\"\"&F--%$expG6 #,$*&\"\"#F-F'F-F0F-F0*&#\"#6F>F--F:6#,$F'F0F-F-" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 21 "Giving the procedure " } {TEXT 0 9 "desolveK2" }{TEXT -1 13 " the option \"" }{TEXT 272 11 "met hod=rk45" }{TEXT -1 74 "\" provides a continuous solution using an ada ptive 4-5 Runge-Kutta method." }}{PARA 0 "" 0 "" {TEXT -1 148 "Interpo lation between the points of a discrete solution is provided by comple ting a single Runge-Kutta step or polynomial interpolation may be used ." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 218 "de := diff(y(x),x$2)+3*diff(y(x),x)+2*y(x)=sin(x);\n ic := y(0)=2,D(y)(0)=1;\ngn := desolveK2(\{de,ic\},x=-1..2,method=rk45 ,output=rkstep);\nplot([g(x),'gn'(x)],x=-1..2,color=[red,green],thickn ess=[1,2],labels=[`x`,`y(x)`]);" }{TEXT -1 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-%%diffG6$-%\"yG6#%\"xG-%\"$G6$F-\"\"#\"\"\"*& \"\"$F2-F(6$F*F-F2F2*&F1F2F*F2F2-%$sinGF," }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\"yG6#\"\"!\"\"#/--%\"DG6#F(F)\"\"\"" }} {PARA 13 "" 1 "" {GLPLOT2D 361 339 339 {PLOTDATA 2 "6&-%'CURVESG6%7X7$ $!\"\"\"\"!$!3xmXH]smS*)!#<7$$!3u****\\(oUIn*!#=$!3OzC$QjD7$zF-7$$!3[* ****\\P&3Y$*F1$!3NYuh`^y+qF-7$$!3I**\\il:gh!*F1$!3g\"*zn?F>^iF-7$$!3C+ +Dcx6x()F1$!3%p'e^'fLQb&F-7$$!3%)**\\Pff=d%)F1$!3U$ejc@,!G[F-7$$!3b++] iTDP\")F1$!3uh()41G!*fTF-7$$!3*)******\\;?:yF1$!3JC#eQ(ejTNF-7$$!3A*** *\\P\"\\J\\(F1$!3O@LY(p-S(HF-7$$!3U**\\P%GFE<(F1$!3owfcEv!eX#F-7$$!3g* **\\7V0@&oF1$!3IAoF-7$$!3w++DcexdiF1$!3C#)QCR,'[?\"F-7$$!3j*** \\i+#QUcF1$!3))eiNtv,%G&F17$$!3$****\\i!3%f+&F1$\"3uw[$)z=&GL&!#>7$$!3 ;++D\"oS:P%F1$\"3*)RF7&3USI&F17$$!3h*****\\<#)*=PF1$\"3A\">\\_NWLH*F17 $$!3#*****\\(G3U9$F1$\"3ti\"*))p^W97F-7$$!3Y*****\\-\\r\\#F1$\"3C*o$e1 %==Z\"F-7$$!3?+++vGVZ=F1$\"3S'\\rK`lBn\"F-7$$!3_*****\\(4J@7F1$\"3,=F-7$$!3;,+]iIKFlFjo$\"30\"f9n!>&)=>F-7$$\"3(R,++]siL#!#?$\"3t wmN6sJ-?F-7$$\"3K,+++!R5'fFjo$\"3Wcu*\\&f&y/#F-7$$\"3!)***\\P/QBE\"F1$ \"3-ACC]Yqw?F-7$$\"39******\\\"o?&=F1$\"3-Vo\"y.QU3#F-7$$\"3k++vVb4*\\ #F1$\"3+'y*R*p$fw?F-7$$\"3w++DJ'=_6$F1$\"3)H4N`YBn0#F-7$$\"3#4++vVy!eP F1$\"3v\"4$p:[aD?F-7$$\"3'4+](=WU[VF1$\"39QFs_\\\\*)>F-7$$\"3s****\\7B >&)\\F1$\"3*4k,XO\"[W>F-7$$\"3w***\\P>:mk&F1$\"3!)R*3/p9F*=F-7$$\"3d** *\\iv&QAiF1$\"3^X[$yg)pW=F-7$$\"3j++]PPBWoF1$\"3'ozrKO-3z\"F-7$$\"3%*) *****\\Nm'[(F1$\"3q`QO)oYQt\"F-7$$\"36****\\(yb^6)F1$\"3WL=NZzmx;F-7$$ \"3')***\\PMaKs)F1$\"3fJKK,2\\B;F-7$$\"3a****\\7TW)R*F1$\"3Gf.PA'>Tc\" F-7$$\"3z*****\\@80+\"F-$\"3Q&RsL(Q)=^\"F-7$$\"31++]7,Hl5F-$\"3w:n)RH7 wX\"F-7$$\"3()**\\P4w)R7\"F-$\"3&Q?AP@#**49F-7$$\"3;++]x%f\")=\"F-$\"3 AFBW'H.)f8F-7$$\"3!)**\\P/-a[7F-$\"39&)QJ)[yWJ\"F-7$$\"3/+](=Yb;J\"F-$ \"3IF,8;D9p7F-7$$\"3')****\\i@Ot8F-$\"3U;Y)e+ooA\"F-7$$\"3')**\\PfL'zV \"F-$\"3IIkQp6y%=\"F-7$$\"3>+++!*>=+:F-$\"3ob4-/gJY6F-7$$\"3-++DE&4Qc \"F-$\"3oR7I9]-46F-7$$\"3=+]P%>5pi\"F-$\"3=,v`05,u5F-7$$\"39+++bJ*[o\" F-$\"3IxdzJw[V5F-7$$\"33++Dr\"[8v\"F-$\"3v])GY#QM55F-7$$\"3++++Ijy5=F- $\"3h7uM,GiA)*F17$$\"31+]P/)fT(=F-$\"33$[R?s6$Q&*F17$$\"31+]i0j\"[$>F- $\"3OG_C&4b'z#*F17$$\"\"#F*$\"3c88/q!y],*F1-%'COLOURG6&%$RGBG$\"*++++ \"!\")$F*F*F[]l-%*THICKNESSG6#\"\"\"-F$6%7X7$F($!+^smS*)!\"*7$$!+!pUIn *!#5$!+TcAJzFf]l7$$!+v`3Y$*Fj]l$!+a^y+qFf]l7$$!+l:gh!*Fj]l$!+>F>^iFf]l 7$$!+cx6x()Fj]l$!+'fLQb&Ff]l7$$!+gf=d%)Fj]l$!+<7+G[Ff]l7$$!+iTDP\")Fj] l$!+0G!*fTFf]l7$$!+];?:yFj]l$!+uejTNFf]l7$$!+Q\"\\J\\(Fj]l$!+)p-S(HFf] l7$$!+&GFE<(Fj]l$!+Gv!eX#Ff]l7$$!+Ja5_oFj]l$!+lH&4)>Ff]l7$$!+cexdiFj]l $!+R,'[?\"Ff]l7$$!+1?QUcFj]l$!+rv,%G&Fj]l7$$!+13%f+&Fj]l$\"+&*=&GL&!#6 7$$!+\"oS:P%Fj]l$\"+'3USI&Fj]l7$$!+v@)*=PFj]l$\"+bVM$H*Fj]l7$$!+)G3U9$ Fj]l$\"+q^W97Ff]l7$$!+D!\\r\\#Fj]l$\"+2%==Z\"Ff]l7$$!+vGVZ=Fj]l$\"+LbO s;Ff]l7$$!+v4J@7Fj]l$\"+w69>=Ff]l7$$!*1Bt_'Fj]l$\"+2>&)=>Ff]l7$$\"(siL #Ff]l$\"+6sJ-?Ff]l7$$\")!R5'fFf]l$\"+bf&y/#Ff]l7$$\"*/QBE\"Ff]l$\"+]Yq w?Ff]l7$$\"*:o?&=Ff]l$\"+Q!QU3#Ff]l7$$\"*a&4*\\#Ff]l$\"+*p$fw?Ff]l7$$ \"*j=_6$Ff]l$\"+lMsc?Ff]l7$$\"*Wy!ePFf]l$\"+;[aD?Ff]l7$$\"*UC%[VFf]l$ \"+`\\\\*)>Ff]l7$$\"*J#>&)\\Ff]l$\"+l8[W>Ff]l7$$\"*>:mk&Ff]l$\"+\"p9F* =Ff]l7$$\"*w&QAiFf]l$\"+2')pW=Ff]l7$$\"*uLU%oFf]l$\"+jB!3z\"Ff]l7$$\"* bjm[(Ff]l$\"+)oYQt\"Ff]l7$$\"*zb^6)Ff]l$\"+Zzmx;Ff]l7$$\"*MaKs)Ff]l$\" +-2\\B;Ff]l7$$\"*6W%)R*Ff]l$\"+B'>Tc\"Ff]l7$$\"+:K^+5Ff]l$\"+tQ)=^\"Ff ]l7$$\"+7,Hl5Ff]l$\"+%H7wX\"Ff]l7$$\"+4w)R7\"Ff]l$\"+9A**49Ff]l7$$\"+y %f\")=\"Ff]l$\"+'H.)f8Ff]l7$$\"+/-a[7Ff]l$\"+*[yWJ\"Ff]l7$$\"+ial68Ff] l$\"+;D9p7Ff]l7$$\"+i@Ot8Ff]l$\"+1!ooA\"Ff]l7$$\"+fL'zV\"Ff]l$\"+q6y%= \"Ff]l7$$\"+!*>=+:Ff]l$\"+/gJY6Ff]l7$$\"+E&4Qc\"Ff]l$\"+9]-46Ff]l7$$\" +%>5pi\"Ff]l$\"+15,u5Ff]l7$$\"+bJ*[o\"Ff]l$\"+Kw[V5Ff]l7$$\"+r\"[8v\"F f]l$\"+DQM55Ff]l7$$\"+Ijy5=Ff]l$\"+,GiA)*Fj]l7$$\"+/)fT(=Ff]l$\"+CFf]l$\"+%4b'z#*Fj]l7$F`\\l$\"+q!y],*Fj]l-Fe\\l6&Fg\\ lF[]lFh\\lF[]l-F]]l6#Fa\\l-%+AXESLABELSG6$%\"xG%%y(x)G-%%VIEWG6$;F(F` \\l%(DEFAULTG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "xx := sqrt(3);\nevalf(gn(xx));\neva lf(g(xx));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#xxG*$\"\"$#\"\"\"\"\" #" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"+)ps(>5!\"*" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#$\"+)ps(>5!\"*" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 79 "A different format for a continuous solut ion is available through the option ''" }{TEXT 272 15 "output=rkinterp " }{TEXT -1 87 "'', in which the interpolation is provided without any new evaluations of the function " }{XPPEDIT 18 0 "F(x,y,dy/dx)" "6#-% \"FG6%%\"xG%\"yG*&%#dyG\"\"\"%#dxG!\"\"" }{TEXT -1 42 " obtained from \+ the differential equation. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 224 "de := diff(y(x),x$2)+3*diff(y(x),x )+2*y(x)=sin(x);\nic := y(0)=2,D(y)(0)=1;\nhn := desolveK2(\{de,ic\},x =-0.8..2,method=rk45,output=rkinterp);\nplot([g(x),'hn'(x)],x=-0.8..2, color=[red,green],thickness=[1,2],labels=[`x`,`y(x)`]);" }{TEXT -1 0 " " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-%%diffG6$-%\"yG6#%\"xG-% \"$G6$F-\"\"#\"\"\"*&\"\"$F2-F(6$F*F-F2F2*&F1F2F*F2F2-%$sinGF," }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\"yG6#\"\"!\"\"#/--%\"DG6#F (F)\"\"\"" }}{PARA 13 "" 1 "" {GLPLOT2D 447 349 349 {PLOTDATA 2 "6&-%' CURVESG6%7X7$$!3U+++++++!)!#=$!3O'*)\\KFw**)Q!#<7$$!3WnmmT)R[p(F*$!3jm *e@.jPK$F-7$$!3OLLL$oz'*Q(F*$!3JD\")=syy,GF-7$$!3Q++Dh9;CrF*$!3W))fkM= I\"Q#F-7$$!3Snm;RKkeoF*$!3s'RYZKE-*>F-7$$!3[,+vG-/glF*$!3Ool)y'4S$e\"F -7$$!3WMLL=sVhiF*$!3CPz^9UD47F-7$$!3UMLLt[&3'fF*$!3XDm2/$GUj)F*7$$!3QM LLGDFgcF*$!3;f[_*>]SY&F*7$$!3'3+]()z=6O&F*$!3in>4$R2cd#F*7$$!3Mnm;p]'> 1&F*$\"3G%GNZV$)R\\'!#?7$$!3?ML$eYds]%F*$\"3q]*Gmmb@O%F*7$$!36,+]s)*)G $RF*$\"3cYPu$>c&z!)F*7$$!3XML$e3y)QLF*$\"3OHr!yacU7\"F-7$$!3o++]-8xYFF *$\"3=N]-tW()z8F-7$$!3>nmm'p;x8#F*$\"3!z&oP:#H$*e\"F-7$$!3$RLL$o5E,;F* $\"3$o47a!p4N$\"3Yt9r?u%>'=F-7$$!3%H,++]t$4RF\\q$ \"3/kmwLMNb>F-7$$\"3&[*******3VM>F\\q$\"3_?6sj%e!=?F-7$$\"30]mmT^;TsF \\q$\"3#GD#=#3u_0#F-7$$\"3%=LLLaQ^N\"F*$\"3%=&=!)=S#*y?F-7$$\"3UKLLtpp *)=F*$\"3u'=Z&o%=U3#F-7$$\"3I(***\\2b^6DF*$\"3ciWV4`Iw?F-7$$\"3!4LLLFI >1$F*$\"3QY+FYB')e?F-7$$\"3Q)***\\2D#em$F*$\"3E.J,iSeI?F-7$$\"3j)***\\ A2(3C%F*$\"3sMOc$3:l*>F-7$$\"3oJLL3K(3%[F*$\"3yb-lcY:b>F-7$$\"3uKL$3zi =R&F*$\"3cf.42Y:8>F-7$$\"3_lmm\"\\zh)fF*$\"39(eJ)f[mk=F-7$$\"3Pkm;9v]. mF*$\"3Or[)>=e=\"=F-7$$\"3y'***\\sL*39(F*$\"3=bt)oI4Yw\"F-7$$\"3>lmm@[ G@xF*$\"3,E%R%3**)Gr\"F-7$$\"3!o*****zf)3K)F*$\"3;3ez\\GHf;F-7$$\"3@'* ***\\tyu!*)F*$\"3(oic#Gw=2;F-7$$\"3C)***\\(QP]Z*F*$\"3yqu*\\[fub\"F-7$ $\"3v****\\]9_55F-$\"3Y6LBk-R.:F-7$$\"3#GLLtmXr1\"F-$\"3M:2#=E$3c9F-7$ $\"3')*****\\5/w7\"F-$\"3\\!)=S&Q5rS\"F-7$$\"3EmmTN%)Q#=\"F-$\"3W)*[$) *>LUO\"F-7$$\"3#)******y@GU7F-$\"36ePI9#)3>8F-7$$\"3wKL3Cvj)H\"F-$\"3% o(pcw.Ky7F-7$$\"3))***\\x4XvN\"F-$\"3:F0dL/^P7F-7$$\"33LLL=!Q^T\"F-$\" 3AA>&QH*R*>\"F-7$$\"3c***\\(oCVv9F-$\"3yq9\")4lPh6F-7$$\"3ummm!>.N`\"F -$\"3*[2KDULl7\"F-7$$\"3Kmm;\"*)))Gf\"F-$\"37PVFt2l#4\"F-7$$\"3)HL$3[G y^;F-$\"3#HJ&3.'G21\"F-7$$\"3))*****zF+fq\"F-$\"3A\\?cpN!G.\"F-7$$\"3K LL$)f\\#zw\"F-$\"3*GjrBGoB+\"F-7$$\"3Rmmmu0SB=F-$\"3;2(ow'p#[w*F*7$$\" 3%)***\\2:\\D)=F-$\"3)f%)R:Uy<]*F*7$$\"3m***\\_)=;R>F-$\"3ej%G'*o*fh#* F*7$$\"\"#\"\"!$\"3c88/q!y],*F*-%'COLOURG6&%$RGBG$\"*++++\"!\")$Fa\\lF a\\lF[]l-%*THICKNESSG6#\"\"\"-F$6%7X7$$Fj\\l!\"\"$!+ti(**)Q!\"*7$$!+S) R[p(!#5$!+HIwBLFh]l7$$!+$oz'*Q(F\\^l$!+syy,GFh]l7$$!+g9;CrF\\^l$!+L=I \"Q#Fh]l7$$!+RKkeoF\\^l$!+DjA!*>Fh]l7$$!+I-/glF\\^l$!+q4S$e\"Fh]l7$$!+ =sVhiF\\^l$!+9UD47Fh]l7$$!+v[&3'fF\\^l$!+B$GUj)F\\^l7$$!+GDFgcF\\^l$!+ (>]SY&F\\^l7$$!++)=6O&F\\^l$!+0ugvDF\\^l7$$!+p]'>1&F\\^l$\"+@N)R\\'!#7 7$$!+muD2XF\\^l$\"+lc:iVF\\^l7$$!+t)*)G$RF\\^l$\"+!>c&z!)F\\^l7$$!+'3y )QLF\\^l$\"+[lDC6Fh]l7$$!+.8xYFF\\^l$\"+tW()z8Fh]l7$$!+(p;x8#F\\^l$\"+ :#H$*e\"Fh]l7$$!+p5E,;F\\^l$\"+0p4N'=Fh]l 7$$!*]t$4RF\\^l$\"+MMNb>Fh]l7$$\"*!4VM>F\\^l$\"+k%e!=?Fh]l7$$\"*9l6C(F \\^l$\"+#3u_0#Fh]l7$$\"+V&Q^N\"F\\^l$\"+>S#*y?Fh]l7$$\"+tpp*)=F\\^l$\" +p%=U3#Fh]l7$$\"*^::^#Fh]l$\"+4`Iw?Fh]l7$$\"*FI>1$Fh]l$\"+YB')e?Fh]l7$ $\"*^Aem$Fh]l$\"+iSeI?Fh]l7$$\"*sq3C%Fh]l$\"+%3:l*>Fh]l7$$\"*@t3%[Fh]l $\"+dY:b>Fh]l7$$\"*zi=R&Fh]l$\"+2Y:8>Fh]l7$$\"*\\zh)fFh]l$\"+g[mk=Fh]l 7$$\"*^2Ng'Fh]l$\"+#=e=\"=Fh]l7$$\"*P$*39(Fh]l$\"+2$4Yw\"Fh]l7$$\"*#[G @xFh]l$\"+4**)Gr\"Fh]l7$$\"*)f)3K)Fh]l$\"+]GHf;Fh]l7$$\"*tyu!*)Fh]l$\" +Hw=2;Fh]l7$$\"*RP]Z*Fh]l$\"+&[fub\"Fh]l7$$\"+]9_55Fh]l$\"+l-R.:Fh]l7$ $\"+nc9n5Fh]l$\"+iK3c9Fh]l7$$\"+0TgF6Fh]l$\"+&Q5rS\"Fh]l7$$\"+N%)Q#=\" Fh]l$\"++KBk8Fh]l7$$\"+z@GU7Fh]l$\"+9#)3>8Fh]l7$$\"+Cvj)H\"Fh]l$\"+x.K y7Fh]l7$$\"+)4XvN\"Fh]l$\"+L/^P7Fh]l7$$\"+=!Q^T\"Fh]l$\"+%H*R*>\"Fh]l7 $$\"+pCVv9Fh]l$\"+5lPh6Fh]l7$$\"+\">.N`\"Fh]l$\"+AM`E6Fh]l7$$\"+\"*))) Gf\"Fh]l$\"+t2l#4\"Fh]l7$$\"+[Gy^;Fh]l$\"+.'G21\"Fh]l7$$\"+y-!fq\"Fh]l $\"+qN!G.\"Fh]l7$$\"+g\\#zw\"Fh]l$\"+#GoB+\"Fh]l7$$\"+v0SB=Fh]l$\"+mp# [w*F\\^l7$$\"+^\"\\D)=Fh]l$\"+?%y<]*F\\^l7$$\"+&)=;R>Fh]l$\"+\"p*fh#*F \\^l7$F_\\l$\"+q!y],*F\\^l-Fe\\l6&Fg\\lF[]lFh\\lF[]l-F]]l6#F`\\l-%+AXE SLABELSG6$%\"xG%%y(x)G-%%VIEWG6$;Fd]lF_\\l%(DEFAULTG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" }}}} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 85 "The deriv ative of the solution can also be obtained with the either of the opti ons ''" }{TEXT 272 16 "output=derivstep" }{TEXT -1 8 "'' or ''" } {TEXT 272 18 "output=derivinterp" }{TEXT -1 3 "''." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 221 "de := diff( y(x),x$2)+3*diff(y(x),x)+2*y(x)=sin(x);\nic := y(0)=2,D(y)(0)=1;\ndgn \+ := desolveK2(\{de,ic\},x=-0.8..2,output=derivstep);\nplot([D(g)(x),'dg n'(x)],x=-0.8..2,color=[brown,coral],thickness=[1,2],labels=[`x`,`y'(x )`]);" }{TEXT -1 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-%%di ffG6$-%\"yG6#%\"xG-%\"$G6$F-\"\"#\"\"\"*&\"\"$F2-F(6$F*F-F2F2*&F1F2F*F 2F2-%$sinGF," }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\"yG6#\"\"! \"\"#/--%\"DG6#F(F)\"\"\"" }}{PARA 11 "" 1 "" {TEXT -1 0 "" } {GLPLOT2D 484 428 428 {PLOTDATA 2 "6&-%'CURVESG6%7W7$$!3U+++++++!)!#=$ \"3T-&3`iR8$>!#;7$$!3WnmmT)R[p(F*$\"3_9')[>&48y\"F-7$$!3OLLL$oz'*Q(F*$ \"3B/r^d&)HT;F-7$$!3Q++Dh9;CrF*$\"3U]kI7$Rr_\"F-7$$!3Snm;RKkeoF*$\"3![ tx:_-(>9F-7$$!3[,+vG-/glF*$\"3XW&f_k_kI\"F-7$$!3WMLL=sVhiF*$\"3&[Q()f6 Y2?\"F-7$$!3UMLLt[&3'fF*$\"3\\3y#zB([,6F-7$$!3QMLLGDFgcF*$\"39'fW'*zb* 35F-7$$!3Mnm;p]'>1&F*$\"375@n%e=;V)!#<7$$!3?ML$eYds]%F*$\"37l1\\!>t;4( Fen7$$!36,+]s)*)G$RF*$\"3#)))HTdQ!3)eFen7$$!3XML$e3y)QLF*$\"3Ct6$3^l`z %Fen7$$!3o++]-8xYFF*$\"3u$o\">mx&>'QFen7$$!3>nmm'p;x8#F*$\"3q'zEpR=v.$ Fen7$$!3$RLL$o5E,;F*$\"3@e2f?]g6CFen7$$!317+++4Rt**!#>$\"3$>*)G=LGc!=F en7$$!3%H,++]t$4RFgp$\"3;d)3g+2%*G\"Fen7$$\"3&[*******3VM>Fgp$\"3c!>]! [#pFo)F*7$$\"30]mmT^;TsFgp$\"3S25e(z)\\FaF*7$$\"3%=LLLaQ^N\"F*$\"33CM/ >`as@F*7$$\"3UKLLtpp*)=F*$!3!*)RZ,m\")[E\"Fgp7$$\"3I(***\\2b^6DF*$!3&> aIj(p*=M#F*7$$\"3!4LLLFI>1$F*$!3oW&4wR&3WRF*7$$\"3Q)***\\2D#em$F*$!3!e lmm@[G@xF*$!3o-;cdJ0S*)F*7$$\"3!o*****zf)3K)F*$!3CIG fHH:B*)F*7$$\"3@'****\\tyu!*)F*$!3;I&z>h85$))F*7$$\"3C)***\\(QP]Z*F*$! 3wG)Gd)Q-%o)F*7$$\"3v****\\]9_55Fen$!3)*[N&HSaxY)F*7$$\"3#GLLtmXr1\"Fe n$!3d]7c)\\piB)F*7$$\"3')*****\\5/w7\"Fen$!3=.X!3f]*fzF*7$$\"3EmmTN%)Q #=\"Fen$!39re5.:m!p(F*7$$\"3#)******y@GU7Fen$!3/V\"4*4a[#Q(F*7$$\"3wKL 3Cvj)H\"Fen$!3G7:uw`\"[3(F*7$$\"3))***\\x4XvN\"Fen$!35N3n@@iqnF*7$$\"3 3LLL=!Q^T\"Fen$!3?$pNj.DXY'F*7$$\"3c***\\(oCVv9Fen$!31I\\+]g&*[hF*7$$ \"3ummm!>.N`\"Fen$!3C!4JP(Qv_eF*7$$\"3Kmm;\"*)))Gf\"Fen$!3W`[*)>zAgbF* 7$$\"3)HL$3[Gy^;Fen$!3y9KQc+a#G&F*7$$\"3))*****zF+fq\"Fen$!3xA(y-O$oR] F*7$$\"3KLL$)f\\#zw\"Fen$!3U[?'*yX:xZF*7$$\"3Rmmmu0SB=Fen$!3!RL6y*Q`dX F*7$$\"3%)***\\2:\\D)=Fen$!3l]61^K%)RVF*7$$\"3m***\\_)=;R>Fen$!3o\"[^2 (Q\"y9%F*7$$\"\"#\"\"!$!3k2[?XU\\fRF*-%'COLOURG6&%$RGBG$\")#)eqk!\")$ \"))eqk\"Fe\\lFf\\l-%*THICKNESSG6#\"\"\"-F$6%7W7$$Fe\\l!\"\"$\"+D'R8$> Fe\\l7$$!+S)R[p(!#5$\"+>&48y\"Fe\\l7$$!+$oz'*Q(Fg]l$\"+d&)HT;Fe\\l7$$! +g9;CrFg]l$\"+7$Rr_\"Fe\\l7$$!+RKkeoFg]l$\"+ADq>9Fe\\l7$$!+I-/glFg]l$ \"+YEX18Fe\\l7$$!+=sVhiFg]l$\"+;hu+7Fe\\l7$$!+v[&3'fFg]l$\"+Qs[,6Fe\\l 7$$!+GDFgcFg]l$\"++e&*35Fe\\l7$$!+p]'>1&Fg]l$\"+%e=;V)!\"*7$$!+muD2XFg ]l$\"+\">t;4(Fb`l7$$!+t)*)G$RFg]l$\"+eQ!3)eFb`l7$$!+'3y)QLFg]l$\"+6bO& z%Fb`l7$$!+.8xYFFg]l$\"+nx&>'QFb`l7$$!+(p;x8#Fg]l$\"+(R=v.$Fb`l7$$!+p5 E,;Fg]l$\"+@]g6CFb`l7$$!*!4Rt**Fg]l$\"+K$Gc!=Fb`l7$$!*]t$4RFg]l$\"+1qS *G\"Fb`l7$$\"*!4VM>Fg]l$\"+[#pFo)Fg]l7$$\"*9l6C(Fg]l$\"+*z)\\FaFg]l7$$ \"+V&Q^N\"Fg]l$\"+@`as@Fg]l7$$\"+tpp*)=Fg]l$!+Z;)[E\"!#67$$\"*^::^#Fb` l$!+%)p*=M#Fg]l7$$\"*FI>1$Fb`l$!+*Q&3WRFg]l7$$\"*^Aem$Fb`l$!+AS)oO&Fg] l7$$\"*sq3C%Fb`l$!+>9vRkFg]l7$$\"*@t3%[Fb`l$!+ENK2tFg]l7$$\"*zi=R&Fb`l $!+D8H4zFg]l7$$\"*\\zh)fFb`l$!+C7)*z$)Fg]l7$$\"*^2Ng'Fb`l$!+s`A-()Fg]l 7$$\"*P$*39(Fb`l$!+b#4f'))Fg]l7$$\"*#[G@xFb`l$!+eJ0S*)Fg]l7$$\"*)f)3K) Fb`l$!+IH:B*)Fg]l7$$\"*tyu!*)Fb`l$!+8O,J))Fg]l7$$\"*RP]Z*Fb`l$!+&)Q-%o )Fg]l7$$\"+]9_55Fb`l$!+0Wvn%)Fg]l7$$\"+nc9n5Fb`l$!++&piB)Fg]l7$$\"+0Tg F6Fb`l$!+\"f]*fzFg]l7$$\"+N%)Q#=\"Fb`l$!+0:m!p(Fg]l7$$\"+z@GU7Fb`l$!+5 a[#Q(Fg]l7$$\"+Cvj)H\"Fb`l$!+x`\"[3(Fg]l7$$\"+)4XvN\"Fb`l$!+?@iqnFg]l7 $$\"+=!Q^T\"Fb`l$!+Q]_kkFg]l7$$\"+pCVv9Fb`l$!+[g&*[hFg]l7$$\"+\">.N`\" Fb`l$!+sQv_eFg]l7$$\"+\"*)))Gf\"Fb`l$!+?zAgbFg]l7$$\"+[Gy^;Fb`l$!+c+a# G&Fg]l7$$\"+y-!fq\"Fb`l$!+gLoR]Fg]l7$$\"+g\\#zw\"Fb`l$!+yX:xZFg]l7$$\" +v0SB=Fb`l$!+'*Q`dXFg]l7$$\"+^\"\\D)=Fb`l$!+]K%)RVFg]l7$$\"+&)=;R>Fb`l $!+rQ\"y9%Fg]l7$Fj[l$!+XU\\fRFg]l-F`\\l6&Fb\\l$\"*++++\"Fe\\l$\")AR!) \\Fe\\l$F\\\\lF\\\\l-Fi\\l6#F[\\l-%+AXESLABELSG6$%\"xG%&y'(x)G-%%VIEWG 6$;F`]lFj[l%(DEFAULTG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 82 "The solution and its derivative can be ob tained simultaneously with the options ''" }{TEXT 272 21 "output=proce dure_pair" }{TEXT -1 9 "'' and ''" }{TEXT 272 18 "output=interp_pair" }{TEXT -1 4 "''. " }}{PARA 0 "" 0 "" {TEXT -1 2 "''" }{TEXT 272 16 "ou tput=proc_pair" }{TEXT -1 22 "'' is equivalent to ''" }{TEXT 272 21 "o utput=procedure_pair" }{TEXT -1 4 "''. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 199 "de := diff(y(x),x$2)+3 *diff(y(x),x)+2*y(x)=sin(x);\nic := y(0)=2,D(y)(0)=1;\n(gn,dgn) := des olveK2(\{de,ic\},x=-0.8..2,output=procedure_pair);\nplot(['gn'(x),'dgn '(x)],x=-0.8..2,-4..10,color=[red,brown]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-%%diffG6$-%\"yG6#%\"xG-%\"$G6$F-\"\"#\"\"\"*& \"\"$F2-F(6$F*F-F2F2*&F1F2F*F2F2-%$sinGF," }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\"yG6#\"\"!\"\"#/--%\"DG6#F(F)\"\"\"" }} {PARA 13 "" 1 "" {GLPLOT2D 476 476 476 {PLOTDATA 2 "6&-%'CURVESG6$7X7$ $!\")!\"\"$!+ti(**)Q!\"*7$$!+S)R[p(!#5$!+HIwBLF-7$$!+$oz'*Q(F1$!+syy,G F-7$$!+g9;CrF1$!+L=I\"Q#F-7$$!+RKkeoF1$!+CjA!*>F-7$$!+I-/glF1$!+q4S$e \"F-7$$!+=sVhiF1$!+9UD47F-7$$!+v[&3'fF1$!+A$GUj)F17$$!+GDFgcF1$!+'>]SY &F17$$!++)=6O&F1$!+0ugvDF17$$!+p]'>1&F1$\"+#e$)R\\'!#77$$!+muD2XF1$\"+ mc:iVF17$$!+t)*)G$RF1$\"+\">c&z!)F17$$!+'3y)QLF1$\"+[lDC6F-7$$!+.8xYFF 1$\"+tW()z8F-7$$!+(p;x8#F1$\"+:#H$*e\"F-7$$!+p5E,;F1$\"+0p4N'=F-7$$!*]t$4RF1$\"+MMNb>F-7$$\"*!4VM>F1$\"+k%e!=?F-7$$ \"*9l6C(F1$\"+#3u_0#F-7$$\"+V&Q^N\"F1$\"+>S#*y?F-7$$\"+tpp*)=F1$\"+p%= U3#F-7$$\"*^::^#F-$\"+4`Iw?F-7$$\"*FI>1$F-$\"+YB')e?F-7$$\"*^Aem$F-$\" +iSeI?F-7$$\"*sq3C%F-$\"+%3:l*>F-7$$\"*@t3%[F-$\"+dY:b>F-7$$\"*zi=R&F- $\"+2Y:8>F-7$$\"*\\zh)fF-$\"+g[mk=F-7$$\"*^2Ng'F-$\"+#=e=\"=F-7$$\"*P$ *39(F-$\"+2$4Yw\"F-7$$\"*#[G@xF-$\"+4**)Gr\"F-7$$\"*)f)3K)F-$\"+]GHf;F -7$$\"*tyu!*)F-$\"+Hw=2;F-7$$\"*RP]Z*F-$\"+&[fub\"F-7$$\"+]9_55F-$\"+l -R.:F-7$$\"+nc9n5F-$\"+iK3c9F-7$$\"+0TgF6F-$\"+&Q5rS\"F-7$$\"+N%)Q#=\" F-$\"++KBk8F-7$$\"+z@GU7F-$\"+9#)3>8F-7$$\"+Cvj)H\"F-$\"+x.Ky7F-7$$\"+ )4XvN\"F-$\"+L/^P7F-7$$\"+=!Q^T\"F-$\"+%H*R*>\"F-7$$\"+pCVv9F-$\"+5lPh 6F-7$$\"+\">.N`\"F-$\"+AM`E6F-7$$\"+\"*)))Gf\"F-$\"+t2l#4\"F-7$$\"+[Gy ^;F-$\"+.'G21\"F-7$$\"+y-!fq\"F-$\"+qN!G.\"F-7$$\"+g\\#zw\"F-$\"+#GoB+ \"F-7$$\"+v0SB=F-$\"+mp#[w*F17$$\"+^\"\\D)=F-$\"+?%y<]*F17$$\"+&)=;R>F -$\"+!p*fh#*F17$$\"\"#\"\"!$\"+q!y],*F1-%'COLOURG6&%$RGBG$\"*++++\"F)$ Fa\\lFa\\lFj\\l-F$6$7W7$F($\"+D'R8$>F)7$F/$\"+>&48y\"F)7$F5$\"+d&)HT;F )7$F:$\"+7$Rr_\"F)7$F?$\"+ADq>9F)7$FD$\"+YEX18F)7$FI$\"+;hu+7F)7$FN$\" +Qs[,6F)7$FS$\"++e&*35F)7$Fgn$\"+%e=;V)F-7$F]o$\"+\">t;4(F-7$Fbo$\"+eQ !3)eF-7$Fgo$\"+6bO&z%F-7$F\\p$\"+nx&>'QF-7$Fap$\"+(R=v.$F-7$Ffp$\"+@]g 6CF-7$F[q$\"+K$Gc!=F-7$F`q$\"+1qS*G\"F-7$Feq$\"+[#pFo)F17$Fjq$\"+*z)\\ FaF17$F_r$\"+@`as@F17$Fdr$!+Z;)[E\"!#67$Fir$!+%)p*=M#F17$F^s$!+*Q&3WRF 17$Fcs$!+AS)oO&F17$Fhs$!+>9vRkF17$F]t$!+ENK2tF17$Fbt$!+D8H4zF17$Fgt$!+ C7)*z$)F17$F\\u$!+s`A-()F17$Fau$!+b#4f'))F17$Ffu$!+eJ0S*)F17$F[v$!+IH: B*)F17$F`v$!+8O,J))F17$Fev$!+&)Q-%o)F17$Fjv$!+0Wvn%)F17$F_w$!++&piB)F1 7$Fdw$!+\"f]*fzF17$Fiw$!+0:m!p(F17$F^x$!+5a[#Q(F17$Fcx$!+x`\"[3(F17$Fh x$!+?@iqnF17$F]y$!+Q]_kkF17$Fby$!+[g&*[hF17$Fgy$!+sQv_eF17$F\\z$!+?zAg bF17$Faz$!+c+a#G&F17$Ffz$!+gLoR]F17$F[[l$!+yX:xZF17$F`[l$!+'*Q`dXF17$F e[l$!+]K%)RVF17$Fj[l$!+rQ\"y9%F17$F_\\l$!+XU\\fRF1-Fe\\l6&Fg\\l$\")#)e qkF)$\"))eqk\"F)Fbgl-%+AXESLABELSG6$Q\"x6\"Q!Fhgl-%%VIEWG6$;F(F_\\l;$! \"%Fa\\l$\"#5Fa\\l" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 38 "The underlying discrete solutions for " } {TEXT 273 1 "y" }{TEXT -1 5 " and " }{XPPEDIT 18 0 "dy/dx" "6#*&%#dyG \"\"\"%#dxG!\"\"" }{TEXT -1 35 " can be obtained with the option ''" } {TEXT 272 13 "output=points" }{TEXT -1 10 "'' and, ''" }{TEXT 272 15 " output=derivpts" }{TEXT -1 9 "'' and ''" }{TEXT 272 18 "output=points_ pair" }{TEXT -1 16 "'' respectively." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 258 "de := diff(y(x),x$2)+3*di ff(y(x),x)+2*y(x)=sin(x);\nic := y(0)=2,D(y)(0)=1;\ndpts := desolveK2( \{de,ic\},x=-1..2,method=rk45,output=derivpts):\nplot([D(g)(x),dpts],x =-1..2,color=[red,brown],style=[line,point],\n symbol= circle,labels=[`x`,`y'(x)`]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#de G/,(-%%diffG6$-%\"yG6#%\"xG-%\"$G6$F-\"\"#\"\"\"*&\"\"$F2-F(6$F*F-F2F2 *&F1F2F*F2F2-%$sinGF," }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\" yG6#\"\"!\"\"#/--%\"DG6#F(F)\"\"\"" }}{PARA 13 "" 1 "" {GLPLOT2D 579 446 446 {PLOTDATA 2 "6'-%'CURVESG6%7W7$$!\"\"\"\"!$\"3C'ex6z*49K!#;7$$ !3u****\\(oUIn*!#=$\"3-OL\"RpkO'HF-7$$!3[*****\\P&3Y$*F1$\"3Asd5=6lIFF -7$$!3I**\\il:gh!*F1$\"3(>)>F@O=TDF-7$$!3C++Dcx6x()F1$\"3)yVD@D@LO#F-7 $$!3%)**\\Pff=d%)F1$\"3w:+\\yjKw@F-7$$!3b++]iTDP\")F1$\"3(3ON/:iA+#F-7 $$!3*)******\\;?:yF1$\"3!f>(=q?DR=F-7$$!3A****\\P\"\\J\\(F1$\"3%>8'>\" \\)o(o\"F-7$$!3g***\\7V0@&oF1$\"3\"*G%[9vQrT\"F-7$$!3w++DcexdiF1$\"3]+ 6!=$[\\*>\"F-7$$!3j***\\i+#QUcF1$\"3eFt%yH^O+\"F-7$$!3$****\\i!3%f+&F1 $\"3]A*fgXw!)G)!#<7$$!3;++D\"oS:P%F1$\"3%)>q=a.:!z'Feo7$$!3h*****\\<#) *=PF1$\"3A4t12')[raFeo7$$!3#*****\\(G3U9$F1$\"33(4g?b^IZ%Feo7$$!3Y**** *\\-\\r\\#F1$\"3\"3Dd:bM%3NFeo7$$!3?+++vGVZ=F1$\"3'zo!*z!H$zo#Feo7$$!3 _*****\\(4J@7F1$\"3p'p.2P!**=?Feo7$$!3;,+]iIKFl!#>$\"3?Gq?egs,:Feo7$$ \"3(R,++]siL#!#?$\"3U>m[ld+P)*F17$$\"3K,+++!R5'fFgq$\"3;zCwe6(o;'F17$$ \"3!)***\\P/QBE\"F1$\"3!pD5ojmEh#F17$$\"39******\\\"o?&=F1$\"3y(4Q*[6. yAF]r7$$\"3k++vVb4*\\#F1$!3ROr1U*[?I#F17$$\"3w++DJ'=_6$F1$!3KfkfvV.$3% F17$$\"3#4++vVy!ePF1$!3q9jhVuWcbF17$$\"3'4+](=WU[VF1$!3CMoF0v28mF17$$ \"3s****\\7B>&)\\F1$!3w\"y)Q!=P=[(F17$$\"3w***\\P>:mk&F1$!3$3(H[jC5K\" )F17$$\"3d***\\iv&QAiF1$!3>1>@,ry@&)F17$$\"3j++]PPBWoF1$!3WE=Py*zyy)F1 7$$\"3%*)*****\\Nm'[(F1$!3$3&Q\\Ymx@*)F17$$\"36****\\(yb^6)F1$!3?%*>2d @cQ*)F17$$\"3')***\\PMaKs)F1$!3%)4-\\!>0r'))F17$$\"3a****\\7TW)R*F1$!3 BONI%=bnq)F17$$\"3z*****\\@80+\"Feo$!3@%GBtn+`])F17$$\"31++]7,Hl5Feo$! 3/hkVs$=VC)F17$$\"3()**\\P4w)R7\"Feo$!3g29#e$z;xzF17$$\"3;++]x%f\")=\" Feo$!3E3wg2]\\hwF17$$\"3!)**\\P/-a[7Feo$!3)=`SHE1(\\tF17$$\"3/+](=Yb;J \"Feo$!3+hjcoE\\:qF17$$\"3')****\\i@Ot8Feo$!3eLc'e0#H'o'F17$$\"3')**\\ PfL'zV\"Feo$!3!R2IT+++!*>=+:Feo$!3Q3/S$fL;-'F17$$\"3-++D E&4Qc\"Feo$!3Re]E2p,-dF17$$\"3=+]P%>5pi\"Feo$!3')y=0NO>)R&F17$$\"39+++ bJ*[o\"Feo$!3yQ/>2=[K^F17$$\"33++Dr\"[8v\"Feo$!3uS1=^+gX[F17$$\"3++++I jy5=Feo$!3'\\cH\"*pwhg%F17$$\"31+]P/)fT(=Feo$!3AS95thmpVF17$$\"31+]i0j \"[$>Feo$!3=B+di@)>;%F17$$\"\"#F*$!3k2[?XU\\fRF1-%'COLOURG6&%$RGBG$\"* ++++\"!\")$F*F*Fg\\l-%&STYLEG6#%%LINEG-F$6%7`v7$F($\"3I+++\"z*49KF-7$$ !3W+++&fox#)*F1$\"3'******R?L*zIF-7$$!3i*****zD#*[l*F1$\"3%)*****ph$G] HF-7$$!3s*****z-?B[*F1$\"3)******R<+d#GF-7$$!3(******4je+J*F1$\"3.+++ \">\"*fq#F-7$$!3k******o\\6Q\"*F1$\"3))******R@(4f#F-7$$!3u*****>6'\\m *)F1$\"3')******o`Y![#F-7$$!3W+++3$4_z)F1$\"31+++_)*HuBF-7$$!3>+++&)>E C')F1$\"35+++V4JsAF-7$$!3a*****\\yhOX)F1$\"33+++a,Mu@F-7$$!3a+++:lT$G) F1$\"3=+++%*[B!3#F-7$$!3]+++2U`8\")F1$\"3)******RG[)*)>F-7$$!3N+++%3BS %zF1$\"36+++>*QI!>F-7$$!33+++8;*[x(F1$\"38+++$pq'>=F-7$$!3*)*****RY[hg (F1$\"39+++tDhRh?ZQ\"F-7$$!3#* *****p1hBg'F1$\"3)******HeL?K\"F-7$$!3i*****4-+mV'F1$\"3)*******Gp'=E \"F-7$$!3M+++mfIriF1$\"3/+++*4CT?\"F-7$$!3m*****H-!\\1hF1$\"35+++Y@r[6 F-7$$!3:+++pO;UfF1$\"3#******4iTb4\"F-7$$!3e*****>vQ$ydF1$\"3.+++Pk_W5 F-7$$!3:+++Uu-:cF1$\"3g*****pGPe&**Feo7$$!3S+++@BC_aF1$\"3%)*****zaPj[ *Feo7$$!3_+++Sj***G&F1$\"3v+++Jw*f.*Feo7$$!3Z+++.HIG^F1$\"3d******))*y Sg)Feo7$$!3#)******=e)=98SF1$\"3D+++&y))*RgFeo7$$!33+++ o\"3k&QF1$\"3R+++i0)>t&Feo7$$!3w*****4i#[6CFeo7$$!3/+++)**f$e9F1$\"3%******>*fDfAFeo7$ $!38+++C+q;8F1$\"32+++hX%Q6#Feo7$$!3/+++C$4i<\"F1$\"3/+++v8)\\(>Feo7$$ !3,+++$RJp.\"F1$\"3++++`.TU=Feo7$$!3[+++pb7*)*)Fgq$\"3&******\\'e)er\" Feo7$$!3N*****puB?i(Fgq$\"31+++@D<&f\"Feo7$$!3I+++m(R&oiFgq$\"3/+++r[/ ![\"Feo7$$!34+++D^CH\\Fgq$\"3)********=(Gq8Feo7$$!39+++ygv/OFgq$\"3+++ +MKpl7Feo7$$!3)******RfqdH#Fgq$\"3++++/%og;\"Feo7$$!3-+++++++5Fgq$\"3# ******pq252\"Feo7$Fg\\l$\"\"\"F*7$$\"3-+++++++5Fgq$\"3y*****ftB*4$*F17 $$\"3')*****><[:H#Fgq$\"33+++$p;vW)F17$$\"3!)*****f-I$pNFgq$\"3Z+++'[[ ai(F17$$\"3C+++zz7H[Fgq$\"3s*******o'RWoF17$$\"3I+++%)R&)pgFgq$\"3b+++ pN#H5'F17$$\"3!*******QmK!H(Fgq$\"3))*****>6i'*R&F17$$\"3O*****4v0#*[) Fgq$\"3v******fjMLZF17$$\"3e*****zba\\m*Fgq$\"3>+++v0#G5%F17$$\"31+++e )y:3\"F1$\"3++++YG02NF17$$\"3/+++=/'R>\"F1$\"3=+++2b:XHF17$$\"3.+++hwQ .8F1$\"36+++-eT;CF17$$\"3.+++d/b49F1$\"35+++B_M?>F17$$\"3*******4ic?^ \"F1$\"33+++l&fnX\"F17$$\"3/+++\"Q!R5;F1$\"3)*******H)>f-\"F17$$\"31++ +!HNQq\"F1$\"3M*****Rs3!)G'Fgq7$$\"39+++R.J\"z\"F1$\"3'*******\\rwwEFg q7$$\"3++++I[!4'=F1$!3#******\\YwPC\"F]r7$$\"3.+++'4?4$>F1$!31+++(Q#Hz GFgq7$$\"3')******QP/**>F1$!35+++Xu'**\\&Fgq7$$\"39+++)4:y1#F1$!3-+++N (4n3)Fgq7$$\"3-+++D%3j9#F1$!3)******4D6o4\"F17$$\"3/+++U\">8B#F1$!3()* ******f%\\+9F17$$\"3()*****pGb>K#F1$!32+++l&o[r\"F17$$\"3,+++zpXL$F17$$\"3s*****\\@#H_HF1$!3%)*****z=`&\\OF17$$\"3?+++s0r oIF1$!3y*****\\B;>'RF17$$\"3C+++o?#y=$F1$!3E+++>f+oUF17$$\"3-+++))o[4L F1$!39+++DI(pc%F17$$\"3z******QLeLMF1$!3?+++>c4e[F17$$\"3y******)o/+c$ F1$!3#)******G8wS^F17$$\"3C+++yll)o$F1$!3B+++fFX9aF17$$\"3z******=^X>Q F1$!3]******[etycF17$$\"3=+++z_K_RF1$!3q*****R)*\\K$fF17$$\"3E+++r'*>( 3%F1$!35+++i)*pxhF17$$\"3?++++v,CUF1$!3*******fT[=T'F17$$\"3)******4vB FO%F1$!3=+++23^NmF17$$\"34+++a%oK]%F1$!3++++-\"\\&[oF17$$\"3=+++^hgXYF 1$!3M+++Mx'30(F17$$\"33+++\"R&p*y%F1$!3f*****\\P4CC(F17$$\"36+++7$)\\N \\F1$!3@+++(H^JU(F17$$\"3_*****HJ!)H3&F1$!3-+++H@5$f(F17$$\"3L+++6(4@B &F1$!3a+++p))H_xF17$$\"3a*****R`dGQ&F1$!3=+++#G/3!zF17$$\"3,+++:t>NbF1 $!38+++tWqQ!)F17$$\"3I+++/[5*o&F1$!35+++'f1h;)F17$$\"3#*******[zbWeF1$ !3?+++dp8$G)F17$$\"3`*****RkO:+'F1$!3Y*****>0R**Q)F17$$\"3E+++aE-ghF1$ !3)******z*=n'[)F17$$\"36+++J&***>jF1$!3u*****pX3Nd)F17$$\"39+++,DX\"[ 'F1$!3Q+++hTj]')F17$$\"3f*****\\SoVk'F1$!3t******fbC=()F17$$\"37+++Vct 3oF1$!3C+++o!\\lx)F17$$\"3G+++2TaupF1$!3\\+++)yfd#))F17$$\"3g*****p<&y TrF1$!3_*****fV+h'))F17$$\"3\\+++j;X5tF1$!3K+++C.!y*))F17$$\"3q*****H# y`![(F1$!3e*****zT%4@*)F17$$\"3++++V$R?l(F1$!3i*****4YAi$*)F17$$\"3L++ +7L&\\#yF1$!3@+++^\"GM%*)F17$$\"3_+++_#y#**zF1$!3w*****fPeH%*)F17$$\"3 [+++vT,v\")F1$!3!)*****R]i]$*)F17$$\"3m*****p`i@N)F1$!3!******zr\"**>* )F17$$\"3`*****\\PE2`)F1$!3y*****HQ)*z*))F17$$\"3b*****\\G52r)F1$!3e** ***HZN$p))F17$$\"3E+++'[?@*))F1$!3V+++GgDM))F17$$\"3]+++h\\'\\2*F1$!3K +++ME,$z)F17$$\"3e*****pX`#f#*F1$!3i*****f'p&eu)F17$$\"3H+++ow*\\W*F1$ !33+++@$RIp)F17$$\"3Y+++\"G6Aj*F1$!3*)*****4A3[j)F17$$\"3S+++(=54#)*F1 $!3c*****H+59d)F17$$\"3*)*****zD66+\"Feo$!3[+++l%)3.&)F17$$\"3!******f \"RG?5Feo$!3v*****z]%3I%)F17$$\"3%******RL6'R5Feo$!3)******f#ej_$)F17$ $\"3-+++]h4f5Feo$!3o*****4cw4F)F17$$\"37+++C8uy5Feo$!3Y+++UqL&=)F17$$ \"3!*******o,b)4\"Feo$!3))*****H[Vf4)F17$$\"3$******>RE&=6Feo$!3p***** *zw,.!)F17$$\"31+++ITnQ6Feo$!3;+++'zwn!zF17$$\"3-+++1!)**e6Feo$!3%)*** **z+Lu!yF17$$\"31+++*=.&z6Feo$!3q*****fF$>0xF17$$\"3%******fW&>+7Feo$! 3J+++n!f-g(F17$$\"3)******HC\"3@7Feo$!3a+++/g#G\\(F17$$\"34+++Iy;U7Feo $!3-+++ZN3$Q(F17$$\"3!******HNjME\"Feo$!3G+++WY@rsF17$$\"3#******R+x\\ G\"Feo$!3Y*****\\E&RdrF17$$\"3,+++v\">nI\"Feo$!3]+++^RzTqF17$$\"33+++ \"o,(G8Feo$!3,+++U6dCpF17$$\"3%******\\+Q4N\"Feo$!3j*****H_ye!oF17$$\" 3-+++EOWt8Feo$!3'*******y!eeo'F17$$\"3'******RVOiR\"Feo$!3i*****>!4kkl F17$$\"32+++jsL>9Feo$!3F+++pcMUkF17$$\"3-+++#fqFW\"Feo$!35+++!fw!>jF17 $$\"3'*******)[llY\"Feo$!3s******[1#\\>'F17$$\"3-+++(*ov!\\\"Feo$!3U++ +\"pV*pgF17$$\"30+++^uQ::Feo$!3@++++\\=WfF17$$\"3)*******>,^S:Feo$!3K+ ++x%[w\"eF17$$\"31+++k@>m:Feo$!3u*****H3\"H!p&F17$$\"3#******zR@Df\"Fe o$!3i*****4S,?c&F17$$\"30+++*e;'>;Feo$!3++++%plDV&F17$$\"35+++WhkZ;Feo $!3G+++VXg,`F17$$\"3/+++3]'on\"Feo$!3;+++,cWo^F17$$\"34+++0()p2+++ZNlFeo$!37+++(f^@E%F17$$\"35+++,y'R$>Feo$!31+++^(fZ;%F17$$\"31+++/U$ >'>Feo$!3=+++_'G^2%F17$$\"3%******H'Q1*)>Feo$!3u*****4sj>*RF17$F\\\\l$ !3!)*****\\C%\\fRF1-Fa\\l6&Fc\\l$\")#)eqkFf\\l$\"))eqk\"Ff\\lFaeo-Fi\\ l6#%&POINTG-%+AXESLABELSG6$%\"xG%&y'(x)G-%'SYMBOLG6#%'CIRCLEG-%%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" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{SECT 1 {PARA 4 "" 0 " " {TEXT -1 9 "Example 2" }{TEXT 290 44 " .. a combined order 5-6 Runge -Kutta method " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}} {PARA 0 "" 0 "" {TEXT -1 34 "Consider the initial value problem" }} {PARA 257 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "d^2*y/(d*x^2)+2;" "6 #,&*(%\"dG\"\"#%\"yG\"\"\"*&F%F(*$%\"xGF&F(!\"\"F(F&F(" }{TEXT -1 1 " \+ " }{XPPEDIT 18 0 "dy/dx+26*y = 39*exp(-x)*cos(8*x);" "6#/,&*&%#dyG\"\" \"%#dxG!\"\"F'*&\"#EF'%\"yGF'F'*(\"#RF'-%$expG6#,$%\"xGF)F'-%$cosG6#*& \"\")F'F3F'F'" }{TEXT -1 3 ", " }{XPPEDIT 18 0 "y(0) = 0" "6#/-%\"yG6 #\"\"!F'" }{TEXT -1 2 ", " }{XPPEDIT 18 0 "`y '`(0) = 0;" "6#/-%$y~'G6 #\"\"!F'" }{TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 59 "First we fin d an analytical solution and set up a function " }{TEXT 272 1 "g" } {TEXT -1 17 " to evaluate it. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 120 "de := diff(y(x),x$2)+2*diff (y(x),x)+2*y(x)=sin(x);\nic := y(0)=0,D(y)(0)=0;\ndsolve(\{de,ic\},y(x ));\ng := unapply(rhs(%),x):" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG /,(-%%diffG6$-%\"yG6#%\"xG-%\"$G6$F-\"\"#\"\"\"*&F1F2-F(6$F*F-F2F2*&F1 F2F*F2F2-%$sinGF," }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\"yG6# \"\"!F*/--%\"DG6#F(F)F*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/-%\"yG6#% \"xG,**&#\"\"\"\"\"&F+*&-%$expG6#,$F'!\"\"F+-%$sinGF&F+F+F+*&#\"\"#F,F +*&F.F+-%$cosGF&F+F+F+*&#F7F,F+F9F+F2*&F*F+F3F+F+" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 20 "In the default mode " } {TEXT 0 9 "desolveK2" }{TEXT -1 72 " obtains a continuous solution usi ng an adaptive 5-6 Runge-Kutta method." }}{PARA 0 "" 0 "" {TEXT -1 149 " Interpolation between the points of a discrete solution is provi ded by completing a single Runge-Kutta step or polynomial interpolatio n may be used." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 258 "de := diff(y(x),x$2)+2*diff(y(x),x)+2*y(x)=sin( x);\nic := y(0)=0,D(y)(0)=0;\ngn := desolveK2(\{de,ic\},x=0..10,output =rkstep);\n##gn := desolveK2(\{de,ic\},x=0..10,output=rkinterp);\nplot ([g(x),'gn'(x)],x=0..10,color=[red,green],thickness=[1,2],labels=[`x`, `y(x)`]);" }{TEXT -1 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(- %%diffG6$-%\"yG6#%\"xG-%\"$G6$F-\"\"#\"\"\"*&F1F2-F(6$F*F-F2F2*&F1F2F* F2F2-%$sinGF," }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\"yG6#\"\" !F*/--%\"DG6#F(F)F*" }}{PARA 11 "" 1 "" {TEXT -1 0 "" }{GLPLOT2D 598 299 299 {PLOTDATA 2 "6&-%'CURVESG6%7`p7$$\"\"!F)F(7$$\"3GLLL3x&)*3\"!# =$\"3a2Nf@AHT?!#@7$$\"3emmm;arz@F-$\"3Qn6mmBHU:!#?7$$\"3v***\\7y%*z7$F -$\"3-j#)*)*p*RIVF67$$\"3[LL$e9ui2%F-$\"3C,^,6$)e#4*F67$$\"3z***\\(oMr U^F-$\"3VEyO3`@=7$$\"3nmmm\"z_\"4iF-$\"3#\\)*>aL;2%GFF7$$\"39ommT& phN)F-$\"3)RoZO$>xqgFF7$$\"3KLLe*=)H\\5!#<$\"3)>%eI$p:l/\"F-7$$\"3smm \"z/3uC\"FT$\"3d)H!3)o\\]`\"F-7$$\"3!****\\7LRDX\"FT$\"35s9,()p?*3#F-7 $$\"3%om;zR'ok;FT$\"3AYrV'Qi?n#F-7$$\"33++D1J:w=FT$\"3[_h25d*z@$F-7$$ \"3oLLL3En$4#FT$\"3Av.ELmk(p$F-7$$\"3#pmmT!RE&G#FT$\"3TP%\\Ba3)=SF-7$$ \"3eLLe9r5$R#FT$\"3S6b-(3X&[TF-7$$\"3D+++D.&4]#FT$\"3Hpi*f*yJPUF-7$$\" 3A++]PL4bDFT$\"3_!fc8n4cE%F-7$$\"3?+++]jB4EFT$\"37.e^/5m#G%F-7$$\"3=++ ]i$zLm#FT$\"3+R#3P`c#)G%F-7$$\"3;+++vB_ul%[TF-7$$\"3pL $eky#*4-$FT$\"32w$>-+)pHSF-7$$\"3&om;z*ev:JFT$\"3;(39.F.`(QF-7$$\"3_LL L347TLFT$\"37\"[%)f#\\TrLF-7$$\"3nLLLLY.KNFT$\"3&=fwg]It!GF-7$$\"33++D \"o7Tv$FT$\"38ct)4Ug$>?F-7$$\"3km;HK5S_QFT$\"3?)y;%3IRM;F-7$$\"3?LLL$Q *o]RFT$\"3x&=%*\\h9BB\"F-7$$\"39n;H#GF&eSFT$\"3!fS%)4Y34w(FF7$$\"3m++D \"=lj;%FT$\"3uU46/1g#4$FF7$$\"33++]iB0pUFT$!37@'z@OW7S\"FF7$$\"3S++vV& RF-7$$\"3]LLeR\"3Gy% FT$!3y2v7>T$3H#F-7$$\"3emm;/T1&*\\FT$!3SIEA!>yY2aFT$!3ezW8m8=$4%F-7$$\"3PL$e*[K56bFT$!3]: \\LJA:bUF-7$$\"3Znm;zXu9cFT$!3'fFA'>.wrVF-7$$\"3i+](oR!GocFT$!3yw*=r9v PT%F-7$$\"3yLLe9i\"=s&FT$!3%*>&zg()*>VWF-7$$\"3%pm\"HK?NvdFT$!3e%3*\\Q I%*fWF-7$$\"34+++]y))GeFT$!3)\\0S!f*\\RY%F-7$$\"3!3+DJ?i7)eFT$!3Qs(*R \\z_bWF-7$$\"3k++DcljLfFT$!3kIrrso\"\\V%F-7$$\"3[+]P44,')fFT$!3'e%\\'f =o@S%F-7$$\"3H++]i_QQgFT$!3We'er+ntN%F-7$$\"3U+](=-N(RhFT$!3-6!eH/:pB% F-7$$\"3b++D\"y%3TiFT$!3M2eG'o6I2%F-7$$\"3+++]P![hY'FT$!3/cX`OcmiNF-7$ $\"3iKLL$Qx$omFT$!3U)=s3km(\\HF-7$$\"3Y+++v.I%)oFT$!3Ml\"Qb,iJ;#F-7$$ \"3ML$ek`H@)pFT$!3i\"*)p;xI7x\"F-7$$\"3?mm\"zpe*zqFT$!3ky&)e*Q/BO\"F-7 $$\"3oL$e9\"=\"p=(FT$!3z_A\"He+T+*FF7$$\"3;,++D\\'QH(FT$!3eL>Kt'z:G%FF 7$$\"3gm;zp%*\\%R(FT$\"3o4ppWR/#3#F67$$\"3%HL$e9S8&\\(FT$\"3c=XSV'Qkp% FF7$$\"3%om;/6E.g(FT$\"3$z[C?LrpL*FF7$$\"3s++D1#=bq(FT$\"3#oevqs\"[(Q \"F-7$$\"3#om\"H2FO3yFT$\"3#)pY!3x#R;=F-7$$\"3\"HLL$3s?6zFT$\"3l5[Fi;: EAF-7$$\"3a***\\7`Wl7)FT$\"3,n'f0t@K+$F-7$$\"3enmmm*RRL)FT$\"3trE'*p'z 4i$F-7$$\"3%zmmTvJga)FT$\"3='[gd.]@4%F-7$$\"3A,]PM&*>^')FT$\"3Q7;D[M!) eUF-7$$\"3]MLe9tOc()FT$\"3q=N#yI5%yVF-7$$\"3q+vV[ko/))FT$\"3wYW'*zj?xqgFbhl7$$\"+*=)H\\5! \"*$\"+#p:l/\"Fifl7$$\"+[!3uC\"F`il$\"+)o\\]`\"Fifl7$$\"+J$RDX\"F`il$ \"+')p?*3#Fifl7$$\"+)R'ok;F`il$\"+(Qi?n#Fifl7$$\"+1J:w=F`il$\"+4d*z@$F ifl7$$\"+3En$4#F`il$\"+Lmk(p$Fifl7$$\"+/RE&G#F`il$\"+U&3)=SFifl7$$\"+9 r5$R#F`il$\"+'3X&[TFifl7$$\"+D.&4]#F`il$\"+'*yJPUFifl7$$\"+QL4bDF`il$ \"+r'4cE%Fifl7$$\"+]jB4EF`il$\"+/5m#G%Fifl7$$\"+i$zLm#F`il$\"+MlD)G%Fi fl7$$\"+vB_?Fifl7$$\"+K5S_QF`il$\"+4IRM;Fifl7$$\"+$Q*o]RF`i l$\"+;YJK7Fifl7$$\"+#GF&eSF`il$\"+s%34w(Fbhl7$$\"+\"=lj;%F`il$\"+91g#4 $Fbhl7$$\"+iB0pUF`il$!+UVC,9Fbhl7$$\"+V&RFifl7$$\"+R\"3Gy%F`il$!+Y2aF`il$!+l8=$4%Fifl7$$\"+]K56bF` il$!+LA:bUFifl7$$\"+yXu9cF`il$!+=.wrVFifl7$$\"+&R!GocF`il$!+Y^x8WFifl7 $$\"+:i\"=s&F`il$!+w)*>VWFifl7$$\"+I?NvdF`il$!+QI%*fWFifl7$$\"+\\y))Ge F`il$!+f*\\RY%Fifl7$$\"++AE\")eF`il$!+]z_bWFifl7$$\"+bljLfF`il$!+to\" \\V%Fifl7$$\"+54,')fF`il$!+&=o@S%Fifl7$$\"+i_QQgF`il$!+2qOdVFifl7$$\"+ ?]tRhF`il$!+X]\"pB%Fifl7$$\"+!y%3TiF`il$!+)o6I2%Fifl7$$\"+O![hY'F`il$! +ScmiNFifl7$$\"+#Qx$omF`il$!+Xmw\\HFifl7$$\"+u.I%)oF`il$!+>?;j@Fifl7$$ \"+N&H@)pF`il$!+x2Br^')F`il$\"+\\M!)eUFifl7$$ \"+8tOc()F`il$\"+1.TyVFifl7$$\"+Xko/))F`il$\"+xj? " 0 "" {MPLTEXT 1 0 33 "xx := 3*Pi;\ngn(xx);\nevalf(g(xx));" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%#xxG,$*&\"\"$\"\"\"%#PiGF(F(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"+-sn**R!#5" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\" +-sn**R!#5" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 81 "The derivative of the solution \+ can also be obtained with either of the options ''" }{TEXT 272 16 "out put=derivstep" }{TEXT -1 8 "'' or ''" }{TEXT 272 18 "output=derivinter p" }{TEXT -1 3 "''." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 252 "de := diff(y(x),x$2)+2*diff(y(x),x)+2*y(x) =sin(x);\nic := y(0)=0,D(y)(0)=0;\ndgn := desolveK2(\{de,ic\},x=0..10, output=derivstep);\n##dgn := desolveK2(\{de,ic\},x=0..10,output=derivi nterp);\nplot([D(g)(x),'dgn'(x)],x=0..10,color=[brown,coral],thickness =[1,2]);" }{TEXT -1 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-% %diffG6$-%\"yG6#%\"xG-%\"$G6$F-\"\"#\"\"\"*&F1F2-F(6$F*F-F2F2*&F1F2F*F 2F2-%$sinGF," }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\"yG6#\"\"! F*/--%\"DG6#F(F)F*" }}{PARA 11 "" 1 "" {TEXT -1 0 "" }{GLPLOT2D 449 282 282 {PLOTDATA 2 "6&-%'CURVESG6%7ap7$$\"\"!F)F(7$$\"3ALL$3FWYs#!#>$ \"3c`$)*)*G_Yk$!#@7$$\"3WmmmT&)G\\aF-$\"3.AP%R5u6V\"!#?7$$\"3m****\\7G $R<)F-$\"3#Q#>c6b`gJF67$$\"3GLLL3x&)*3\"!#=$\"3!G`I8>lN^&F67$$\"3$**** *\\ilyM;F?$\"3MIO[cvy$>\"F-7$$\"3emmm;arz@F?$\"30!\\g*ox_S?F-7$$\"3v** *\\7y%*z7$F?$\"3)fH)GC#fi\"RF-7$$\"3[LL$e9ui2%F?$\"3=srPfw6\"='F-7$$\" 3nmmm\"z_\"4iF?$\"3;lrjV)oM?\"F?7$$\"39ommT&phN)F?$\"3%ytR*)))fpz\"F?7 $$\"3KLLe*=)H\\5!#<$\"35#yeV#o$RH#F?7$$\"3-++v=JN[6F]o$\"3)frHS&GhsCF? 7$$\"3smm\"z/3uC\"F]o$\"3>*)oOCG]6EF?7$$\"31++vo3p)H\"F]o$\"3kY!>*)yul m#F?7$$\"3ULLe*ot*\\8F]o$\"3`Hpxlkl4FF?7$$\"3xmmT5lD,9F]o$\"3CIJk;\"f/ u#F?7$$\"3!****\\7LRDX\"F]o$\"3QS3I\\\"p(eFF?7$$\"3!om;z4wb]\"F]o$\"3+ (*Hl!z9Ww#F?7$$\"3[LLekGhe:F]o$\"3uB/)=Cpkv#F?7$$\"3;++DJ'\\;h\"F]o$\" 3WYAWa%H\\t#F?7$$\"3%om;zR'ok;F]o$\"3wbQ'fLk)*p#F?7$$\"3OLL3_(>/x\"F]o $\"3KV/.j&3-f#F?7$$\"33++D1J:w=F]o$\"3D=@cb+CHCF?7$$\"3oLLL3En$4#F]o$ \"3)\\_x.so#\\>F?7$$\"3#pmmT!RE&G#F]o$\"3/O\"py0'[$Q\"F?7$$\"3D+++D.&4 ]#F]o$\"3'oOhRn8\"[iF-7$$\"3;+++vB_#F-7$$\"33+++v'Hi #HF]o$!3[ZF)R\\$*H1\"F?7$$\"3&om;z*ev:JF]o$!3.'\\:GC5U\"=F?7$$\"3_LLL3 47TLF]o$!3rYNg\"Qi;k#F?7$$\"3nLLLLY.KNF]o$!3I^<*yg(*4D$F?7$$\"33++D\"o 7Tv$F]o$!3HSXxD\"3q\"QF?7$$\"3?LLL$Q*o]RF]o$!3U'eU!=g&[;%F?7$$\"39n;H# GF&eSF]o$!3!=2.bQ#>)G%F?7$$\"3m++D\"=lj;%F]o$!3IMX.DGMhVF?7$$\"3P+](=x 3x@%F]o$!3#*f%zm$o>yVF?7$$\"33++]iB0pUF]o$!3s%3m(pXN$Q%F?7$$\"3p+]7`fR ?VF]o$!35/=XU[ywVF?7$$\"3S++vV&Rp:%F?7$$\"3]LLeR\"3Gy% F]o$!31!\\UZRK/!QF?7$$\"3emm;/T1&*\\F]o$!3mo\"eRrh\"[KF?7$$\"3=nm\"zRQ b@&F]o$!3G=G%\\\"pe;DF?7$$\"3nLLLe,]6`F]o$!35L(zp&ekc@F?7$$\"3:++v=>Y2 aF]o$!3U5\"H-QHix\"F?7$$\"3PL$e*[K56bF]o$!3Qzi]]$okM\"F?7$$\"3Znm;zXu9 cF]o$!3\"3!)RrpPk,*F-7$$\"3yLLe9i\"=s&F]o$!3/k3;_b99VF-7$$\"34+++]y))G eF]o$\"3(R$>mdeIFWF67$$\"3k++DcljLfF]o$\"3I/Rpu![i4&F-7$$\"3H++]i_QQgF ]o$\"3iVYx#*[i(p*F-7$$\"3U+](=-N(RhF]o$\"3%>RY8B/_S\"F?7$$\"3b++D\"y%3 TiF]o$\"3g4a'fFvk#=F?7$$\"3G+]P4kh`jF]o$\"31ToYEfKsAF?7$$\"3+++]P![hY' F]o$\"3g#41\\DO'*o#F?7$$\"3KmmT5FEnlF]o$\"3r\\$p'3n'e.$F?7$$\"3iKLL$Qx $omF]o$\"3Al,ecA=^LF?7$$\"3Y+++v.I%)oF]o$\"3Q$e2CA)\\1RF?7$$\"3?mm\"zp e*zqF]o$\"31Kkk$4kOD%F?7$$\"3oL$e9\"=\"p=(F]o$\"3S3-x\\JUvVF?7$$\"3;,+ +D\\'QH(F]o$\"3EE^2q`;ZWF?7$$\"3*Q$eR(>#=WtF]o$\"3U))=1O#eLY%F?7$$\"3g m;zp%*\\%R(F]o$\"3S*\\lUuY#oWF?7$$\"3A+v=Un\"[W(F]o$\"33pG_rx\"=Y%F?7$ $\"3%HL$e9S8&\\(F]o$\"3d^o6[p3WWF?7$$\"3%om;/6E.g(F]o$\"3!*Q7SHytqVF?7 $$\"3s++D1#=bq(F]o$\"3U6%H\\*)H!\\UF?7$$\"3\"HLL$3s?6zF]o$\"3!*G3#)G%4 p(QF?7$$\"3a***\\7`Wl7)F]o$\"3l/e+)Q'Q7LF?7$$\"3enmmm*RRL)F]o$\"3@]$*R rb^BEF?7$$\"3wnmTge)*R%)F]o$\"3?ynZ$y9dA#F?7$$\"3%zmmTvJga)F]o$\"3-8Hf ;S(G!=F?7$$\"3A,]PM&*>^')F]o$\"3GsG!o.'[j8F?7$$\"3]MLe9tOc()F]o$\"3M1w Oa5/!4*F-7$$\"3oo;H#e0I&))F]o$\"3%\\e#)))HLQ#[F-7$$\"31,++]Qk\\*)F]o$ \"33wMpUgEC^F67$$\"3#)omT5ASg!*F]o$!3!H`V,D(fKWF-7$$\"3![LL3dg6<*F]o$! 3NE\"[G4%[B$*F-7$$\"3K,+voTAq#*F]o$!3U+![-g/.O\"F?7$$\"3%ymmmw(Gp$*F]o $!3K]uJ%yK\\x\"F?7$$\"3C++D\"oK0e*F]o$!3C')\\&fl\"4'f#F?7$$\"35,+v=5s# y*F]o$!3')\\Q/P#3WF$F?7$$\"#5F)$!3#327I7.S&QF?-%'COLOURG6&%$RGBG$\")#) eqk!\")$\"))eqk\"FcflFdfl-%*THICKNESSG6#\"\"\"-F$6%7apF'7$$\"+qUkCF!#6 $\"+)G_Yk$!#87$$\"+S&)G\\aF`gl$\"+.T\"F`gl7$$\"+;a rz@Fbhl$\"+ox_S?F`gl7$$\"+!y%*z7$Fbhl$\"+A#fi\"RF`gl7$$\"+XTFwSFbhl$\" +dw6\"='F`gl7$$\"+\"z_\"4iFbhl$\"+V)oM?\"Fbhl7$$\"+S&phN)Fbhl$\"+)))fp z\"Fbhl7$$\"+*=)H\\5!\"*$\"+Bo$RH#Fbhl7$$\"+=JN[6Ffjl$\"+`GhsCFbhl7$$ \"+[!3uC\"Ffjl$\"+CG]6EFbhl7$$\"+p3p)H\"Ffjl$\"+*yulm#Fbhl7$$\"+!pt*\\ 8Ffjl$\"+mkl4FFbhl7$$\"+5lD,9Ffjl$\"+;\"f/u#Fbhl7$$\"+J$RDX\"Ffjl$\"+ \\\"p(eFFbhl7$$\"+)4wb]\"Ffjl$\"+\"z9Ww#Fbhl7$$\"+kGhe:Ffjl$\"+U#pkv#F bhl7$$\"+J'\\;h\"Ffjl$\"+a%H\\t#Fbhl7$$\"+)R'ok;Ffjl$\"+OV')*p#Fbhl7$$ \"+_(>/x\"Ffjl$\"+j&3-f#Fbhl7$$\"+1J:w=Ffjl$\"+c+CHCFbhl7$$\"+3En$4#Ff jl$\"+@(o#\\>Fbhl7$$\"+/RE&G#Ffjl$\"+eg[$Q\"Fbhl7$$\"+D.&4]#Ffjl$\"+sO 6[iF`gl7$$\"+vB_#F`gl7$$\"+v'Hi#HFfjl$!+%\\$*H1\"Fbhl7$$ \"+(*ev:JFfjl$!+R-@9=Fbhl7$$\"+347TLFfjl$!+!Qi;k#Fbhl7$$\"+LY.KNFfjl$! +2w*4D$Fbhl7$$\"+\"o7Tv$Ffjl$!+D\"3q\"QFbhl7$$\"+$Q*o]RFfjl$!+)G%Fbhl7$$\"+\"=lj;%Ffjl$!+DGMhVFbhl7$$\"+s(3 x@%Ffjl$!+Oo>yVFbhl7$$\"+iB0pUFfjl$!+qXN$Q%Fbhl7$$\"+_fR?VFfjl$!+U[ywV Fbhl7$$\"+V&Rp:%Fbhl7$$\"+R\"3Gy%Ffjl$!+'RK/!QFbhl7$$\"+.T1&*\\Ffjl$! +<<;[KFbhl7$$\"+(RQb@&Ffjl$!+=pe;DFbhl7$$\"+g,]6`Ffjl$!+]ekc@Fbhl7$$\" +=>Y2aFfjl$!+$QHix\"Fbhl7$$\"+]K56bFfjl$!+Y$okM\"Fbhl7$$\"+yXu9cFfjl$! +XxV;!*F`gl7$$\"+:i\"=s&Ffjl$!+Kb99VF`gl7$$\"+\\y))GeFfjl$\"+@aIFWFigl 7$$\"+bljLfFfjl$\"+>![i4&F`gl7$$\"+i_QQgFfjl$\"+q[i(p*F`gl7$$\"+?]tRhF fjl$\"+BU?09Fbhl7$$\"+!y%3TiFfjl$\"+r_ZE=Fbhl7$$\"+5kh`jFfjl$\"+HfKsAF bhl7$$\"+O![hY'Ffjl$\"+\\ij*o#Fbhl7$$\"+5FEnlFfjl$\"+2n'e.$Fbhl7$$\"+# Qx$omFfjl$\"+_A=^LFbhl7$$\"+u.I%)oFfjl$\"+?#)\\1RFbhl7$$\"+(pe*zqFfjl$ \"+#4kOD%Fbhl7$$\"+5=\"p=(Ffjl$\"+[JUvVFbhl7$$\"+C\\'QH(Ffjl$\"+p`;ZWF bhl7$$\"+&>#=WtFfjl$\"+N#eLY%Fbhl7$$\"+q%*\\%R(Ffjl$\"+WnCoWFbhl7$$\"+ Sn\"[W(Ffjl$\"+sx\"=Y%Fbhl7$$\"+8S8&\\(Ffjl$\"+\\p3WWFbhl7$$\"+5hK+wFf jl$\"+IytqVFbhl7$$\"+0#=bq(Ffjl$\"+'*)H!\\UFbhl7$$\"+2s?6zFfjl$\"+K%4p (QFbhl7$$\"+IXaE\")Ffjl$\"+#R'Q7LFbhl7$$\"+l*RRL)Ffjl$\"+xb^BEFbhl7$$ \"+ge)*R%)Ffjl$\"+&y9dA#Fbhl7$$\"+`<.Y&)Ffjl$\"+@S(G!=Fbhl7$$\"+N&*>^' )Ffjl$\"+Mg[j8Fbhl7$$\"+8tOc()Ffjl$\"+@6/!4*F`gl7$$\"+!e0I&))Ffjl$\"+* RLQ#[F`gl7$$\"+\\Qk\\*)Ffjl$\"+zkEC^Figl7$$\"+5ASg!*Ffjl$!+KsfKWF`gl7$ $\"+p0;r\"*Ffjl$!+7S[B$*F`gl7$$\"+lTAq#*Ffjl$!+%e/.O\"Fbhl7$$\"+lxGp$* Ffjl$!+xF$\\x\"Fbhl7$$\"+!oK0e*Ffjl$!+^;4'f#Fbhl7$$\"+<5s#y*Ffjl$!+J#3 WF$Fbhl7$Fiel$!+BJ+aQFbhl-F^fl6&F`fl$\"*++++\"Fcfl$\")AR!)\\FcflF(-Fgf l6#\"\"#-%+AXESLABELSG6$Q\"x6\"Q!Fabn-%%VIEWG6$;F(Fiel%(DEFAULTG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2 " }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 38 "The underlying discrete solutions for " }{TEXT 289 1 "y" }{TEXT -1 5 " an d " }{XPPEDIT 18 0 "dy/dx" "6#*&%#dyG\"\"\"%#dxG!\"\"" }{TEXT -1 35 " \+ can be obtained with the option ''" }{TEXT 272 13 "output=points" } {TEXT -1 9 "'' and ''" }{TEXT 272 15 "output=derivpts" }{TEXT -1 16 "' ' respectively." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 253 "de := diff(y(x),x$2)+2*diff(y(x),x)+2*y(x)=si n(x);\nic := y(0)=0,D(y)(0)=0;\npts := desolveK2(\{de,ic\},x=0..10,out put=points):\nplot([g(x),pts],x=0..10,color=[red,blue],style=[line,poi nt],\n symbol=circle,labels=[`x`,`y'(x) `]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-%%diffG6$-%\"yG6#%\" xG-%\"$G6$F-\"\"#\"\"\"*&F1F2-F(6$F*F-F2F2*&F1F2F*F2F2-%$sinGF," }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\"yG6#\"\"!F*/--%\"DG6#F(F) F*" }}{PARA 13 "" 1 "" {GLPLOT2D 589 333 333 {PLOTDATA 2 "6'-%'CURVESG 6%7`p7$$\"\"!F)F(7$$\"3GLLL3x&)*3\"!#=$\"3a2Nf@AHT?!#@7$$\"3emmm;arz@F -$\"3Qn6mmBHU:!#?7$$\"3v***\\7y%*z7$F-$\"3-j#)*)*p*RIVF67$$\"3[LL$e9ui 2%F-$\"3C,^,6$)e#4*F67$$\"3z***\\(oMrU^F-$\"3VEyO3`@=7$$\"3nmmm\"z _\"4iF-$\"3#\\)*>aL;2%GFF7$$\"39ommT&phN)F-$\"3)RoZO$>xqgFF7$$\"3KLLe* =)H\\5!#<$\"3)>%eI$p:l/\"F-7$$\"3smm\"z/3uC\"FT$\"3d)H!3)o\\]`\"F-7$$ \"3!****\\7LRDX\"FT$\"35s9,()p?*3#F-7$$\"3%om;zR'ok;FT$\"3AYrV'Qi?n#F- 7$$\"33++D1J:w=FT$\"3[_h25d*z@$F-7$$\"3oLLL3En$4#FT$\"3Av.ELmk(p$F-7$$ \"3#pmmT!RE&G#FT$\"3TP%\\Ba3)=SF-7$$\"3eLLe9r5$R#FT$\"3S6b-(3X&[TF-7$$ \"3D+++D.&4]#FT$\"3Hpi*f*yJPUF-7$$\"3A++]PL4bDFT$\"3_!fc8n4cE%F-7$$\"3 ?+++]jB4EFT$\"37.e^/5m#G%F-7$$\"3=++]i$zLm#FT$\"3+R#3P`c#)G%F-7$$\"3;+ ++vB_ul%[TF-7$$\"3pL$eky#*4-$FT$\"32w$>-+)pHSF-7$$\"3& om;z*ev:JFT$\"3;(39.F.`(QF-7$$\"3_LLL347TLFT$\"37\"[%)f#\\TrLF-7$$\"3n LLLLY.KNFT$\"3&=fwg]It!GF-7$$\"33++D\"o7Tv$FT$\"38ct)4Ug$>?F-7$$\"3km; HK5S_QFT$\"3?)y;%3IRM;F-7$$\"3?LLL$Q*o]RFT$\"3x&=%*\\h9BB\"F-7$$\"39n; H#GF&eSFT$\"3!fS%)4Y34w(FF7$$\"3m++D\"=lj;%FT$\"3uU46/1g#4$FF7$$\"33++ ]iB0pUFT$!37@'z@OW7S\"FF7$$\"3S++vV&RF-7$$\"3]LLeR\"3Gy%FT$!3y2v7>T$3H#F-7$$\"3emm;/T1&*\\ FT$!3SIEA!>yY2aFT$! 3ezW8m8=$4%F-7$$\"3PL$e*[K56bFT$!3]:\\LJA:bUF-7$$\"3Znm;zXu9cFT$!3'fFA '>.wrVF-7$$\"3i+](oR!GocFT$!3yw*=r9vPT%F-7$$\"3yLLe9i\"=s&FT$!3%*>&zg( )*>VWF-7$$\"3%pm\"HK?NvdFT$!3e%3*\\QI%*fWF-7$$\"34+++]y))GeFT$!3)\\0S! f*\\RY%F-7$$\"3!3+DJ?i7)eFT$!3Qs(*R\\z_bWF-7$$\"3k++DcljLfFT$!3kIrrso \"\\V%F-7$$\"3[+]P44,')fFT$!3'e%\\'f=o@S%F-7$$\"3H++]i_QQgFT$!3We'er+n tN%F-7$$\"3U+](=-N(RhFT$!3-6!eH/:pB%F-7$$\"3b++D\"y%3TiFT$!3M2eG'o6I2% F-7$$\"3+++]P![hY'FT$!3/cX`OcmiNF-7$$\"3iKLL$Qx$omFT$!3U)=s3km(\\HF-7$ $\"3Y+++v.I%)oFT$!3Ml\"Qb,iJ;#F-7$$\"3ML$ek`H@)pFT$!3i\"*)p;xI7x\"F-7$ $\"3?mm\"zpe*zqFT$!3ky&)e*Q/BO\"F-7$$\"3oL$e9\"=\"p=(FT$!3z_A\"He+T+*F F7$$\"3;,++D\\'QH(FT$!3eL>Kt'z:G%FF7$$\"3gm;zp%*\\%R(FT$\"3o4ppWR/#3#F 67$$\"3%HL$e9S8&\\(FT$\"3c=XSV'Qkp%FF7$$\"3%om;/6E.g(FT$\"3$z[C?LrpL*F F7$$\"3s++D1#=bq(FT$\"3#oevqs\"[(Q\"F-7$$\"3#om\"H2FO3yFT$\"3#)pY!3x#R ;=F-7$$\"3\"HLL$3s?6zFT$\"3l5[Fi;:EAF-7$$\"3a***\\7`Wl7)FT$\"3,n'f0t@K +$F-7$$\"3enmmm*RRL)FT$\"3trE'*p'z4i$F-7$$\"3%zmmTvJga)FT$\"3='[gd.]@4 %F-7$$\"3A,]PM&*>^')FT$\"3Q7;D[M!)eUF-7$$\"3]MLe9tOc()FT$\"3q=N#yI5%yV F-7$$\"3q+vV[ko/))FT$\"3wYW'*zj?#f\"!#E7 $$\"3++++lWUqZF6$\"3'*******))[-0=Fifl7$$\"3%3++Ik]2&*)F6$\"3/+++e*=)* =\"!#C7$$\"3#******>2\\e[\"FF$\"3c*****z%>uEaF]jl7$$\"3!******H$ePdAFF $\"3'******\\?zb*=F`gl7$$\"30+++*pq;@$FF$\"3S++++-$HV&F`gl7$$\"31+++!3 xoM%FF$\"3(******402$R8Fggl7$$\"3/+++Xv)*ecFF$\"3')*****R$RVNHFggl7$$ \"3C+++c_YprFF$\"3y*****>`IM#fFggl7$$\"3O*****\\p#o*)))FF$\"3.+++^'*H> 6F07$$\"3%******4-(=#3\"F-$\"3!*******\\^G**>F07$$\"35+++(eYoH\"F-$\"3 w******R/c-MF07$$\"36+++\\q5L:F-$\"3%******z(Hw_bF07$$\"35+++1;3\"z\"F -$\"33+++1d'[t)F07$$\"3%******\\E^32#F-$\"33+++(=P-L\"F67$$\"33+++&3%[ sBF-$\"3)******f!3Oo>F67$$\"3E+++]'[gp#F-$\"30++++gnQGF67$$\"3&)***** \\WK;/$F-$\"37+++)[n.+%F67$$\"3\")*****4:d$4MF-$\"3g*****zZ@7_&F67$$\" 3C++++uR*z$F-$\"33+++ARtxuF67$$\"3?+++>)**>@%F-$\"3S*****>A%4b**F67$$ \"39+++Th]ZYF-$\"3/+++v!3ZI\"FF7$$\"3l*****HN#Q1^F-$\"35+++%>#f&o\"FF7 $$\"3#)*****R$eD*e&F-$\"3#******Rz>#\\@FF7$$\"3k*****\\^mp4'F-$\"3#*** ***4O#\\2FFF7$$\"3Z******R'Q1j'F-$\"3%******R'>?tLFF7$$\"3]+++\"***y\" >(F-$\"3K+++x)e,;%FF7$$\"3i*****>^,Dy(F-$\"3C+++WzY$3&FF7$$\"3G+++bdq0 %)F-$\"3!******4?1,;'FF7$$\"3w*****Hn4d1*F-$\"3R*****>gA,T(FF7$$\"3U++ +P6Ep(*F-$\"3e*****Rr)Hf))FF7$$\"3'******HK4G0\"FT$\"31+++_Aea5F-7$$\" 3&******>)[oO6FT$\"3/+++#HhTD\"F-7$$\"3++++IaqO7FT$\"31+++W(or]\"F-7$$ \"3*)*****fS(yD8FT$\"36+++P!HIu\"F-7$$\"3$******4u*G;9FT$\"33+++2ZR*)> F-7$$\"3\"*******ftH,:FT$\"3&******R^/RA#F-7$$\"3-+++Q$)G$e\"FT$\"3!** ****RL=,X#F-7$$\"3%******\\*eaj;FT$\"3%)*****>n#)*oEF-7$$\"33+++ztnU %[\"))*=FT$\"3y*****>#pesKF-7$$\"31+++-'*=w>FT$\"3u*****pP-:X$F-7$$\"3 ?+++t'eK0#FT$\"3F+++a;w;OF-7$$\"3)******>^,,8#FT$\"3;+++2B)ow$F-7$$\"3 -+++&yyn?#FT$\"3!******zR\\/!RF-7$$\"31+++.zL$G#FT$\"3')*****>#z8;SF-7 $$\"3!******Hq;)fBFT$\"3/+++v,t7TF-7$$\"3*)*****4)fCOCFT$\"3%*******y& H\"*=%F-7$$\"3z*****pF^E^#FT$\"3<+++*zrVC%F-7$$\"3?+++'>a!*e#FT$\"3/++ +!pLwF%F-7$$\"3%)*****pTtam#FT$\"3A+++n.C)G%F-7$$\"3y*****HZD>u#FT$\"3 !******>bqcF%F-7$$\"3>++++aU=GFT$\"3y*****HNg&RUF-7$$\"31+++\"H()\\*GF T$\"3!******f]0(zTF-7$$\"35+++.[irHFT$\"3y*****z9ig4%F-7$$\"3#******fl ^$[IFT$\"3#********3Y())RF-7$$\"3!)*****p:#=DJFT$\"3E+++'eI!eQF-7$$\"3 %)*****pzJ@?$FT$\"3A+++![UVq$F-7$$\"3%)*****\\)z@zKFT$\"3x******)fc#GN F-7$$\"3!)*****R+hkN$FT$\"3>+++s!)[ILF-7$$\"3;+++2`)QV$FT$\"3$)******G @)=6$F-7$$\"3A+++O9_6NFT$\"3%)******o.StGF-7$$\"33+++u)3%*e$FT$\"3t*** **>1-hh#F-7$$\"3'******\\p+wm$FT$\"3))*****z.<6M#F-7$$\"3%******pJrhu$ FT$\"3')*****fV/'\\?F-7$$\"3A+++#yI_#QFT$\"32+++GGoURc)RFT$\"3%******HyXf3\"F-7$$\"3M+ ++&))))y1%FT$\"3')*****>pq!ftFF7$$\"3Q+++lp@`TFT$\"35+++\"zScm$FF7$$\" 3g*****>kn%[UFT$!3))*****z@(y*)\\F67$$\"3!)*****\\-ExJ%FT$!3J+++?fwLNF F7$$\"3#)******3\"y#)Q%FT$!3f*****f_*y8mFF7$$\"37+++G!QLX%FT$!3A+++Z0V I%*FF7$$\"3y*****f!e:AXFT$!3-+++%=ErB\"F-7$$\"3!)******oHw#f%FT$!3++++ z7GL:F-7$$\"3A+++wq`kYFT$!3!******>w/q#=F-7$$\"3w*****pNBrt%FT$!3()*** ***e4(\\6#F-7$$\"3G+++&y4.\"[FT$!3-+++!4/XR#F-7$$\"3w*****R8hR)[FT$!3? +++CdIjEF-7$$\"3I+++%f')z&\\FT$!3y*****4&oK>HF-7$$\"35+++FEKK]FT$!3%** ****pD02;$F-7$$\"3t*****>QBp5&FT$!3%)******zZt&Q$F-7$$\"3/+++;\\v\"=&F T$!39+++&R]Gf$F-7$$\"3++++O;zc_FT$!3!******z8A1y$F-7$$\"32+++AS,K`FT$! 3/+++'y`x%RF-7$$\"3J+++yqS2aFT$!3#*******\\R3$4%F-7$$\"3o*****\\HfH[&F T$!3w*****fc)e:UF-7$$\"39+++[>mebFT$!3')*****z$RQ9VF-7$$\"3o*****He3Xj &FT$!3%******HyH()Q%F-7$$\"3/+++!o%\\5dFT$!3))*****z2K!QWF-7$$\"3!**** **>VSX=Y%F-7$$\"3g******3c(G'eFT$!3?+++\\Y()fWF-7$$\" 3P+++%\\p#RfFT$!3?+++')f(>V%F-7$$\"36+++34!e,'FT$!3;+++Qp:yVF-7$$\"3i* ****\\GtC4'FT$!3'******f`v&)H%F-7$$\"3e******\\=HphFT$!3)*******)QQN>% F-7$$\"3I+++&)QEYiFT$!3;+++3w\\jSF-7$$\"3t*****H7*RBjFT$!3y*****4SY!4R F-7$$\"39+++L.r+kFT$!3)******>684t$F-7$$\"3s*****R;9#ykFT$!3%)******yL &*HNF-7$$\"3')*****4QKfb'FT$!3()*****H#)RrI$F-7$$\"3.+++.P*Qj'FT$!3%** ****RS[N1$F-7$$\"3P+++,n87nFT$!3E+++`&R.!GF-7$$\"3K+++'Q92z'FT$!32+++F 7t=DF-7$$\"3++++>?qpoFT$!3,+++It&*>AF-7$$\"3%)*****RB6#\\pFT$!3$****** R.)>0>F-7$$\"3H+++*f<%HqFT$!3/+++y/Xv:F-7$$\"3()*****4M@16(FT$!3%***** *p/`7B\"F-7$$\"33+++M_S$>(FT$!3R*****\\x'z>()FF7$$\"33+++%zt\"zsFT$!3& ******\\zEW$\\FF7$$\"3i*****z,oMP(FT$!3d*****>Ft\\J(F67$$\"3P+++`IGWuF T$\"3*)*******o[:V#FF7$$\"3i*****H/Z(3vFT$\"3?+++MW'4I&FF7$$\"3#****** pl%HtvFT$\"3]+++'*zC_\")FF7$$\"3,+++p(3-k(FT$\"3/++++*Gs5\"F-7$$\"3&** ****pQ7'4xFT$\"3%******HQm[S\"F-7$$\"3g*****f)G`!y(FT$\"3()******fF.-< F-7$$\"3%******\\.&[_yFT$\"3%******>E\"z%*>F-7$$\"3L+++BK=DzFT$\"3++++ 'e;,G#F-7$$\"3E+++<$[%)*zFT$\"3!******H*e\\bDF-7$$\"3A*****Roh@2)FT$\" 3u*****>!zt=GF-7$$\"3m+++*GTi9)FT$\"3#)*****Hyyy1$F-7$$\"31+++#RG1A)FT $\"38+++VU8,LF-7$$\"3w*****R!)z_H)FT$\"3\"******HQvo^$F-7$$\"3s+++(4j, P)FT$\"3*)*****f*oh8PF-7$$\"3?+++FNDX%)FT$\"3u******y@,!*QF-7$$\"3T+++ c?`?&)FT$\"37+++7C&[/%F-7$$\"3'3++?(R)ff)FT$\"3-+++*fnq<%F-7$$\"3s**** **fzfr')FT$\"3)******RtGdG%F-7$$\"3M+++IaOZ()FT$\"3!)******3.0qVF-7$$ \"3I+++%3!GB))FT$\"3,+++vGRHWF-7$$\"3w*****peP$**))FT$\"3w******H_EjWF -7$$\"3%)*****fPNb(*)FT$\"3++++UhKrWF-7$$\"3u******RD(=0*FT$\"31+++!Q& Q`WF-7$$\"3x*****4z\\$G\"*FT$\"3*******>*RS4WF-7$$\"3D*****R]p\\?*FT$ \"3&)*****zn$\\RVF-7$$\"3i******Ret\"G*FT$\"3<+++'=:RC%F-7$$\"3u*****z '\\le$*FT$\"3?+++2c2BTF-7$$\"3_+++,atN%*FT$\"3A+++=W_xRF-7$$\"3V+++*\\ ))H^*FT$\"3++++-\"[z!QF-7$$\"3Q*****>=H/f*FT$\"32+++`I;:OF-7$$\"3a+++D q2o'*FT$\"3A+++\">1,S$F-7$$\"3I*****4#y&fu*FT$\"3;+++LF#Q;$F-7$$\"3Q** ****Hg5C)*FT$\"3s*****H[\\u!HF-7$$\"3^+++B'oD!**FT$\"38+++'Q\">KEF-7$$ \"3G*******[69)**FT$\"3*********H'GRBF-7$Fdel$\"3%******>7U!oAF--Fiel6 &F[flF(F(F\\fl-F`fl6#%&POINTG-%'SYMBOLG6#%'CIRCLEG-%+AXESLABELSG6$%\"x G%&y'(x)G-%%VIEWG6$;F(Fdel%(DEFAULTG" 1 2 4 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 9 "Example 3" }{TEXT 278 44 " .. a combined o rder 7-8 Runge-Kutta method " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{PARA 0 "" 0 "" {TEXT -1 34 "Consider the initial value probl em" }}{PARA 257 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "d^2*y/(d*x^2)+ 2;" "6#,&*(%\"dG\"\"#%\"yG\"\"\"*&F%F(*$%\"xGF&F(!\"\"F(F&F(" }{TEXT -1 1 " " }{XPPEDIT 18 0 "dy/dx+26*y = 39*exp(-x)*cos(8*x);" "6#/,&*&%# dyG\"\"\"%#dxG!\"\"F'*&\"#EF'%\"yGF'F'*(\"#RF'-%$expG6#,$%\"xGF)F'-%$c osG6#*&\"\")F'F3F'F'" }{TEXT -1 3 ", " }{XPPEDIT 18 0 "y(0) = 0" "6#/ -%\"yG6#\"\"!F'" }{TEXT -1 2 ", " }{XPPEDIT 18 0 "`y '`(0) = 0;" "6#/- %$y~'G6#\"\"!F'" }{TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 59 "First we find an analytical solution and set up a function " }{TEXT 272 1 " g" }{TEXT -1 17 " to evaluate it. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 134 "de := diff(y(x),x$2)+2*diff (y(x),x)+26*y(x)=39*exp(-x)*cos(8*x);\nic := y(0)=0,D(y)(0)=0;\ndsolve (\{de,ic\},y(x));\ng := unapply(rhs(%),x):" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-%%diffG6$-%\"yG6#%\"xG-%\"$G6$F-\"\"#\"\"\"*& F1F2-F(6$F*F-F2F2*&\"#EF2F*F2F2,$*(\"#RF2-%$expG6#,$F-!\"\"F2-%$cosG6# ,$*&\"\")F2F-F2F2F2F2" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\" yG6#\"\"!F*/--%\"DG6#F(F)F*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/-%\"yG 6#%\"xG,&*&-%$expG6#,$F'!\"\"\"\"\"-%$cosG6#,$*&\"\"&F/F'F/F/F/F/*&F*F /-F16#,$*&\"\")F/F'F/F/F/F." }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 0 9 "desolveK2" }{TEXT -1 76 " can obtain a continuous solution using an adaptive 7-8 Runge-Kutta method. " }}{PARA 0 "" 0 " " {TEXT -1 148 "Interpolation between the points of a discrete solutio n is provided by completing a single Runge-Kutta step or polynomial in terpolation may be used." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 293 "de := diff(y(x),x$2)+2*diff(y(x),x )+26*y(x)=39*exp(-x)*cos(8*x);\nic := y(0)=0,D(y)(0)=0;\n##gn := desol veK2(\{de,ic\},x=0..4,method=rk78,output=rkstep);\ngn := desolveK2(\{d e,ic\},x=0..4,method=rk78,output=rkinterp);\nplot([g(x),'gn'(x)],x=0.. 4,color=[red,green],thickness=[1,2],labels=[`x`,`y(x)`]);" }{TEXT -1 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-%%diffG6$-%\"yG6#%\"x G-%\"$G6$F-\"\"#\"\"\"*&F1F2-F(6$F*F-F2F2*&\"#EF2F*F2F2,$*(\"#RF2-%$ex pG6#,$F-!\"\"F2-%$cosG6#,$*&\"\")F2F-F2F2F2F2" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\"yG6#\"\"!F*/--%\"DG6#F(F)F*" }}{PARA 11 " " 1 "" {TEXT -1 0 "" }{GLPLOT2D 645 306 306 {PLOTDATA 2 "6&-%'CURVESG6 %7es7$$\"\"!F)F(7$$\"39LLLL3VfV!#>$\"3Wg))*3PO!)\\$F-7$$\"3Hmmmm;')=() F-$\"3qd3\"G'*eLG\"!#=7$$\"3-++]7z>^7F5$\"3Ka:gK9J#R#F57$$\"3RLLLe'40j \"F5$\"3Q'3@]Gx()e$F57$$\"3/++](Q&3d?F5$\"3-'*>vlZ45[F57$$\"3mmmm;6m$[ #F5$\"3u_*oy[1Mn&F57$$\"3_mm;a>,\"f#F5$\"3#o0D#efP6eF57$$\"3Ommm\"zi$) p#F5$\"3je.#*)*Rp7fF57$$\"3ImmT5#Q?v#F5$\"3=,-1&y@!\\fF57$$\"3Amm;HOr0 GF5$\"3#QR-')oCb(fF57$$\"3;mm\"z/*QfGF5$\"3s\"4g$ym-#*fF57$$\"3jmmmmW1 8HF5$\"3_Qo!*\\OP)*fF57$$\"3.nm;/`T?IF5$\"3Gd[:jp4!)fF57$$\"3*omm;9mx7 $F5$\"3$=J/)>r!*>fF57$$\"3umm;zp6NKF5$\"3NA&oN-wt\"eF57$$\"3fmmm;yYULF 5$\"3AXmfp]VscF57$$\"3KLL3_!\\hb$F5$\"3Ago,T?>f_F57$$\"3/++](GI)pPF5$ \"3S()3=4Zw&o%F57$$\"3Amm\"H_6N)RF5$\"3yTKs*=3P'RF57$$\"3%HLL$eF>(>%F5 $\"3\\D&QFP@$4JF57$$\"3Wmmm;EI&R%F5$\"3)GZK'* )\\F5$!3GN>6Jl$oQ)F-7$$\"3M*****\\ZjZ>&F5$!3;$H02J+m%>F57$$\"3IKLLeZ*) *R&F5$!3.,vfS3]RIF57$$\"3HlmmTg-0cF5$!3)=wV/KV;4%F57$$\"3P*****\\Kd,\" eF5$!3el&p%R/Ry]F57$$\"3Jmmm\"R/B-'F5$!33+$\\YSdd+'F57$$\"39KLLe9XMiF5 $!3h5)*Gbz)f\"oF57$$\"33*****\\_)fYkF5$!3Kim!>q)f*[(F57$$\"3-mmm\"fX(e mF5$!3:)yp#H%=3,)F57$$\"3E*******H7-(oF5$!3'=n)HJs2n$)F57$$\"3_KLL3!z; 3(F5$!39$QR4N!)Hb)F57$$\"3g)***\\iBT(=(F5$!35LU)>oc4e)F57$$\"3ylmm;d9$ H(F5$!35C#RH\">el&)F57$$\"3'HLL32z))R(F5$!3Ky7(o()or])F57$$\"3.*****\\ U7Y](F5$!3*)e**QqbH1%)F57$$\"3HLL3F>8AxF5$!3_i'o5E&3p!)F57$$\"3Wmm;H9l RzF5$!3Y;MM)eKlc(F57$$\"3e***\\7$4tR)40fF57$$\"3%)*\\P M!3#*)>\"F^[l$\"3kOs.NW'R'eF57$$\"3@LLe9rR37F^[l$\"3%[1JDWM(*z&F57$$\" 3$***\\(ot\\tA\"F^[l$\"3fN2*\\GIag&F57$$\"3mmm;fBIY7F^[l$\"34u#3lxB*H` F57$$\"33++Dh`P\"H\"F^[l$\"3H`:!yY%)GS%F57$$\"3GLLLj$[kL\"F^[l$\"3^$*3 K9u'y?$F57$$\"3MLLL36ju8F^[l$\"3aZX%3TM!)4#F57$$\"3?LLL`Q\"GT\"F^[l$\" 3-Q=Z@DvO**F-7$$\"3mmm\"HYHsX\"F^[l$!335Mb'Gw`z\"F-7$$\"3!*****\\s]k,: F^[l$!3OgW1m:SS6F57$$\"3_mm\"HTg4a\"F^[l$!3].!)eN0riM;F^[l$!3%R4MVZaOJ#F57 $$\"3IL$3F\\y\\k\"F^[l$!3'483C6\\(*H#F57$$\"3qmTg#Gidl\"F^[l$!3G**eWg, 4sAF57$$\"33++]sgam;F^[l$!3zQ&)om&p:B#F57$$\"3&******\\%4i2:bo(>F57$$\"3/++]8F^[l$!3n U*R@Z*HO5F-7$$\"3`m;H_)[V$>F^[l$\"3j%RM0:B)RZ!#@7$$\"3)****\\([Wdb>F^[ l$\"3$oBno-HXW)!#?7$$\"3UL$3_/+o(>F^[l$\"3ggff?:jc8F-7$$\"3immmTc-)*>F ^[l$\"3#)*=SiMdef\"F-7$$\"3ym;/rI2??F^[l$\"3cQpS=#3!y:F-7$$\"3[mmT+07U ?F^[l$\"3v#pWD#e-@8F-7$$\"3=m;zHz;k?F^[l$\"3))e.\"Qs#[\\')Fafl7$$\"3Mm m;f`@'3#F^[l$\"3-?Hfbxw`DFafl7$$\"3HLLLj+gC@F^[l$!3s&oHkGf[-\"F-7$$\"3 y****\\nZ)H;#F^[l$!3gvuN&H^YN#F-7$$\"3NLLe*HTW?#F^[l$!3IH'*[eG!*eNF-7$ $\"3YmmmJy*eC#F^[l$!3]B#>n)eoqUF-7$$\"3!)***\\(e@JnAF^[l$!3-?FwVF]%Q%F -7$$\"3;LL$e[E()G#F^[l$!3m$R?*Ru\\0VF-7$$\"3^mm\"H\"395BF^[l$!3%3S=j'o &y-%F-7$$\"3')******R^bJBF^[l$!3!f]7&pbO`NF-7$$\"3s****\\AYXtBF^[l$!3c LlqX#4m4#F-7$$\"3f*****\\5a`T#F^[l$!39(*zp$y\"Q_nF[fl7$$\"3o****\\7RV' \\#F^[l$\"3VRrWaExLYF-7$$\"3m***\\PcY9a#F^[l$\"3E\"38SG%**)4(F-7$$\"3k *****\\@fke#F^[l$\"3c#3Jr'>(y/*F-7$$\"3+LLe\\@o1EF^[l$\"3+pm/W=>%o*F-7 $$\"3Nmm;%30pi#F^[l$\"3Re\\pX2i95F57$$\"3q***\\(=!Grk#F^[l$\"38$*y&[$G 6U5F57$$\"3/LLL`4NnEF^[l$\"3yGy,e]3]5F57$$\"3m****\\_K%*)o#F^[l$\"3?Z' GE3*oO5F57$$\"3Emmm^b`5FF^[l$\"3;<*Hy)>)3+\"F57$$\"3(GLL3&y7KFF^[l$\"3 6%Ryg_T[V*F-7$$\"3#*******\\,s`FF^[l$\"3Mr25%eI*e')F-7$$\"3)HL$e9=&Gz# F^[l$\"3NPxXx:`.oF-7$$\"3[mm;zM)>$GF^[l$\"3N]+8y%f;]%F-7$$\"3$*******p faSe8F-7$$\"39++v8)z/Y$F^[l$\"3!ezU`gjPo#F-7$$\"3FLL$e#pa-NF^[l$\"3 M0+c?/y8OF-7$$\"3emm\"HB-7a$F^[l$\"3A'y!4NJ?%4%F-7$$\"3!*******Rv&)zNF ^[l$\"3m'ex*)3#)eA%F-7$$\"3#ommT)3;COF^[l$\"3#)HN91[s'*RF-7$$\"3ILLLGU YoOF^[l$\"3K$3Fd2$zZMF-7$$\"3_mmm1^rZPF^[l$\"3-bJu`!)o@?F-7$$\"34++]sI @KQF^[l$\"3'[U^;Of9*[Fafl7$$\"34++]2%)38RF^[l$!3c!Qn_%Q4\"y%Fafl7$$\" \"%F)$!3tm$RC9]]!yFafl-%'COLOURG6&%$RGBG$\"*++++\"!\")F(F(-%*THICKNESS G6#\"\"\"-F$6%7esF'7$$\"+L3VfV!#6$\"+qj.)\\$Fbgm7$$\"+m;')=()Fbgm$\"+j *eLG\"!#57$$\"+7z>^7Fjgm$\"+J9J#R#Fjgm7$$\"+e'40j\"Fjgm$\"+%Gx()e$Fjgm 7$$\"+)Q&3d?Fjgm$\"+nZ45[Fjgm7$$\"+<6m$[#Fjgm$\"+)[1Mn&Fjgm7$$\"+a>,\" f#Fjgm$\"+efP6eFjgm7$$\"+#zi$)p#Fjgm$\"+**Rp7fFjgm7$$\"+6#Q?v#Fjgm$\"+ &y@!\\fFjgm7$$\"+IOr0GFjgm$\"+*oCb(fFjgm7$$\"+[!*QfGFjgm$\"+ym-#*fFjgm 7$$\"+nW18HFjgm$\"+]OP)*fFjgm7$$\"+/`T?IFjgm$\"+jp4!)fFjgm7$$\"+UhwFJF jgm$\"+?r!*>fFjgm7$$\"+!)p6NKFjgm$\"+BgPf_Fjgm7$$\"+)GI)pPFjgm$\"+3Zw&o%Fjgm7$$\"+ B:^$)RFjgm$\"+*=3P'RFjgm7$$\"+eF>(>%Fjgm$\"+u8K4JFjgm7$$\"+;EI&R%Fjgm$ \"+\">an@#Fjgm7$$\"+uCT$f%Fjgm$\"+(oypC\"Fjgm7$$\"+KB_\"z%Fjgm$\"+z#)4 5AFbgm7$$\"+\">K'*)\\Fjgm$!+&\\OoQ)Fbgm7$$\"+vMw%>&Fjgm$!+6.gY>Fjgm7$$ \"+gZ*)*R&Fjgm$!+\\3]RIFjgm7$$\"+Sg-0cFjgm$!+7Lk\"4%Fjgm7$$\"+Dt:5eFjg m$!+R/Ry]Fjgm7$$\"+!R/B-'Fjgm$!+)Rdd+'Fjgm7$$\"+g9XMiFjgm$!+hz)f\"oFjg m7$$\"+D&)fYkFjgm$!+-()f*[(Fjgm7$$\"+\"fX(emFjgm$!+G%=3,)Fjgm7$$\"++B@ qoFjgm$!+Js2n$)Fjgm7$$\"+5!z;3(Fjgm$!+_.)Hb)Fjgm7$$\"+lBT(=(Fjgm$!+#oc 4e)Fjgm7$$\"+?d9$H(Fjgm$!+7>el&)Fjgm7$$\"+q!z))R(Fjgm$!+y)or])Fjgm7$$ \"+DCh/vFjgm$!+qbH1%)Fjgm7$$\"+I>8AxFjgm$!+b_3p!)Fjgm7$$\"+I9lRzFjgm$! +'eKlc(Fjgm7$$\"+I4\"Fif n$\"+PW'R'eFjgm7$$\"+9rR37Fifn$\"+ZWt*z&Fjgm7$$\"+O(\\tA\"Fifn$\"+'HIa g&Fjgm7$$\"+fBIY7Fifn$\"+zP#*H`Fjgm7$$\"+h`P\"H\"Fifn$\"+uW)GS%Fjgm7$$ \"+j$[kL\"Fifn$\"+Cu'y?$Fjgm7$$\"+36ju8Fifn$\"+@W.)4#Fjgm7$$\"+`Q\"GT \"Fifn$\"+;EvO**Fbgm7$$\"+i%HsX\"Fifn$!+jgP&z\"Fbgm7$$\"+s]k,:Fifn$!+d :SS6Fjgm7$$\"+7/'4a\"Fifn$!+C0riM;Fifn$!+vWl8BFjgm 7$$\"+#\\y\\k\"Fifn$!+9\"\\(*H#Fjgm7$$\"+#Gidl\"Fifn$!+i,4sAFjgm7$$\"+ sgam;Fifn$!+p&p:B#Fjgm7$$\"+W4i2Fjgm7$$\"+Fifn$!+k%*HO5Fbgm7$$\"+_)[V$>Fifn$\"+>=#)RZ!#87$$\"+\\Wdb>Fifn$\" +(4HXW)!#77$$\"+Y+!o(>Fifn$\"+M:jc8Fbgm7$$\"+Uc-)*>Fifn$\"+[t&ef\"Fbgm 7$$\"+rI2??Fifn$\"+=#3!y:Fbgm7$$\"++07U?Fifn$\"+He-@8Fbgm7$$\"+Iz;k?Fi fn$\"+rE[\\')F\\bo7$$\"+f`@'3#Fifn$\"+/yw`DF\\bo7$$\"+j+gC@Fifn$!+v#f[ -\"Fbgm7$$\"+nZ)H;#Fifn$!+z7laBFbgm7$$\"++8W/AFifn$!+oG!*eNFbgm7$$\"+K y*eC#Fifn$!+!*eoqUFbgm7$$\"+f@JnAFifn$!+WF]%Q%Fbgm7$$\"+'[E()G#Fifn$!+ Qu\\0VFbgm7$$\"+8395BFifn$!+lo&y-%Fbgm7$$\"+S^bJBFifn$!+pbO`NFbgm7$$\" +AYXtBFifn$!+n#4m4#Fbgm7$$\"+0TN:CFifn$!+j(y/*Fbg m7$$\"+]@o1EFifn$\"+c=>%o*Fbgm7$$\"+%30pi#Fifn$\"+X2i95Fjgm7$$\"+=!Grk #Fifn$\"+MG6U5Fjgm7$$\"+`4NnEFifn$\"+e]3]5Fjgm7$$\"+_K%*)o#Fifn$\"+$3* oO5Fjgm7$$\"+_b`5FFifn$\"+()>)3+\"Fjgm7$$\"+^y7KFFifn$\"+@:%[V*Fbgm7$$ \"+],s`FFifn$\"+%eI*e')Fbgm7$$\"+9=&Gz#Fifn$\"+4;`.oFbgm7$$\"+zM)>$GFi fn$\"+*[f;]%Fbgm7$$\"+qfaSe8Fbgm7$$\"+9)z/Y$Fifn$\"+7Ow$o#Fbgm7$$\"+Epa-NFifn$\"+B/y8OFbgm7 $$\"+LA?TNFifn$\"+OJ?%4%Fbgm7$$\"+Sv&)zNFifn$\"+*3#)eA%Fbgm7$$\"+%)3;C OFifn$\"+3[s'*RFbgm7$$\"+GUYoOFifn$\"+\"3$zZMFbgm7$$\"+2^rZPFifn$\"+Z! )o@?Fbgm7$$\"+sI@KQFifn$\"+T%f9*[F\\bo7$$\"+2%)38RFifn$!+0Q4\"y%F\\bo7 $F]fm$!+U,00yF\\bo-Fbfm6&FdfmF(FefmF(-Fifm6#\"\"#-%+AXESLABELSG6$%\"xG %%y(x)G-%%VIEWG6$;F(F]fm%(DEFAULTG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "xx := Pi;\nevalf(g n(xx));\nevalf(evalf[15](g(xx)));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#> %#xxG%#PiG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$!+`OyU')!#6" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$!+`OyU')!#6" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 85 "The derivative of the solution can a lso be obtained with the either of the options ''" }{TEXT 272 16 "outp ut=derivstep" }{TEXT -1 8 "'' or ''" }{TEXT 272 18 "output=derivinterp " }{TEXT -1 3 "''." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 287 "de := diff(y(x),x$2)+2*diff(y(x),x)+26*y(x) =39*exp(-x)*cos(8*x);\nic := y(0)=0,D(y)(0)=0;\n##dgn := desolveK2(\{d e,ic\},x=0..4,method=rk78,output=derivstep);\ndgn := desolveK2(\{de,ic \},x=0..4,method=rk78,output=derivinterp);\nplot([D(g)(x),'dgn'(x)],x= 0..4,color=[brown,coral],thickness=[1,2]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-%%diffG6$-%\"yG6#%\"xG-%\"$G6$F-\"\"#\"\"\"*& F1F2-F(6$F*F-F2F2*&\"#EF2F*F2F2,$*(\"#RF2-%$expG6#,$F-!\"\"F2-%$cosG6# ,$*&\"\")F2F-F2F2F2F2" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\" yG6#\"\"!F*/--%\"DG6#F(F)F*" }}{PARA 13 "" 1 "" {GLPLOT2D 675 322 322 {PLOTDATA 2 "6&-%'CURVESG6%7is7$$\"\"!F)F(7$$\"3emmm;arz@!#>$\"3%p*pOW *[(o\")!#=7$$\"39LLLL3VfVF-$\"3;\"G_Xy'4Z:!#<7$$\"3s******\\i9RlF-$\"3 s$3;>T]R;#F67$$\"3Hmmmm;')=()F-$\"37e&)*oKlgk#F67$$\"3KLLeR?ah5F0$\"3j Vv'H\"HnVHF67$$\"3-++]7z>^7F0$\"35Zup&)z!47$F67$$\"3AL$e*[e-Y8F0$\"37c S/'G?L;$F67$$\"3qmmT&y`3W\"F0$\"3qHawn\"*zuJF67$$\"3ILek`xE)[\"F0$\"3i uG!o(Q)*oJF67$$\"3=+](=s\"oN:F0$\"3/0MA\")f^bJF67$$\"3ymT5!p&4$e\"F0$ \"3\"\\2Jre\\W8$F67$$\"3RLLLe'40j\"F0$\"3VJ$Q,_^e5$F67$$\"3rmm\"H_(zV= F0$\"3!oz:o4qk)GF67$$\"3/++](Q&3d?F0$\"3Y_GwRm&o_#F67$$\"3MLL3_KPqAF0$ \"33,2dbenT?F67$$\"3mmmm;6m$[#F0$\"3W*Q@.*RX\\9F67$$\"3Ommm\"zi$)p#F0$ \"3s-q?gvJrwF07$$\"3jmmmmW18HF0$\"3o'ovPJk'zAF-7$$\"3*omm;9mx7$F0$!39n XR303vvF07$$\"3fmmm;yYULF0$!3%[nLawqqa\"F67$$\"3KLL3_!\\hb$F0$!3-2UnI( *y:BF67$$\"3/++](GI)pPF0$!3)*QOg73HUIF67$$\"3Amm\"H_6N)RF0$!34h37B#4Kq $F67$$\"3%HLL$eF>(>%F0$!3WU[\\cPhxUF67$$\"3Q*****\\Z7Mf%F0$!3!z>Ih-a`0 &F67$$\"3Qmmm\">K'*)\\F0$!3)R*)fw)p4&R&F67$$\"3'GLLL$y>#4&F0$!3wbx8vNM 1aF67$$\"3M*****\\ZjZ>&F0$!3[*4C!4>h&Q&F67$$\"3#emmm6HtH&F0$!3X4mhCX0L `F67$$\"3IKLLeZ*)*R&F0$!3i+z()\\x.\\_F67$$\"3HlmmTg-0cF0$!3+VfQj\"G\"* )\\F67$$\"3P*****\\Kd,\"eF0$!3=^Kp19'Gh%F67$$\"3Jmmm\"R/B-'F0$!3iL0gLn #>6%F67$$\"39KLLe9XMiF0$!34$\\3\"HX66NF67$$\"33*****\\_)fYkF0$!3'H616s zo#GF67$$\"3-mmm\"fX(emF0$!3I7FdU9nx?F67$$\"3E*******H7-(oF0$!3)>/j5kg fG\"F67$$\"3_KLL3!z;3(F0$!3CD:(RTW%*p%F07$$\"3ylmm;d9$H(F0$\"3Y@GriSP' \\$F07$$\"3.*****\\U7Y](F0$\"3S!>&)yR(Q_6F67$$\"3HLL3F>8AxF0$\"3)ecx-o :+%>F67$$\"3Wmm;H9lRzF0$\"3U)>frp=&pEF67$$\"3e***\\7$4 ;i%F67$$\"3xmmm;c0T\"*F0$\"3/fwob'3i*\\F67$$\"3)QL$3F))*)[#*F0$\"3Gd0) f\"*)GM]F67$$\"3))****\\P?uc$*F0$\"32b#\\*4@%H/&F67$$\"3LK$3Fkj1T*F0$ \"30X_t*[^j.&F67$$\"3!fm;zC&ek%*F0$\"3(4N'*30pD-&F67$$\"3W**\\7`o]=&*F 0$\"3pC/Q9Qn,]F67$$\"3+LLLe%GCd*F0$\"3%p#R1Tfvt\\F67$$\"37mm;z[6)y*F0$ \"3wg?=Sk.%z%F67$$\"3#*******H,Q+5F6$\"3-j*[SGw=^%F67$$\"3#)*****\\LP? -\"F6$\"3&)R=vi$[g8%F67$$\"3&*******RXpV5F6$\"3?eBdRN;!o$F67$$\"33+++X \\(y'zF07$$\"3mmm;fBIY7F6$!3'fRM_@CEl \"F67$$\"33++Dh`P\"H\"F6$!3)*H(=DeV*3CF67$$\"3GLLLj$[kL\"F6$!3yMcE$4Hr $GF67$$\"37LLe\\S*fM\"F6$!3kB$3ek*H%)GF67$$\"3?LL$etRbN\"F6$!308)=T+pk \"HF67$$\"3GLL3Aa3l8F6$!38`[^<)yQ$HF67$$\"3MLLL36ju8F6$!3nw)ow,Vo$HF67 $$\"3ULLe%zwTQ\"F6$!3'f;9IZWd#HF67$$\"3ELL$3[APR\"F6$!34oc'yKJ5!HF67$$ \"38LL3n\"oKS\"F6$!3)ezhM08K'GF67$$\"3?LLL`Q\"GT\"F6$!3ukFDRi&G\"GF67$ $\"3mmm\"HYHsX\"F6$!3&)R$p*Q1#HV#F67$$\"3!*****\\s]k,:F6$!3O`%4:J<-(=F 67$$\"3_mm\"HTg4a\"F6$!3[]EROo!yG\"F67$$\"39LLL`dF!e\"F6$!3[!=&op-X&)o F07$$\"3^mm\"H\"4TB;F6$!3VFlrKuX@wF-7$$\"33++]sgam;F6$\"3$ep)Q!)p#\\K% F07$$\"3&******\\%4i2%yF07$$\"3/++]F6$\"3C69,v *44x&F07$$\"3immmTc-)*>F6$\"398&G1#4[Q^F-7$$\"3[mmT+07U?F6$!3)*>&)*y^o (\\;F07$$\"3Mmm;f`@'3#F6$!3-@]/N_XRIF07$$\"3\")***\\7r2a5#F6$!3WsA\\<^ ]kLF07$$\"3HLLLj+gC@F6$!3#40(p$p^V^$F07$$\"3wmmT:CzV@F6$!31A'\\+!3'=\\ $F07$$\"3y****\\nZ)H;#F6$!3[=W5d+j/LF07$$\"3NLLe*HTW?#F6$!3]v!o]-<(*R# F07$$\"3YmmmJy*eC#F6$!3>VpT1&ztj*F-7$$\"3')******R^bJBF6$\"3]r$GF6$!3[Ay#)*)*R0I'F07$$\"3i**\\(=5uL&GF6$!3q[1=0!3F07$$\"33LLe*3k**y$F6$!3;/\"**)3MfU=F07$$\"34++ ]sI@KQF6$!3A%e0=r\"\\s:F07$$\"34++]2%)38RF6$!3m!omu(er^yF-7$$\"\"%F)$ \"3'=EmF>Gq*\\Fb^m-%'COLOURG6&%$RGBG$\")#)eqk!\")$\"))eqk\"FjgmF[hm-%* THICKNESSG6#\"\"\"-F$6%7isF'7$$\"+;arz@!#6$\"+U*[(o\")!#57$$\"+L3VfVFg hm$\"+%y'4Z:!\"*7$$\"+]i9RlFghm$\"+7/&R;#F`im7$$\"+m;')=()Fghm$\"+F`1Y EF`im7$$\"+S?ah5Fjhm$\"+8HnVHF`im7$$\"+7z>^7Fjhm$\"+&)z!47$F`im7$$\"+[ e-Y8Fjhm$\"+'G?L;$F`im7$$\"+&y`3W\"Fjhm$\"+o\"*zuJF`im7$$\"+axE)[\"Fjh m$\"+xQ)*oJF`im7$$\"+Ak 'zAFghm7$$\"+UhwFJFjhm$!+?03vvFjhm7$$\"+(>%Fjhm$!+cPhxUF`im7$$\"+uCT$f%Fjhm$!+DSNb]F`im7$$\" +\">K'*)\\Fjhm$!+()p4&R&F`im7$$\"+Ny>#4&Fjhm$!+vNM1aF`im7$$\"+vMw%>&Fj hm$!+4>h&Q&F`im7$$\"+?\"HtH&Fjhm$!+AX0L`F`im7$$\"+gZ*)*R&Fjhm$!+[x.\\_ F`im7$$\"+Sg-0cFjhm$!+m\"G\"*)\\F`im7$$\"+Dt:5eFjhm$!+29'Gh%F`im7$$\"+ !R/B-'Fjhm$!+Qn#>6%F`im7$$\"+g9XMiFjhm$!+CX66NF`im7$$\"+D&)fYkFjhm$!+@ (zo#GF`im7$$\"+\"fX(emFjhm$!+X9nx?F`im7$$\"++B@qoFjhm$!+T1'fG\"F`im7$$ \"+5!z;3(Fjhm$!+]VW*p%Fjhm7$$\"+?d9$H(Fjhm$\"+\">uj\\$Fjhm7$$\"+DCh/vF jhm$\"+)R(Q_6F`im7$$\"+I>8AxFjhm$\"+\"p:+%>F`im7$$\"+I9lRzFjhm$\"++(=& pEF`im7$$\"+I4;i%F`im7$$\"+;c0T\"*Fjhm$\"+b'3i*\\F`im7$$\"+I))*) [#*Fjhm$\"+<*)GM]F`im7$$\"+S?uc$*Fjhm$\"+5@%H/&F`im7$$\"+XOm5%*Fjhm$\" +*[^j.&F`im7$$\"+]_ek%*Fjhm$\"+]!pD-&F`im7$$\"+bo]=&*Fjhm$\"+9Qn,]F`im 7$$\"+g%GCd*Fjhm$\"+Sfvt\\F`im7$$\"+!)[6)y*Fjhm$\"+Rk.%z%F`im7$$\"+I,Q +5F`im$\"+%Gw=^%F`im7$$\"+Nt.A5F`im$\"+j$[g8%F`im7$$\"+SXpV5F`im$\"+SN ;!o$F`im7$$\"+XR`'e#F`im7$$ \"+!ozy5\"F`im$\"+bC$G+#F`im7$$\"+5/vG6F`im$\"+'H'4-9F`im7$$\"+S6i\\6F `im$\"+^;I))zFjhm7$$\"+q=\\q6F`im$\"+o1,q?Fjhm7$$\"+9rR37F`im$!+uZ(y'z Fjhm7$$\"+fBIY7F`im$!+7Ui_;F`im7$$\"+h`P\"H\"F`im$!+zN%*3CF`im7$$\"+j$ [kL\"F`im$!+\"4Hr$GF`im7$$\"+]S*fM\"F`im$!+['*H%)GF`im7$$\"+O(RbN\"F`i m$!+0!pk\"HF`im7$$\"+Aa3l8F`im$!+<)yQ$HF`im7$$\"+36ju8F`im$!+=I%o$HF`i m7$$\"+%zwTQ\"F`im$!+uWuDHF`im7$$\"+![APR\"F`im$!+J8.,HF`im7$$\"+m\"oK S\"F`im$!+fI@jGF`im7$$\"+`Q\"GT\"F`im$!+Ti&G\"GF`im7$$\"+i%HsX\"F`im$! +\\1#HV#F`im7$$\"+s]k,:F`im$!+>t@q=F`im7$$\"+7/'4a\"F`im$!+]o!yG\"F`im 7$$\"+`dF!e\"F`im$!+?.X&)oFjhm7$$\"+74TB;F`im$!+X'e9i(Fghm7$$\"+sgam;F `im$\"+Hp#\\K%Fjhm7$$\"+W4i2%yFjhm7$$\"+F`im$\"+l*44x&Fjhm7$$\"+Uc-)*>F`im$\"+S2[Q^Fghm7$$\"++07U?F`i m$!++&o(\\;Fjhm7$$\"+f`@'3#F`im$!+J_XRIFjhm7$$\"+6xS0@F`im$!+9^]kLFjhm 7$$\"+j+gC@F`im$!+#p^V^$Fjhm7$$\"+:CzV@F`im$!+-3'=\\$Fjhm7$$\"+nZ)H;#F `im$!+k+j/LFjhm7$$\"++8W/AF`im$!+8qr*R#Fjhm7$$\"+Ky*eC#F`im$!+u$ztj*Fg hm7$$\"+S^bJBF`im$\"+:S&Rm#Fjhm7$$\"+AYXtBF`im$\"+!HiHB%Fjhm7$$\"+0TN: CF`im$\"+ul$\\O&Fjhm7$$\"+cSiNCF`im$\"+R!*33dFjhm7$$\"+3S*eX#F`im$\"+# e,=!fFjhm7$$\"+gR;wCF`im$\"+vu\")RfFjhm7$$\"+7RV'\\#F`im$\"+ZRT?eFjhm7 $$\"+klWTDF`im$\"+@2l7]Fjhm7$$\"+:#fke#F`im$\"+<<&3b$Fjhm7$$\"+`4NnEF` im$!+w$30e*!#77$$\"+],s`FF`im$!+$o^K.%Fjhm7$$\"+9=&Gz#F`im$!+Y\"oZQ&Fj hm7$$\"+zM)>$GF`im$!+()*R0I'Fjhm7$$\"+-TP`GF`im$!+1!3Fjhm7$$\"+!4k**y$F`im$!+2MfU=Fjhm7$$\"+ sI@KQF`im$!+;<\\s:Fjhm7$$\"+2%)38RF`im$!+Jfr^yFghm7$F`gm$\"+&=Gq*\\Fb[ p-Fegm6&Fggm$\"*++++\"Fjgm$\")AR!)\\FjgmF(-F^hm6#\"\"#-%+AXESLABELSG6$ Q\"x6\"Q!F_ep-%%VIEWG6$;F(F`gm%(DEFAULTG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 38 "The underlying discret e solutions for " }{TEXT 275 1 "y" }{TEXT -1 5 " and " }{XPPEDIT 18 0 "dy/dx" "6#*&%#dyG\"\"\"%#dxG!\"\"" }{TEXT -1 35 " can be obtained wit h the option ''" }{TEXT 272 13 "output=points" }{TEXT -1 9 "'' and '' " }{TEXT 272 15 "output=derivpts" }{TEXT -1 16 "'' respectively." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 280 "de := diff(y(x),x$2)+2*diff(y(x),x)+26*y(x)=39*exp(-x)*cos(8*x); \nic := y(0)=0,D(y)(0)=0;\npts := desolveK2(\{de,ic\},x=0..4,method=rk 78,output=points):\nplot([g(x),pts],x=0..4,color=[coral,black],style=[ line,point],\n symbol=circle,labels=[`x `,`y'(x)`]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-%%diffG6$-% \"yG6#%\"xG-%\"$G6$F-\"\"#\"\"\"*&F1F2-F(6$F*F-F2F2*&\"#EF2F*F2F2,$*( \"#RF2-%$expG6#,$F-!\"\"F2-%$cosG6#,$*&\"\")F2F-F2F2F2F2" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%#icG6$/-%\"yG6#\"\"!F*/--%\"DG6#F(F)F*" }} {PARA 13 "" 1 "" {GLPLOT2D 589 333 333 {PLOTDATA 2 "6'-%'CURVESG6%7es7 $$\"\"!F)F(7$$\"39LLLL3VfV!#>$\"3Wg))*3PO!)\\$F-7$$\"3Hmmmm;')=()F-$\" 3qd3\"G'*eLG\"!#=7$$\"3-++]7z>^7F5$\"3Ka:gK9J#R#F57$$\"3RLLLe'40j\"F5$ \"3Q'3@]Gx()e$F57$$\"3/++](Q&3d?F5$\"3-'*>vlZ45[F57$$\"3mmmm;6m$[#F5$ \"3u_*oy[1Mn&F57$$\"3_mm;a>,\"f#F5$\"3#o0D#efP6eF57$$\"3Ommm\"zi$)p#F5 $\"3je.#*)*Rp7fF57$$\"3ImmT5#Q?v#F5$\"3=,-1&y@!\\fF57$$\"3Amm;HOr0GF5$ \"3#QR-')oCb(fF57$$\"3;mm\"z/*QfGF5$\"3s\"4g$ym-#*fF57$$\"3jmmmmW18HF5 $\"3_Qo!*\\OP)*fF57$$\"3.nm;/`T?IF5$\"3Gd[:jp4!)fF57$$\"3*omm;9mx7$F5$ \"3$=J/)>r!*>fF57$$\"3umm;zp6NKF5$\"3NA&oN-wt\"eF57$$\"3fmmm;yYULF5$\" 3AXmfp]VscF57$$\"3KLL3_!\\hb$F5$\"3Ago,T?>f_F57$$\"3/++](GI)pPF5$\"3S( )3=4Zw&o%F57$$\"3Amm\"H_6N)RF5$\"3yTKs*=3P'RF57$$\"3%HLL$eF>(>%F5$\"3 \\D&QFP@$4JF57$$\"3Wmmm;EI&R%F5$\"3)GZK'*)\\ F5$!3GN>6Jl$oQ)F-7$$\"3M*****\\ZjZ>&F5$!3;$H02J+m%>F57$$\"3IKLLeZ*)*R& F5$!3.,vfS3]RIF57$$\"3HlmmTg-0cF5$!3)=wV/KV;4%F57$$\"3P*****\\Kd,\"eF5 $!3el&p%R/Ry]F57$$\"3Jmmm\"R/B-'F5$!33+$\\YSdd+'F57$$\"39KLLe9XMiF5$!3 h5)*Gbz)f\"oF57$$\"33*****\\_)fYkF5$!3Kim!>q)f*[(F57$$\"3-mmm\"fX(emF5 $!3:)yp#H%=3,)F57$$\"3E*******H7-(oF5$!3'=n)HJs2n$)F57$$\"3_KLL3!z;3(F 5$!39$QR4N!)Hb)F57$$\"3g)***\\iBT(=(F5$!35LU)>oc4e)F57$$\"3ylmm;d9$H(F 5$!35C#RH\">el&)F57$$\"3'HLL32z))R(F5$!3Ky7(o()or])F57$$\"3.*****\\U7Y ](F5$!3*)e**QqbH1%)F57$$\"3HLL3F>8AxF5$!3_i'o5E&3p!)F57$$\"3Wmm;H9lRzF 5$!3Y;MM)eKlc(F57$$\"3e***\\7$4tR)40fF57$$\"3%)*\\PM!3 #*)>\"F^[l$\"3kOs.NW'R'eF57$$\"3@LLe9rR37F^[l$\"3%[1JDWM(*z&F57$$\"3$* **\\(ot\\tA\"F^[l$\"3fN2*\\GIag&F57$$\"3mmm;fBIY7F^[l$\"34u#3lxB*H`F57 $$\"33++Dh`P\"H\"F^[l$\"3H`:!yY%)GS%F57$$\"3GLLLj$[kL\"F^[l$\"3^$*3K9u 'y?$F57$$\"3MLLL36ju8F^[l$\"3aZX%3TM!)4#F57$$\"3?LLL`Q\"GT\"F^[l$\"3-Q =Z@DvO**F-7$$\"3mmm\"HYHsX\"F^[l$!335Mb'Gw`z\"F-7$$\"3!*****\\s]k,:F^[ l$!3OgW1m:SS6F57$$\"3_mm\"HTg4a\"F^[l$!3].!)eN0riM;F^[l$!3%R4MVZaOJ#F57$$ \"3IL$3F\\y\\k\"F^[l$!3'483C6\\(*H#F57$$\"3qmTg#Gidl\"F^[l$!3G**eWg,4s AF57$$\"33++]sgam;F^[l$!3zQ&)om&p:B#F57$$\"3&******\\%4i2 :bo(>F57$$\"3/++]8F^[l$!3nU* R@Z*HO5F-7$$\"3`m;H_)[V$>F^[l$\"3j%RM0:B)RZ!#@7$$\"3)****\\([Wdb>F^[l$ \"3$oBno-HXW)!#?7$$\"3UL$3_/+o(>F^[l$\"3ggff?:jc8F-7$$\"3immmTc-)*>F^[ l$\"3#)*=SiMdef\"F-7$$\"3ym;/rI2??F^[l$\"3cQpS=#3!y:F-7$$\"3[mmT+07U?F ^[l$\"3v#pWD#e-@8F-7$$\"3=m;zHz;k?F^[l$\"3))e.\"Qs#[\\')Fafl7$$\"3Mmm; f`@'3#F^[l$\"3-?Hfbxw`DFafl7$$\"3HLLLj+gC@F^[l$!3s&oHkGf[-\"F-7$$\"3y* ***\\nZ)H;#F^[l$!3gvuN&H^YN#F-7$$\"3NLLe*HTW?#F^[l$!3IH'*[eG!*eNF-7$$ \"3YmmmJy*eC#F^[l$!3]B#>n)eoqUF-7$$\"3!)***\\(e@JnAF^[l$!3-?FwVF]%Q%F- 7$$\"3;LL$e[E()G#F^[l$!3m$R?*Ru\\0VF-7$$\"3^mm\"H\"395BF^[l$!3%3S=j'o& y-%F-7$$\"3')******R^bJBF^[l$!3!f]7&pbO`NF-7$$\"3s****\\AYXtBF^[l$!3cL lqX#4m4#F-7$$\"3f*****\\5a`T#F^[l$!39(*zp$y\"Q_nF[fl7$$\"3o****\\7RV' \\#F^[l$\"3VRrWaExLYF-7$$\"3m***\\PcY9a#F^[l$\"3E\"38SG%**)4(F-7$$\"3k *****\\@fke#F^[l$\"3c#3Jr'>(y/*F-7$$\"3+LLe\\@o1EF^[l$\"3+pm/W=>%o*F-7 $$\"3Nmm;%30pi#F^[l$\"3Re\\pX2i95F57$$\"3q***\\(=!Grk#F^[l$\"38$*y&[$G 6U5F57$$\"3/LLL`4NnEF^[l$\"3yGy,e]3]5F57$$\"3m****\\_K%*)o#F^[l$\"3?Z' GE3*oO5F57$$\"3Emmm^b`5FF^[l$\"3;<*Hy)>)3+\"F57$$\"3(GLL3&y7KFF^[l$\"3 6%Ryg_T[V*F-7$$\"3#*******\\,s`FF^[l$\"3Mr25%eI*e')F-7$$\"3)HL$e9=&Gz# F^[l$\"3NPxXx:`.oF-7$$\"3[mm;zM)>$GF^[l$\"3N]+8y%f;]%F-7$$\"3$*******p faSe8F-7$$\"39++v8)z/Y$F^[l$\"3!ezU`gjPo#F-7$$\"3FLL$e#pa-NF^[l$\"3 M0+c?/y8OF-7$$\"3emm\"HB-7a$F^[l$\"3A'y!4NJ?%4%F-7$$\"3!*******Rv&)zNF ^[l$\"3m'ex*)3#)eA%F-7$$\"3#ommT)3;COF^[l$\"3#)HN91[s'*RF-7$$\"3ILLLGU YoOF^[l$\"3K$3Fd2$zZMF-7$$\"3_mmm1^rZPF^[l$\"3-bJu`!)o@?F-7$$\"34++]sI @KQF^[l$\"3'[U^;Of9*[Fafl7$$\"34++]2%)38RF^[l$!3c!Qn_%Q4\"y%Fafl7$$\" \"%F)$!3tm$RC9]]!yFafl-%'COLOURG6&%$RGBG$\"*++++\"!\")$\")AR!)\\FgfmF( -%&STYLEG6#%%LINEG-F$6%7`qF'7$$\"3i*****fr4Zq'!#K$\"3O*****H\"3'ew)!#X 7$$\"37+++2+++]!#B$\"3%)*****pjv\\([!#F7$$\"31+++,+++5!#A$\"3#)*****4] !)*\\>!#E7$$\"3)******\\&[$G>#Fbhm$\"3i*****4_ O'GJ\\F[hm7$$\"3!*******o]m\"H*F[fl$\"3))******[*e>o\"Fbhm7$$\"37+++vJ begFbhm7$$\"3>+++J\"))oS$Fafl$\"37+++24XbAF[fl7$$\"3 :+++O.v:oFafl$\"3++++Du)R**)F[fl7$$\"3/+++,k588F-$\"3.+++H2=9LFafl7$$ \"3%******\\(QCpBF-$\"3/+++OM_k5F-7$$\"3q*****4))oWL%F-$\"3M+++@Z^fMF- 7$$\"3[*******Qk*QsF-$\"3L+++Bf2S\"*F-7$$\"3%*******>*)fZ5F5$\"35+++PK Ou.S\"F5$\"37+++@2fiGF57$$\"37+++?8='y\"F5$\"35+++2I%> 1%F57$$\"3$********=`@?#F5$\"3o******>!4V:&F57$$\"3G+++(Rn4l#F5$\"3U++ +]hgseF57$$\"3x*****R=4E9$F5$\"3&******HFe#3fF57$$\"3A+++#=%*pt$F5$\"3 #)*****pu$*Qy%F57$$\"3()*****\\2-$4UF5$\"3/+++sHMdIF57$$\"3%)*****>\\g Ko%F5$\"3g+++)fjJ(yF-7$$\"3M+++^J?=^F5$!3.+++\"\\aM`\"F57$$\"3X+++^uaL bF5$!3z*****\\?=7t$F57$$\"3q*****Rt?D&fF5$!3]+++Pye7dF57$$\"3f*****zu. -T'F5$!3/+++!HzWQ(F57$$\"3b+++Bh#o\"pF5$!3))*****>OkGU)F57$$\"3')***** \\))y5](F5$!3@+++;VM5%)F57$$\"3e*****>$>^S!)F5$!3e*****ptF8G(F57$$\"3a +++XY6%e)F5$!3)******\\Lm^E&F57$$\"3w*****f3\"3&4*F5$!3C+++c1(3'GF57$$ \"3'******H)p:!e*F5$!3o*****4IDEE%F-7$$\"3.+++l$oM+\"F^[l$\"3\"******f ^fXt\"F57$$\"31+++45-\\5F^[l$\"3%)*****4N`Wd$F57$$\"3'******pivn4\"F^[ l$\"3++++Knh&)\\F57$$\"3!******4\\'[c6F^[l$\"3')*****zgW'eeF57$$\"3*)* *****yC.;7F^[l$\"3c*****>L[OF57$$\"3-+++1EHs8F^[l$\"35+++,6sm@F57 $$\"3/+++3X*>U\"F^[l$\"3%******ffT4Q(F-7$$\"33+++uoyq9F^[l$!3s*****\\% *=(*)\\F-7$$\"3/+++!Qv9_\"F^[l$!3%******RitH[\"F57$$\"3#******zN%\\q:F ^[l$!3')*****4#zFw?F57$$\"3(******4))f,i\"F^[l$!36+++GN!)4BF57$$\"3#** ****R3n!p;F^[l$!3++++dGM?AF57$$\"3#******>Wovr\"F^[l$!35+++b2i&*=F57$$ \"3#******z6xew\"F^[l$!3(******H`@MV\"F57$$\"32+++jG@9=F^[l$!3O*****z/ ]aH*F-7$$\"3++++3[0j=F^[l$!3G+++U!)R`YF-7$$\"3'******4\\[S\">F^[l$!3Y* ****HL(pJ)*Fafl7$$\"35+++>P8c>F^[l$\"3l*****f+8dh)Fafl7$$\"31+++R)oB*> F^[l$\"3%******zuUxb\"F-7$$\"3)******\\v%))G?F^[l$\"32+++_W*=]\"F-7$$ \"3-+++b+Sl?F^[l$\"3<+++(Ht[M)Fafl7$$\"36+++v/Y,@F^[l$!38+++V%f;I#Fafl 7$$\"39+++eoTN@F^[l$!34+++R\"HfS\"F-7$$\"3A+++H\"43<#F^[l$!34+++Dpk3EF -7$$\"3\"******H,Y\"3AF^[l$!3A+++iQyXOF-7$$\"3;+++WTH]AF^[l$!3I+++KrB4 VF-7$$\"3!*******>wF)H#F^[l$!3F+++yGF1UF-7$$\"3#)*****f-XWM#F^[l$!3#** ****4%)pj<$F-7$$\"3/+++#GU7*[AF-7$$\"3&******H'*oJ\"HF^[l$!3A+++/It!z)Fafl7$$\"3/+++sB 5dHF^[l$!3n*****\\Nt0j$F-7$$\"39+++y1$=+$F^[l$!3s*****4U\\%yfF-7$$\"3- +++$4*H]IF^[l$!3K+++)*okwxF-7$$\"3#******4:i#3JF^[l$!3`*****px:fr)F-7$ $\"3=+++1l\"H;$F^[l$!3#******>/8]P)F-7$$\"3=+++fQ$y@$F^[l$!3_+++*f3*)* pF-7$$\"3')*****zqe,F$F^[l$!3?+++^Vo-]F-7$$\"3$)*****p*fz?LF^[l$!3/+++ S9s]FF-7$$\"3!******4!R)*pLF^[l$!3#)******>s&3e&Fafl7$$\"32+++%GBtT$F^ [l$\"31+++?mR>8F-7$$\"35+++@SQmMF^[l$\"3&******HV#HRGF-7$$\"3$******\\ <=*>NF^[l$\"33+++:z9uQF-7$$\"3!)******>bptNF^[l$\"3L+++M'>qA%F-7$$\"3$ )*****p!3&\\i$F^[l$\"3?+++N8V*)RF-7$$\"35+++9%*=vOF^[l$\"3.+++ZjHVLF-7 $$\"3&******Hs6\\s$F^[l$\"39+++cmBhCF-7$$\"3++++B[VuPF^[l$\"3'******RI :n]\"F-7$$\"3;+++'o.U#QF^[l$\"3s******Q)Qg<'Fafl7$$\"39+++D+_vQF^[l$!3 !*******[)\\:4\"Fafl7$$\"3!*******p1@?RF^[l$!3!******>2bNJ&Fafl7$$\"33 +++'yug'RF^[l$!3%******HW(e([(Fafl7$F]fm$!3J+++U,00yFafl-Fbfm6&FdfmF)F )F)-F[gm6#%&POINTG-%'SYMBOLG6#%'CIRCLEG-%+AXESLABELSG6$%\"xG%&y'(x)G-% %VIEWG6$;F(F]fm%(DEFAULTG" 1 2 4 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{SECT 1 {PARA 4 "" 0 " " {TEXT -1 9 "Example 4" }{TEXT 276 108 " .. simultaneous construction of numerical procedures for both the solution and its derivative - ph ase curve" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{PARA 0 " " 0 "" {TEXT -1 34 "Consider the initial value problem" }}{PARA 257 " " 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "d^2*y/(d*x^2)+2;" "6#,&*(%\"dG \"\"#%\"yG\"\"\"*&F%F(*$%\"xGF&F(!\"\"F(F&F(" }{TEXT -1 1 " " } {XPPEDIT 18 0 "dy/dx+2*y = cos(x)/2;" "6#/,&*&%#dyG\"\"\"%#dxG!\"\"F'* &\"\"#F'%\"yGF'F'*&-%$cosG6#%\"xGF'F+F)" }{TEXT -1 3 ", " }{XPPEDIT 18 0 "y(0) = 1;" "6#/-%\"yG6#\"\"!\"\"\"" }{TEXT -1 2 ", " }{XPPEDIT 18 0 "`y '`(0) = 0;" "6#/-%$y~'G6#\"\"!F'" }{TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 59 "First we find an analytical solution and set up a function " }{TEXT 272 1 "g" }{TEXT -1 17 " to evaluate it. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 122 "d e := diff(y(x),x$2)+2*diff(y(x),x)+2*y(x)=cos(x)/2;\nic := y(0)=1,D(y) (0)=0;\ndsolve(\{de,ic\},y(x));\ng := unapply(rhs(%),x):" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%#deG/,(-%%diffG6$-%\"yG6#%\"xG-%\"$G6$F-\"\"# \"\"\"*&F1F2-F(6$F*F-F2F2*&F1F2F*F2F2,$*&#F2F1F2-%$cosGF,F2F2" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\"yG6#\"\"!\"\"\"/--%\"DG6# F(F)F*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/-%\"yG6#%\"xG,**&#\"\"(\"#5 \"\"\"*&-%$expG6#,$F'!\"\"F--%$sinGF&F-F-F-*&#\"\"*F,F-*&F/F--%$cosGF& F-F-F-*&#F-\"\"&F-F4F-F-*&#F-F,F-F:F-F-" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 18 "With the option ''" }{TEXT 272 21 "output=procedure_pair" }{TEXT -1 3 "'' " }{TEXT 0 9 "desolveK2" } {TEXT -1 173 " constructs numerical procedures for the solution and it s derivative simultaneously. It is convenient to make a double assignm ent to names for the two numerical procedures. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 307 "de := diff( y(x),x$2)+2*diff(y(x),x)+2*y(x)=cos(x)/2;\nic := y(0)=1,D(y)(0)=0;\n## (gn,dgn) := desolveK2(\{de,ic\},x=0..20,method=rk78,output=procedure_p air);\n(gn,dgn) := desolveK2(\{de,ic\},x=0..20,method=rk78,output=inte rp_pair);\nplot([g(x),'gn'(x)],x=0..20,color=[red,green],thickness=[1, 2],labels=[`x`,`y(x)`]);" }{TEXT -1 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-%%diffG6$-%\"yG6#%\"xG-%\"$G6$F-\"\"#\"\"\"*&F1F2-F(6$ F*F-F2F2*&F1F2F*F2F2,$*&#F2F1F2-%$cosGF,F2F2" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\"yG6#\"\"!\"\"\"/--%\"DG6#F(F)F*" }}{PARA 13 "" 1 "" {GLPLOT2D 689 323 323 {PLOTDATA 2 "6&-%'CURVESG6%7eq7$$\"\" !F)$\"\"\"F)7$$\"3emmm;arz@!#=$\"3'[a)yo0?#p*F/7$$\"39LLLL3VfVF/$\"3ci h'yc\"*z$*)F/7$$\"3]****\\i&*)fD'F/$\"37=jd(!#>7$$\"3ULL$e4;[\\#F D$\"3W))3Bx;VE;F_o7$$\"3#omm\"zt%**p#FD$!3s+2c`l[\\RF_o7$$\"3!)****\\i 'y]!HFD$!3QscJ^AAF*)F_o7$$\"3oLL$ezs$HLFD$!3Wt$=&GPD>&*Q#F/7$$\"3\"Q$e9T`'H8%FD$!3cRWHUR/ %R#F/7$$\"3Onmm;_M(=%FD$!3)eC`r(>N#R#F/7$$\"3?MLek39$G%FD$!3k2f6_VEuBF /7$$\"3/,+]7l$*yVFD$!3#Q?YzU:qL#F/7$$\"3)ym;/;KZZ%FD$!3=%*GEBA'3G#F/7$ $\"3%QLL$3y_qXFD$!3n<6iDx?1AF/7$$\"3;nm;HU@'y%FD$!39g3&=(R]t>F/7$$\"3] +++]1!>+&FD$!3mpvlX,7f;F/7$$\"3J+++]Z/NaFD$!3=Fst')=jc$)F_o7$$\"3;+++] $fC&eFD$\"3KKxidu\"*p))!#?7$$\"3qLL$ez6:B'FD$\"31I)G*['yK7*F_o7$$\"3/n mm;=C#o'FD$\"3(GBrF%[K7F/7$$\"3Mnmmm# pS1(FD$\"38$puhe)yF@F/7$$\"3K+]i!H3^<(FD$\"3GSh3bK(H>#F/7$$\"3KLLe9t9' G(FD$\"3)4=e3_+8B#F/7$$\"3C+DcEomTtFD$\"3>kJkxDBSAF/7$$\"3=n;aQj=(R(FD $\"31s4[y'*HUAF/7$$\"37M3_]eq_uFD$\"3RxV'[0&\\PAF/7$$\"3<++]i`A3vFD$\" 3yaRXLH$eA#F/7$$\"3GLLek?![q(FD$\"3.7()p[f8I@F/7$$\"3Rmmmm(y8!zFD$\"3W &><)*Q0G&>F/7$$\"3IMLekX0<\")FD$\"3MW\\5X/Ys;F/7$$\"3K,+]i.tK$)FD$\"3m w4KvA(\\J\"F/7$$\"3!3++v3zMu)FD$\"30)G]:IxV#[F_o7$$\"3Yomm\"H_?<*FD$!3 [dAb\"*4q)o%F_o7$$\"3-nm;zihl&*FD$!3WI%3\\aQ:F\"F/7$$\"33++vVA(yx*FD$! 3f(Hk2()G0j\"F/7$$\"39LLL3#G,***FD$!3afh]*fWj\">F/7$$\"3@L3_Nl.55!#;$! 3r%4ws\\>:.#F/7$$\"3HL$3-Dg5-\"Fg[l$!3f%[:AsP?7#F/7$$\"3OLe*['R3K5Fg[l $!3i!y1H'3!o=#F/7$$\"3WLLezw5V5Fg[l$!33Um-UH-DAF/7$$\"3=+]ibQq_5Fg[l$! 3Na2_'e#F/7$$\"3/++v$Q#\\\"3\"Fg[l$!3)*RaIOWHZ@F/7$$\"3nm;z\\1A-6 Fg[l$!3'z!p+%4sF(>F/7$$\"3]LL$e\"*[H7\"Fg[l$!37+6?K!3Qr\"F/7$$\"3-+++q vxl6Fg[l$!3U'fFo7mUi*F_o7$$\"31++]_qn27Fg[l$!3)QtFJC`)*z&Fdu7$$\"37++D cp@[7Fg[l$\"3OVID+z&GG)F_o7$$\"3+++]2'HKH\"Fg[l$\"3!Q*p(fnY%\\;F/7$$\" 3ELL3UDX88Fg[l$\"3t`T8>I2>>F/7$$\"3`mmmwanL8Fg[l$\"3\"z:]lV$[5@F/7$$\" 3$)***\\iirWM\"Fg[l$\"3cO$=8)*3y<#F/7$$\"3KLL$exn_N\"Fg[l$\"36\"R$f(ev (>AF/7$$\"3'***\\i]emg8Fg[l$\"3j&GB^'[3JAF/7$$\"3!om;a#R1m8Fg[l$\"3*)4 %*4%e%*eB#F/7$$\"3WL$3-+i9P\"Fg[l$\"322R@K2>MAF/7$$\"35+++v+'oP\"Fg[l$ \"3aBmEs#yfA#F/7$$\"3ILe9\"*Hk'Q\"Fg[l$\"3oE-&3[)f%>#F/7$$\"3om;H2fU'R \"Fg[l$\"3nSzzQ@BU@F/7$$\"3/+vVB)3iS\"Fg[l$\"3'*p/45+Qp?F/7$$\"3CLLeR< *fT\"Fg[l$\"3m9P1h(Qn(>F/7$$\"3um;HiBQP9Fg[l$\"3\"))*3j%R.)4cF _o7$$\"3:++DTO5T:Fg[l$!39FWUaiv5PF_o7$$\"3emmmT9C#e\"Fg[l$!3$4R&*H\"=' =A\"F/7$$\"3\"****\\i!*3`i\"Fg[l$!35+m'GP9@*=F/7$$\"3sm;z\\%[gk\"Fg[l$ !370GOy9$p4#F/7$$\"3_LLL$*zym;Fg[l$!3l(zqEUw=@#F/7$$\"3aL3-)G!4s;Fg[l$ !3Y;g.^H:EAF/7$$\"3aL$3Fe#Rx;Fg[l$!3)\\)H!)oAF/7$$\"3!pm;HYt7v\"Fg[l$!3,\"=@/-fOr\"F/7$$\"3A++ +q(G**y\"Fg[l$!3Synr0\"yc/\"F/7$$\"3'pmmT6KU$=Fg[l$!3Y(R9b1(HV(*Fdu7$$ \"3eLLL`v&Q(=Fg[l$\"3qjjvGjUBxF_o7$$\"30++DOl5;>Fg[l$\"3Uc)*eFO'[c\"F/ 7$$\"39+++q`KO>Fg[l$\"3q\\8E`ct`=F/7$$\"3A++v.Uac>Fg[l$\"3Eq6zYX3n?F/7 $$\"33+D\"G:3u'>Fg[l$\"3s0`IzpNZ@F/7$$\"3I+](=5s#y>Fg[l$\"32A)3a15B?#F /7$$\"3/]iSwSq$)>Fg[l$\"3lQQjuu2?AF/7$$\"3;+v$40O\"*)>Fg[l$\"3%e$)Ro&e HJAF/7$$\"3E](oa-oX*>Fg[l$\"3K#f;)=@$fB#F/7$$\"#?F)$\"3#)o2,%esRB#F/-% 'COLOURG6&%$RGBG$\"*++++\"!\")F(F(-%*THICKNESSG6#F+-F$6%7eqF'7$$\"+&*Q#Fc]m7$$\"+U`'H8%Fh^m$!+UR/%R#F c]m7$$\"+<_M(=%Fh^m$!+x>N#R#Fc]m7$$\"+l39$G%Fh^m$!+_VEuBFc]m7$$\"+8l$* yVFh^m$!+Ga,PBFc]m7$$\"+h@tuWFh^m$!+BA'3G#Fc]m7$$\"+4y_qXFh^m$!+Dx?1AF c]m7$$\"+IU@'y%Fh^m$!+rR]t>Fc]m7$$\"+]1!>+&Fh^m$!+Y,7f;Fc]m7$$\"+]Z/Na Fh^m$!+))=jc$)Fi`m7$$\"+]$fC&eFh^m$\"+du\"*p))!#77$$\"+'z6:B'Fh^m$\"+_ 'yK7*Fi`m7$$\"+<=C#o'Fh^m$\"+V[K7Fc]m7$$ \"+n#pS1(Fh^m$\"+'e)yF@Fc]m7$$\"+!H3^<(Fh^m$\"+bK(H>#Fc]m7$$\"+:t9'G(F h^m$\"+@0IJAFc]m7$$\"+IomTtFh^m$\"+yDBSAFc]m7$$\"+Sj=(R(Fh^m$\"+y'*HUA Fc]m7$$\"+]eq_uFh^m$\"+b]\\PAFc]m7$$\"+j`A3vFh^m$\"+LH$eA#Fc]m7$$\"+l? ![q(Fh^m$\"+[f8I@Fc]m7$$\"+n(y8!zFh^m$\"+*Q0G&>Fc]m7$$\"+lX0<\")Fh^m$ \"+W/Ys;Fc]m7$$\"+j.tK$)Fh^m$\"+uA(\\J\"Fc]m7$$\"+)3zMu)Fh^m$\"+\"HxV# [Fi`m7$$\"+#H_?<*Fh^m$!+**4q)o%Fi`m7$$\"+!G;cc*Fh^m$!+Y&Q:F\"Fc]m7$$\" +XA(yx*Fh^m$!+t)G0j\"Fc]m7$$\"+4#G,***Fh^m$!++YM;>Fc]m7$$\"+Ol.55Fi\\m $!+-&>:.#Fc]m7$$\"+]-1@5Fi\\m$!+@x.A@Fc]m7$$\"+lR3K5Fi\\m$!+j3!o=#Fc]m 7$$\"+!o2J/\"Fi\\m$!+VH-DAFc]m7$$\"+cQq_5Fi\\m$!+(e#Fc]m7$$\"+%Q#\\\"3\"Fi\\m $!+NWHZ@Fc]m7$$\"+]1A-6Fi\\m$!+#4sF(>Fc]m7$$\"+;*[H7\"Fi\\m$!+I!3Qr\"F c]m7$$\"+qvxl6Fi\\m$!+FhEC'*Fi`m7$$\"+`qn27Fi\\m$!+F@&)*z&F^gm7$$\"+cp @[7Fi\\m$\"+[y&GG)Fi`m7$$\"+3'HKH\"Fi\\m$\"+%oY%\\;Fc]m7$$\"+UDX88Fi\\ m$\"+=I2>>Fc]m7$$\"+xanL8Fi\\m$\"+RM[5@Fc]m7$$\"+E;ZW8Fi\\m$\"+!)*3y<# Fc]m7$$\"+wxEb8Fi\\m$\"+)ev(>AFc]m7$$\"+^emg8Fi\\m$\"+m[3JAFc]m7$$\"+E R1m8Fi\\m$\"+%e%*eB#Fc]m7$$\"++?Yr8Fi\\m$\"+K2>MAFc]m7$$\"+v+'oP\"Fi\\ m$\"+s#yfA#Fc]m7$$\"+#*Hk'Q\"Fi\\m$\"+x%)f%>#Fc]m7$$\"+3fU'R\"Fi\\m$\" +M@BU@Fc]m7$$\"+C)3iS\"Fi\\m$\"+0+Qp?Fc]m7$$\"+S<*fT\"Fi\\m$\"+d(Qn(>F c]m7$$\"+iBQP9Fi\\m$\"+*R.)4cFi`m7$$\"+TO5T:Fi\\m$!+*>c2r$Fi`m7$$\"+U9C# e\"Fi\\m$!+>='=A\"Fc]m7$$\"+1*3`i\"Fi\\m$!+qV6#*=Fc]m7$$\"+]%[gk\"Fi\\ m$!+![Jp4#Fc]m7$$\"+$*zym;Fi\\m$!+Ak(=@#Fc]m7$$\"+)G!4s;Fi\\m$!+^H:EAF c]m7$$\"+#e#Rx;Fi\\m$!+oA9\\.AFc]m7$$\"+^j?4Fc]m7$$\"+jMF^!fOr \"Fc]m7$$\"+q(G**y\"Fi\\m$!+1\"yc/\"Fc]m7$$\"+9@BM=Fi\\m$!+SuHV(*F^gm7 $$\"+`v&Q(=Fi\\m$\"+fiUBxFi`m7$$\"+Ol5;>Fi\\m$\"+CO'[c\"Fc]m7$$\"+q`KO >Fi\\m$\"+`ct`=Fc]m7$$\"+/Uac>Fi\\m$\"+\\X3n?Fc]m7$$\"+`\"3u'>Fi\\m$\" +!)pNZ@Fc]m7$$\"+-@Fy>Fi\\m$\"+m+J-AFc]m7$$\"+wSq$)>Fi\\m$\"+uu2?AFc]m 7$$\"+^g8*)>Fi\\m$\"+deHJAFc]m7$$\"+E!oX*>Fi\\m$\"+>@$fB#Fc]m7$F_\\m$ \"+%esRB#Fc]m-Fd\\m6&Ff\\mF(Fg\\mF(-F[]m6#\"\"#-%+AXESLABELSG6$%\"xG%% y(x)G-%%VIEWG6$;F(F_\\m%(DEFAULTG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "plot([D(g)(x),'dgn '(x)],x=0..20,color=[brown,coral],thickness=[1,2],labels=[`x`,`y'(x)`] );" }}{PARA 13 "" 1 "" {GLPLOT2D 661 308 308 {PLOTDATA 2 "6&-%'CURVESG 6%7hs7$$\"\"!F)F(7$$\"3ALL$3FWYs#!#>$!3Mntf[')ywRF-7$$\"3WmmmT&)G\\aF- $!3i!o.V&>\"zt(F-7$$\"3m****\\7G$R<)F-$!3Rh.otc.H6!#=7$$\"3GLLL3x&)*3 \"F:$!3![*)z7$R5k9F:7$$\"3$*****\\ilyM;F:$!3u\"*Qb=*Qk2#F:7$$\"3emmm;a rz@F:$!3=UA*z'G;;EF:7$$\"3%HLL3FWYs#F:$!3ws!e<*)*[)3$F:7$$\"3')*****\\ 7t&pKF:$!3/NJ'Rql%)\\$F:7$$\"3ymm;z>]9QF:$!3C@Q^EW&4&QF:7$$\"39LLLL3Vf VF:$!3!pi6?\"yi]TF:7$$\"3]****\\i&*)fD'F:$!3v)o[kh`O%[F:7$$\"3%pmm;H[D :)F:$!3Lp*e#[RC<^F:7$$\"3%4+DJ&zw&o)F:$!3EvR*H#p;Q^F:7$$\"3#QL$e9w)*=# *F:$!3A;?MT#4@'H_%F:7$$\"3iLLL3RBr;F dp$!3!)R-%zUs3:%F:7$$\"3imm;zjf)4#Fdp$!3Vyy3^#=FW$F:7$$\"3ULL$e4;[\\#F dp$!3)42yS9^D'GF:7$$\"3!)****\\i'y]!HFdp$!3'\\\\')y(\\VxAF:7$$\"3'pmm \"HdAF:7$$\"3oLL$ezs$HLFdp$!3v(*p*os:3g\"F:7$$\" 3rmm;/&R3a$Fdp$!3[+bMNcE?7F:7$$\"3=++]7iI_PFdp$!3$z#4,5c(H6)F-7$$\"3+M Le9d#)pRFdp$!3='pWGMidn$F-7$$\"3Onmm;_M(=%Fdp$\"3L#Hzk=,!G))!#?7$$\"3/ ,+]7l$*yVFdp$\"3a(3^H+*z!)[F-7$$\"3%QLL$3y_qXFdp$\"3bzqgHF'3u)F-7$$\"3 ;nm;HU@'y%Fdp$\"39WCcE=qw7F:7$$\"3]+++]1!>+&Fdp$\"3:()>0[kjG;F:7$$\"3T ++++FZ=_Fdp$\"3i'4G%G$)p9>F:7$$\"3J+++]Z/NaFdp$\"3v.MQStP>@F:7$$\"3h** *****R)RRbFdp$\"3[z^_4$zc=#F:7$$\"3!)******\\?vVcFdp$\"3u[k@DOsHAF:7$$ \"3))*****\\()Gfp&Fdp$\"3$[xac[(>VAF:7$$\"3)********p0\"[dFdp$\"3Ap(*e -b*3D#F:7$$\"33+++DDG+eFdp$\"3oG%38`zFD#F:7$$\"3;+++]$fC&eFdp$\"3Wp,AS t#)[AF:7$$\"3yL$e9YAs%fFdp$\"3gLzIMYrEAF:7$$\"3Qnm\"Hd&)>/'Fdp$\"3k\"3 RC#*Ra=#F:7$$\"35+]P%o[n8'Fdp$\"3Bc['H9y_7#F:7$$\"3qLL$ez6:B'Fdp$\"3Gu lap$ym/#F:7$$\"3Q++D1o(oX'Fdp$\"31yf)e/b'*y\"F:7$$\"3/nmm;=C#o'Fdp$\"3 FRk(*y$3UW\"F:7$$\"3knmmTb:toFdp$\"3E6L85Ik%4\"F:7$$\"3Mnmmm#pS1(Fdp$ \"3MI'3ywy#eqF-7$$\"3KLLe9t9'G(Fdp$\"310`T#e5dA#F-7$$\"3<++]i`A3vFdp$! 3&e=q^&4K;FF-7$$\"3GLLek?![q(Fdp$!3[3?@:-/*)pF-7$$\"3Rmmmm(y8!zFdp$!3e 0UTJx^*4\"F:7$$\"3IMLekX0<\")Fdp$!3g\"*=9F%[,\\\"F:7$$\"3K,+]i.tK$)Fdp $!3\\3\\b7R57=F:7$$\"3<+++DZ5Q&)Fdp$!39eve@>9T?F:7$$\"3!3++v3zMu)Fdp$! 3!p3%)pfsY=#F:7$$\"3EM3-Q20(z)Fdp$!3#G2NK\\6s?#F:7$$\"3sn;a)QA1&))Fdp$ !3JW.32IVBAF:7$$\"3=,D1RS>/*)Fdp$!3,'y%p!z*GLAF:7$$\"3kMLe*olx&*)Fdp$! 3Tb&f#fFvOAF:7$$\"34oT5StL6!*Fdp$!3.:Eny6\"QB#F:7$$\"3c,]i!**3\\1*Fdp$ !3yP[9+FZCAF:7$$\"3,Ne9T1[=\"*Fdp$!34*o3;Mj(3AF:7$$\"3Yomm\"H_?<*Fdp$! 3s-)=gTFn=#F:7$$\"3unmT&GM)o$*Fdp$!39bP(>b\"p_?F:7$$\"3-nm;zihl&*Fdp$! 3.jVo0z_R=F:7$$\"33++vVA(yx*Fdp$!3^R'HP[\"RI:F:7$$\"39LLL3#G,***Fdp$!3 +)*[%)4+i_6F:7$$\"3HL$3-Dg5-\"!#;$!3%Q\"*4BmRt0(F-7$$\"3WLLezw5V5Fdal$ !3wh`D2x%pC#F-7$$\"3ummmJ+Ii5Fdal$\"3#**y_)4.YP?F-7$$\"3/++v$Q#\\\"3\" Fdal$\"3g#4JtF;rC'F-7$$\"3nm;z\\1A-6Fdal$\"3oB_%Q!R;`5F:7$$\"3]LL$e\"* [H7\"Fdal$\"3?>Fp7?aO9F:7$$\"3wmm\"HCjV9\"Fdal$\"3#G$*e:mnyw\"F:7$$\"3 -+++qvxl6Fdal$\"3)3rX20[%=?F:7$$\"3;+]iSCDw6Fdal$\"3A0'zdK%*z5#F:7$$\" 39++D6ts'=\"Fdal$\"3[K&y.ANW<#F:7$$\"37+DcYZ'>>\"Fdal$\"3UO\"yHL`()>#F :7$$\"35+](==-s>\"Fdal$\"3<4'o29Uq@#F:7$$\"33+v=<'RC?\"Fdal$\"3w9yAb9D HAF:7$$\"31++]_qn27Fdal$\"3z--\\gxMNAF:7$$\"36](o/aWF@\"Fdal$\"3oWK0f; TNAF:7$$\"3;+vVG?\"y@\"Fdal$\"3K)eG/(otHAF:7$$\"3/]iS;&zGA\"Fdal$\"3#e @\"RNzL=AF:7$$\"34+]P/q%zA\"Fdal$\"3g\")zL\"4W7?#F:7$$\"3,+DJ!)>3Q7Fda l$\"3)oo\"\\@;;]@F:7$$\"37++Dcp@[7Fdal$\"3M&fjr]8q2#F:7$$\"31+](=GB2F \"Fdal$\"3!fETH*4yR=F:7$$\"3+++]2'HKH\"Fdal$\"3n$[5r.a(4:F:7$$\"3ELL3U DX88Fdal$\"3IA!o>`#pZ6F:7$$\"3`mmmwanL8Fdal$\"3I]0$f8^&)Q(F-7$$\"3KLL$ exn_N\"Fdal$\"3y8(\\#F:7$$\"3*)****\\7ga4:Fdal$!3B u$3oUU8@#F:7$$\"3jm;H=dA#F:7$$\"3PLL3A_1?:Fdal$!3 5AR,(HQRB#F:7$$\"36+](o#[KD:Fdal$!3?C!G0,!)fB#F:7$$\"3&omm;V%eI:Fdal$! 3)*)4bGoP=B#F:7$$\"3TL$ek.We`\"Fdal$!3P0$o!pF_@AF:7$$\"3:++DTO5T:Fdal$ !30ud#ezj]?#F:7$$\"3OL$e9as;c\"Fdal$!3iTDRiEz#3#F:7$$\"3emmmT9C#e\"Fda l$!3O_`LpKrs=F:7$$\"3;L$eR\"F:7$$\"3sm;z\\%[gk\"Fdal$!334f*\\EPXw(F-7$$\"3 _LLL$*zym;Fdal$!3GNNq#3>.G$F-7$$\"3cLL3sr*zo\"Fdal$\"3=m+1q$)H\\9F-7$$ \"3fLL$3N1#4HLc*p /\"F:7$$\"3!pm;HYt7v\"Fdal$\"3KZ7=+]WO9F:7$$\"3uL$ek6,1x\"Fdal$\"3wdMX S.&)QF:7$$\"3*pmTgg/5!=Fdal$ \"3Y;E())[r*z?F:7$$\"3xLL3U/37=Fdal$\"3mkXr/<&z:#F:7$$\"3:nT5g$=w\"=Fd al$\"3q?CPa>2(=#F:7$$\"3a+]7yi:B=Fdal$\"3-h*))**['[4AF:7$$\"3$R$e9'>%p G=Fdal$\"3)\\:gpeE^A#F:7$$\"3'pmmT6KU$=Fdal$\"3w5Se\"HWRB#F:7$$\"3-+D1 %H&=R=Fdal$\"3\\t1;A&GgB#F:7$$\"3WL$eRZQT%=Fdal$\"3$=<_Z+GEB#F:7$$\"3' o;aQl\"4\\=Fdal$\"3I.\"H/3^PA#F:7$$\"3G++vL[/a=Fdal$\"3XQzKB&>%4AF:7$$ \"35n;a$>^R'=Fdal$\"3)3?!R>kak@F:7$$\"3eLLL`v&Q(=Fdal$\"3aFI3*p[%)4#F: 7$$\"3#om\"zW?)\\*=Fdal$\"3yr6j/)e)*)=F:7$$\"30++DOl5;>Fdal$\"33-/Fdal$\"3!H^_@fl/D\"F:7$$\"3A++v.Uac>Fdal$\"3%)=_Y foPF&)F-7$$\"3I+](=5s#y>Fdal$\"3akITGTzqQF-7$$\"#?F)$!3_#*41*)e6y'*Fht -%'COLOURG6&%$RGBG$\")#)eqk!\")$\"))eqk\"FfgmFggm-%*THICKNESSG6#\"\"\" -F$6%7hsF'7$$\"+qUkCF!#6$!+Z')ywRFchm7$$\"+S&)G\\aFchm$!+_>\"zt(Fchm7$ $\"+5G$R<)Fchm$!+tc.H6!#57$$\"+3x&)*3\"F`im$!+JR5k9F`im7$$\"+ilyM;F`im $!+=*Qk2#F`im7$$\"+]9QF`im$!+FW&4&QF`im7$$\"+M3VfVF `im$!+7yi]TF`im7$$\"+l&*)fD'F`im$!+F`im7 $$\"+'zs$HLF`]n$!+Fd\"3g\"F`im7$$\"+/&R3a$F`]n$!+OcE?7F`im7$$\"+8iI_PF `]n$!++c(H6)Fchm7$$\"+:d#)pRF`]n$!+MBwvOFchm7$$\"+<_M(=%F`]n$\"+c7+G)) !#77$$\"+8l$*yVF`]n$\"+8!*z!)[Fchm7$$\"+4y_qXF`]n$\"+VF'3u)Fchm7$$\"+I U@'y%F`]n$\"+G=qw7F`im7$$\"+]1!>+&F`]n$\"+[kjG;F`im7$$\"++FZ=_F`]n$\"+ G$)p9>F`im7$$\"+]Z/NaF`]n$\"+StP>@F`im7$$\"++%)RRbF`]n$\"+5$zc=#F`im7$ $\"+]?vVcF`]n$\"+DOsHAF`im7$$\"+v)Gfp&F`]n$\"+'[(>VAF`im7$$\"++d5[dF`] n$\"+.b*3D#F`im7$$\"+DDG+eF`]n$\"+J&zFD#F`im7$$\"+]$fC&eF`]n$\"+St#)[A F`im7$$\"+gCAZfF`]n$\"+NYrEAF`im7$$\"+vb)>/'F`]n$\"+@*Ra=#F`im7$$\"+&o [n8'F`]n$\"+V\"y_7#F`im7$$\"+'z6:B'F`]n$\"+p$ym/#F`im7$$\"+0o(oX'F`]n$ \"+[]l*y\"F`im7$$\"+<=C#o'F`]n$\"+y$3UW\"F`im7$$\"+Sb:toF`]n$\"+8Ik%4 \"F`im7$$\"+n#pS1(F`]n$\"+h(y#eqFchm7$$\"+:t9'G(F`]n$\"+t0rDAFchm7$$\" +j`A3vF`]n$!+m4K;FFchm7$$\"+l?![q(F`]n$!+B-/*)pFchm7$$\"+n(y8!zF`]n$!+ Kx^*4\"F`im7$$\"+lX0<\")F`]n$!+G%[,\\\"F`im7$$\"+j.tK$)F`]n$!+8R57=F`i m7$$\"+DZ5Q&)F`]n$!+A>9T?F`im7$$\"+)3zMu)F`]n$!+(fsY=#F`im7$$\"+S20(z) F`]n$!+%\\6s?#F`im7$$\"+!RA1&))F`]n$!+2IVBAF`im7$$\"+SS>/*)F`]n$!+\"z* GLAF`im7$$\"+!plx&*)F`]n$!+fFvOAF`im7$$\"+StL6!*F`]n$!+z6\"QB#F`im7$$ \"+!**3\\1*F`]n$!++FZCAF`im7$$\"+S1[=\"*F`]n$!+ULw3AF`im7$$\"+#H_?<*F` ]n$!+;us'=#F`im7$$\"+&GM)o$*F`]n$!+_:p_?F`im7$$\"+!G;cc*F`]n$!+0z_R=F` im7$$\"+XA(yx*F`]n$!+#[\"RI:F`im7$$\"+4#G,***F`]n$!+4+i_6F`im7$$\"+]-1 @5Ffgm$!+2(Rt0(Fchm7$$\"+!o2J/\"Ffgm$!+:w%pC#Fchm7$$\"+K+Ii5Ffgm$\"+%Q gu.#Fchm7$$\"+%Q#\\\"3\"Ffgm$\"+Jj6ZiFchm7$$\"+]1A-6Ffgm$\"+3R;`5F`im7 $$\"+;*[H7\"Ffgm$\"+;?aO9F`im7$$\"+VKOW6Ffgm$\"+jw'yw\"F`im7$$\"+qvxl6 Ffgm$\"+^![%=?F`im7$$\"+TCDw6Ffgm$\"+HV*z5#F`im7$$\"+7ts'=\"Ffgm$\"+C_ Vu@F`im7$$\"+ZZ'>>\"Ffgm$\"+NLv)>#F`im7$$\"+#=-s>\"Ffgm$\"+T@/#F`im7$$\"+7ga4:Ff gm$!+DCM6AF`im7$$\"+=dA#F`im7$$\"+A_1?:Ffgm$!+(HQRB#F` im7$$\"+F[KD:Ffgm$!+5+)fB#F`im7$$\"+KWeI:Ffgm$!+#oP=B#F`im7$$\"+OS%e` \"Ffgm$!+qF_@AF`im7$$\"+TO5T:Ffgm$!+(zj]?#F`im7$$\"+UDnh:Ffgm$!+eEz#3# F`im7$$\"+U9C#e\"Ffgm$!+lKrs=F`im7$$\"+u^x.;Ffgm$!+g!y$o:F`im7$$\"+1*3 `i\"Ffgm$!+8wf\">\"F`im7$$\"+]%[gk\"Ffgm$!+As`kxFchm7$$\"+$*zym;Ffgm$! +d\">.G$Fchm7$$\"+sr*zo\"Ffgm$\"+^$)H\\9Fchm7$$\"+^j?4F`im7$$\"+1Y+,=Ffgm $\"+*[r*z?F`im7$$\"+U/37=Ffgm$\"+/<&z:#F`im7$$\"+g$=w\"=Ffgm$\"+a>2(=# F`im7$$\"+yi:B=Ffgm$\"+!\\'[4AF`im7$$\"+'>%pG=Ffgm$\"+(eE^A#F`im7$$\"+ 9@BM=Ffgm$\"+\"HWRB#F`im7$$\"+%H&=R=Ffgm$\"+A&GgB#F`im7$$\"+u%QT%=Ffgm $\"+0!GEB#F`im7$$\"+a;4\\=Ffgm$\"+!3^PA#F`im7$$\"+M[/a=Ffgm$\"+A&>%4AF `im7$$\"+%>^R'=Ffgm$\"+Ffgm$\"+E#[sf\"F`im7$$\"+q`KO>Ffgm $\"+#fl/D\"F`im7$$\"+/Uac>Ffgm$\"+3oPF&)Fchm7$$\"+-@Fy>Ffgm$\"+,TzqQFc hm7$F\\gm$!+')e6y'*Fdan-Fagm6&Fcgm$\"*++++\"Ffgm$\")AR!)\\FfgmF(-Fjgm6 #\"\"#-%+AXESLABELSG6$%\"xG%&y'(x)G-%%VIEWG6$;F(F\\gm%(DEFAULTG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2 " }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 113 "Th e following plots illustrates the relationship between the solution an d the derivative as the parametric curve " }}{PARA 257 "" 0 "" {TEXT -1 1 " " }{XPPEDIT 18 0 "PIECEWISE([y = y(x), ``],[u = `y '`(x), ``]); " "6#-%*PIECEWISEG6$7$/%\"yG-F(6#%\"xG%!G7$/%\"uG-%$y~'G6#F+F," } {TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 27 "Such a diagram is called a " }{TEXT 267 11 "phase curve" }{TEXT -1 4 " or " }{TEXT 267 10 "tra jectory" }{TEXT -1 3 ". " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 137 "plot(['gn'(x),'dgn'(x),x=0..20],co lor=COLOR(RGB,.5,0,1),thickness=2,\n \+ labels=[`y = y(x)`,`u = y'(x)`]);" }{TEXT -1 0 "" }}{PARA 13 "" 1 "" {GLPLOT2D 511 309 309 {PLOTDATA 2 "6'-%'CURVESG6#7gr7$$\"\"\"\"\"!$F*F *7$$\"+nD`%***!#5$!+Z')ywR!#67$$\"++__y**F/$!+_>\"zt(F27$$\"+vfb_**F/$ !+tc.H6F/7$$\"+HS=<**F/$!+JR5k9F/7$$\"+M]P?)*F/$!+=*Qk2#F/7$$\"+p0?#p* F/$!+oG;;EF/7$$\"+AYZO&*F/$!+$*)*[)3$F/7$$\"+t:tc$*F/$!+0dY)\\$F/7$$\" +OdBc\"*F/$!+FW&4&QF/7$$\"+o:*z$*)F/$!+7yi]TF/7$$\"+!H[R_)F/$!+)>o$fXF /7$$\"+wC@x!)F/$!+F/7$$!+HPD>N#R#F/$\"+c7+G))!#77$$!+Ga,PBF/$\"+8!*z!)[F27$$!+Dx?1AF/$\"+VF' 3u)F27$$!+rR]t>F/$\"+G=qw7F/7$$!+Y,7f;F/$\"+[kjG;F/7$$!+uP2u7F/$\"+G$) p9>F/7$$!+))=jc$)F2$\"+StP>@F/7$$!+2y[3hF2$\"+5$zc=#F/7$$!+*e/F!QF2$\" +DOsHAF/7$$!+x2&GY\"F2$\"+.b*3D#F/7$$\"+du\"*p))Fhu$\"+St#)[AF/7$$\"+V _9,^F2$\"+@*Ra=#F/7$$\"+_'yK7*F2$\"+p$ym/#F/7$$\"+AgSY8F/$\"+[]l*y\"F/ 7$$\"+V[K7F/$\"+8Ik%4\"F/7$$\"+'e)yF@F/$\"+ h(y#eqF27$$\"+@0IJAF/$\"+t0rDAF27$$\"+LH$eA#F/$!+m4K;FF27$$\"+[f8I@F/$ !+B-/*)pF27$$\"+*Q0G&>F/$!+Kx^*4\"F/7$$\"+W/Ys;F/$!+G%[,\\\"F/7$$\"+uA (\\J\"F/$!+8R57=F/7$$\"+>)=!z\"*F2$!+A>9T?F/7$$\"+\"HxV#[F2$!+(fsY=#F/ 7$$\"+JiigCF2$!+2IVBAF/7$$\"+7F/$!+4+i_6F/7$$!+@x.A@F/$!+2(Rt 0(F27$$!+VH-DAF/$!+:w%pC#F27$$!+![RqA#F/$\"+%Qgu.#F27$$!+NWHZ@F/$\"+Jj 6ZiF27$$!+#4sF(>F/$\"+3R;`5F/7$$!+I!3Qr\"F/$\"+;?aO9F/7$$!+X(*Qp8F/$\" +jw'yw\"F/7$$!+FhEC'*F2$\"+^![%=?F/7$$!+U04huF2$\"+HV*z5#F/7$$!+wG9;_F 2$\"+C_Vu@F/7$$!+T+.9HF2$\"+T@/$RF2$\"+$4W7?#F/7$$\"+Rl!*QhF2$\"+B;;]@F/7$ $\"+[y&GG)F2$\"+4N,x?F/7$$\"+Z*=4F\"F/$\"+\"*4yR=F/7$$\"+%oY%\\;F/$\"+ HSv4:F/7$$\"+=I2>>F/$\"+MDpZ6F/7$$\"+RM[5@F/$\"+m5b)Q(F27$$\"+)ev(>AF/ $\"+v-M&p#F27$$\"+s#yfA#F/$!+!4ZI7#F27$$\"+M@BU@F/$!+YP25kF27$$\"+d(Qn (>F/$!+:&\\_/\"F/7$$\"+*R.)4cF2$!+&))*Hk@F/7$$\"+!>BiJ$F2$!+DCM6 AF/7$$\"+gzAg(*Fhu$!+(HQRB#F/7$$!+Xs'\\P\"F2$!+#oP=B#F/7$$!+*>c2r$F2$! +(zj]?#F/7$$!+BX>O\")F2$!+eEz#3#F/7$$!+>='=A\"F/$!+lKrs=F/7$$!+[yz$f\" F/$!+g!y$o:F/7$$!+qV6#*=F/$!+8wf\">\"F/7$$!+![Jp4#F/$!+As`kxF27$$!+Ak( =@#F/$!+d\">.G$F27$$!+inOJAF/$\"+^$)H\\9F27$$!+I%f3:#F/$\"+Ij'R6'F27$$ !+NT!e(>F/$\"+Oc*p/\"F/7$$!+>!fOr\"F/$\"+-]WO9F/7$$!+r^%eS\"F/$\"+M.&) QF/7$$!+n-/3#)F2$\"+*[r*z?F/7$$!+\")4reeF 2$\"+/<&z:#F/7$$!+NRePMF2$\"+!\\'[4AF/7$$!+SuHV(*Fhu$\"+\"HWRB#F/7$$\" +o\\&)R7F2$\"+0!GEB#F/7$$\"+x@)=W$F2$\"+A&>%4AF/7$$\"+X(f,h&F2$\"+\"F/$\"+9)e)*)=F/7$$\"+CO'[c\" F/$\"+E#[sf\"F/7$$\"+`ct`=F/$\"+#fl/D\"F/7$$\"+\\X3n?F/$\"+3oPF&)F27$$ \"+m+J-AF/$\"+,TzqQF27$$\"+%esRB#F/$!+')e6y'*Fhu-%&COLORG6&%$RGBG$\"\" &!\"\"F+F(-%*THICKNESSG6#\"\"#-%+AXESLABELSG6$%)y~=~y(x)G%*u~=~y'(x)G- %%VIEWG6$%(DEFAULTGF_cm" 1 2 0 1 10 2 2 6 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 9 "Example 5" }{TEXT 279 108 " .. simultaneous construction o f numerical procedures for both the solution and its derivative - phas e curve" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{PARA 0 "" 0 "" {TEXT -1 34 "Consider the initial value problem" }}{PARA 257 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "d^2*y/(d*x^2)+2;" "6#,&*(%\"dG\" \"#%\"yG\"\"\"*&F%F(*$%\"xGF&F(!\"\"F(F&F(" }{TEXT -1 1 " " }{XPPEDIT 18 0 "dy/dx+2*y = exp(-x/8)*cos(x);" "6#/,&*&%#dyG\"\"\"%#dxG!\"\"F'*& \"\"#F'%\"yGF'F'*&-%$expG6#,$*&%\"xGF'\"\")F)F)F'-%$cosG6#F3F'" } {TEXT -1 3 ", " }{XPPEDIT 18 0 "y(0) = 1;" "6#/-%\"yG6#\"\"!\"\"\"" } {TEXT -1 2 ", " }{XPPEDIT 18 0 "`y '`(0) = 0;" "6#/-%$y~'G6#\"\"!F'" } {TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 59 "First we find an analyt ical solution and set up a function " }{TEXT 272 1 "g" }{TEXT -1 17 " \+ to evaluate it. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 130 "de := diff(y(x),x$2)+2*diff(y(x),x)+2*y(x)=ex p(-x/8)*cos(x);\nic := y(0)=1,D(y)(0)=0;\ndsolve(\{de,ic\},y(x));\ng : = unapply(rhs(%),x):" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-%%di ffG6$-%\"yG6#%\"xG-%\"$G6$F-\"\"#\"\"\"*&F1F2-F(6$F*F-F2F2*&F1F2F*F2F2 *&-%$expG6#,$*&\"\")!\"\"F-F2F>F2-%$cosGF,F2" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\"yG6#\"\"!\"\"\"/--%\"DG6#F(F)F*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/-%\"yG6#%\"xG,(*&#\"$>(\"%N@\"\"\"*&-%$expG 6#,$F'!\"\"F--%$sinGF&F-F-F-*&#\"$T#\"$0$F-*&F/F--%$cosGF&F-F-F-*&#F-F ,F-*&,&*&\"%C5F-F4F-F-*&\"$[%F-F;F-F-F--F06#,$*&\"\")F3F'F-F3F-F-F-" } }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 18 "With th e option ''" }{TEXT 272 21 "output=procedure_pair" }{TEXT -1 3 "'' " } {TEXT 0 9 "desolveK2" }{TEXT -1 85 " constructs numerical procedures f or the solution and its derivative simultaneously. " }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 242 "de := dif f(y(x),x$2)+2*diff(y(x),x)+2*y(x)=exp(-x/8)*cos(x);\nic := y(0)=1,D(y) (0)=0;\n(gn,dgn) := desolveK2(\{de,ic\},x=0..25,method=rk78,output=pro cedure_pair);\nplot([g(x),'gn'(x)],x=0..25,color=[red,green],thickness =[1,2],labels=[`x`,`y(x)`]);" }{TEXT -1 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-%%diffG6$-%\"yG6#%\"xG-%\"$G6$F-\"\"#\"\"\"*& F1F2-F(6$F*F-F2F2*&F1F2F*F2F2*&-%$expG6#,$*&\"\")!\"\"F-F2F>F2-%$cosGF ,F2" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\"yG6#\"\"!\"\"\"/-- %\"DG6#F(F)F*" }}{PARA 13 "" 1 "" {GLPLOT2D 637 314 314 {PLOTDATA 2 "6 &-%'CURVESG6%7fq7$$\"\"!F)$\"\"\"F)7$$\"3\\LL$3FWYs#!#=$\"3!H#ek$4=go* F/7$$\"3)pmm;a)G\\aF/$\"36%fCAE5%H*)F/7$$\"3#***\\7`p)*>yF/$\"3c4-g[2& e1)F/7$$\"3SL$ek`o!>5!#<$\"3#y0$[pyR%4(F/7$$\"31+v=n$ycG\"F?$\"3XSAgdq yHfF/7$$\"3smm\"z>)G_:F?$\"3`j0H$3Lcs%F/7$$\"3!omm;Hl1#=F?$\"3o2N&3#e4 +NF/7$$\"35nmT&QU!*3#F?$\"3K)[\\eEkfG#F/7$$\"3?+voHR9cBF?$\"3)=j5E!zO< 6F/7$$\"3IL$eRZXKi#F?$\"3#f#\\:TC]!=#!#?7$$\"3q**\\(oz#)3(GF?$!3k@iehS :n*)!#>7$$\"3bm;z>,_=JF?$!3'>zhBdk:p\"F/7$$\"3IL$eRAM\\P$F?$!3?g@rI\"GG'RF?$!3CdvPknofJF/7$$ \"3<+]7yS7HSF?$!3ilA_Uhi$=$F/7$$\"3'RLek.?a4%F?$!3M/1\"*Gl2%>$F/7$$\"3 )om\"z%*frhTF?$!3!\\q)fro>\">$F/7$$\"3WLe9T$*zFUF?$!3k)*RMO&o_<$F/7$$ \"3-++](o#)QH%F?$!3!y%eHZ)fl9$F/7$$\"3emT&Q.m*fVF?$!3P-4\"Q+v`5$F/7$$ \"3;L$3-Q\\gU%F?$!3KIcF-Z1_IF/7$$\"3Imm\"H2;#eXF?$!3Um#3P:$p5HF/7$$\"3 K+]ilFQ!p%F?$!3a#*)Gz39hs#F/7$$\"3@ML$3_\"=M_F?$!3Hj?2wDI7;F/7$$\"3U+] iS1ntaF?$!3F1'\\UR+)35F/7$$\"3^nmTg(fJr&F?$!3wt%>%)GFO'QF`o7$$\"3'RLek ynF)fF?$\"30.XG5j)[$HF`o7$$\"3I,+]7eP_iF?$\"3K%G25)pXt!*F`o7$$\"3=,++v 34BlF?$\"3Y[6C%fu&=9F/7$$\"3;++]Pf!Qz'F?$\"3!RV@!=\")G&z\"F/7$$\"3S+++ +![U#pF?$\"3f1nW[q.B>F/7$$\"3k++]i+paqF?$\"3wxN:*4,U,#F/7$$\"3v++v$46* >rF?$\"3g-q7II#f/#F/7$$\"3'3++]7K^=(F?$\"3!GXmot4%o?F/7$$\"3)4+]i:`.D( F?$\"3=Q*yQz8<3#F/7$$\"35,+](=ubJ(F?$\"33$oOr)f#f3#F/7$$\"3Ef9;K6![P(F ?$\"3I`c(H*4)>3#F/7$$\"3W[_vF?$\"3vgTzGt7F?F/7$$\"37](oa&e$4n(F?$ \"3?L7f+gWc>F/7$$\"3Mn;zW(*Q*y(F?$\"3!Q.7Y*>\\g=F/7$$\"3e,D\"y+'4r!)F? $\"3jhNEx]XV:F/7$$\"3#\\LL3F-GN)F?$\"3fD%ov\\U!H6F/7$$\"3ILLL$e'3I))F? $\"3*4Cx(31FSJF`o7$$\"3)3+DJq\"G&Q*F?$!3@;76$[*e2fF`o7$$\"3gm\"H2e-5j* F?$!3L^#\\\\kUW6*F`o7$$\"35MLLeMsw)*F?$!37HW))pB5f6F/7$$\"3>DJ?$3_6+\" !#;$!3[2'3[3/+E\"F/7$$\"3z;Hd?=j95F\\\\l$!3'Ga3'H'RZL\"F/7$$\"3R3F%zb6 \"G5F\\\\l$!3?[1.lA#GQ\"F/7$$\"3<+DJ&H\"fT5F\\\\l$!3\"esl)*)RE/9F/7$$ \"37D19W#4![5F\\\\l$!3&))y`.nO_S\"F/7$$\"31](oH>FW0\"F\\\\l$!3@x#)fPeO +9F/7$$\"3=vozT^%31\"F\\\\l$!3)[_C\"eYw*Q\"F/7$$\"37+]i!4js1\"F\\\\l$! 3kU)GNEoNP\"F/7$$\"3=]7G))*)4!3\"F\\\\l$!3/6de`Y.D8F/7$$\"31+v$f)[$H4 \"F\\\\l$!39`@^O!\\iD\"F/7$$\"3z;z>62s>6F\\\\l$!3c;$Q%QGab5F/7$$\"3_L$ ek`1l9\"F\\\\l$!3`W@&3#)[!RzF`o7$$\"3ULe*[.-d>\"F\\\\l$!372Y&[,(o(H#F` o7$$\"3ym;/Egw[7F\\\\l$\"3klK\"zfB,g$F`o7$$\"3!oTgFJDjF\"F\\\\l$\"3!*3 DyUV(p2'F`o7$$\"3!o;z%*f%)QI\"F\\\\l$\"3'fHZim[)QzF`o7$$\"38]7`>)zeJ\" F\\\\l$\"3-u@Jz`XI&)F`o7$$\"3YLLeR](yK\"F\\\\l$\"3-#y[lQG>)*)F`o7$$\"3 !oTN'f-()R8F\\\\l$\"3%*pe\")\\g\"4H*F`o7$$\"39+voza'=N\"F\\\\l$\"3o![v ***[=d%*F`o7$$\"3yTN'fk?[O\"F\\\\l$\"3+d%*H$)Hgy%*F`o7$$\"3W$eRA\"exx8 F\\\\l$\"3PuWNwVeS$*F`o7$$\"33Dc^y4t!R\"F\\\\l$\"3%)f_A[;_]!*F`o7$$\"3 tm;zWho.9F\\\\l$\"3zwZLD$=\"=')F`o7$$\"3KLek`SXI9F\\\\l$\"3n4mLtvVEtF` o7$$\"33++]i>Ad9F\\\\l$\"3i;59UWy0cF`o7$$\"32+]i:jf4:F\\\\l$\"3m8na$yy Fd\"F`o7$$\"31+DJ&>r-c\"F\\\\l$!39W_P)[g7D#F`o7$$\"33]PM-TS)e\"F\\\\l$ !3mp,b3_P!*RF`o7$$\"3\"***\\P4q`;;F\\\\l$!3(f+\"[e%3PI&F`o7$$\"3jmTgxc \"=k\"F\\\\l$!3c+zEPy4ggF`o7$$\"3MLL$eM%4n;F\\\\l$!3iKaZ3%p\"F\\\\l$!3G!HiH*4Z\"G'F`o7$$\"3@++v$4v5s\"F\\\\l$!36Ou)R% [NKdF`o7$$\"3Q$e9TQKbu\"F\\\\l$!3sHq<6$39\"\\F`o7$$\"3cm\"zWn*)*pP=^QF`o7$$\"3H++DJiYB=F\\\\l$!3MK8[XYdx5F`o7$$\"3?Lek.Ny t=F\\\\l$\"3!H`Z+#QG!\\\"F`o7$$\"3rmTgF:3+>F\\\\l$\"3`sK--\"f9g#F`o7$$ \"3B+Dc^&zj#>F\\\\l$\"3E6PYN^6mMF`o7$$\"3w;H#on!4_>F\\\\l$\"3^9>jka+KS F`o7$$\"3GLL3-=!y(>F\\\\l$\"3/$3'*G-T>I%F`o7$$\"3r;zWn*=Z+#F\\\\l$\"3u lz@mwtoUF`o7$$\"3:+D\"G8O;.#F\\\\l$\"3?7%pE.sd$RF`o7$$\"3S$eRAcgv0#F\\ \\l$\"3eu\"G*))zwrLF`o7$$\"3+nmm\"*\\[$3#F\\\\l$\"320;7$Ht:i#F`o7$$\"3 sm;aQz]O@F\\\\l$\"31e(37syCo(Fjn7$$\"3sLekG=4*=#F\\\\l$!3b+ote-,U5F`o7 $$\"3F++]i4TPAF\\\\l$!3+4`'4!fz!G#F`o7$$\"3WL$3F9!z#H#F\\\\l$!3O&RiJ@I t!HF`o7$$\"3)omm;%>KUBF\\\\l$!3=uaitH/(p#F`o7$$\"3K+DJqJ8&R#F\\\\l$!3X +mT@[iB=F`o7$$\"3Q+voa-oXCF\\\\l$!38tN-\"oqET'Fjn7$$\"#DF)$\"3I@W_$pj$ \\jFjn-%'COLOURG6&%$RGBG$\"*++++\"!\")F(F(-%*THICKNESSG6#F+-F$6%7fqF'7 $$\"+qUkCF!#5$\"+%4=go*Fh]m7$$\"+T&)G\\aFh]m$\"+i-TH*)Fh]m7$$\"+]p)*>y Fh]m$\"+]2&e1)Fh]m7$$\"+O&o!>5!\"*$\"+ryR%4(Fh]m7$$\"+n$ycG\"Fh^m$\"+e qyHfFh]m7$$\"+)>)G_:Fh^m$\"+$3Lcs%Fh]m7$$\"+#Hl1#=Fh^m$\"+>e4+NFh]m7$$ \"+&QU!*3#Fh^m$\"+oU'fG#Fh]m7$$\"+IR9cBFh^m$\"+,zO<6Fh]m7$$\"+uaCBEFh^ m$\"+KC]!=#!#77$$\"+(z#)3(GFh^m$!+lS:n*)!#67$$\"+?,_=JFh^m$!+tXc\"p\"F h]m7$$\"+CU$\\P$Fh^m$!+J$Fh]m7$$\"+& *frhTFh^m$!+so>\">$Fh]m7$$\"+U$*zFUFh^m$!+O&o_<$Fh]m7$$\"+)o#)QH%Fh^m$ !+Z)fl9$Fh]m7$$\"+Mg'*fVFh^m$!+/]P0JFh]m7$$\"+!Q\\gU%Fh^m$!+-Z1_IFh]m7 $$\"+sg@eXFh^m$!+bJp5HFh]m7$$\"+lFQ!p%Fh^m$!+*39hs#Fh]m7$$\"+?:=M_Fh^m $!+yDI7;Fh]m7$$\"+S1ntaFh^m$!+'R+)35Fh]m7$$\"+g(fJr&Fh^m$!+*HFO'QF_am7 $$\"+&ynF)fFh^m$\"+vi)[$HF_am7$$\"+7eP_iFh^m$\"+qpXt!*F_am7$$\"+v34BlF h^m$\"+%fu&=9Fh]m7$$\"+Pf!Qz'Fh^m$\"+<\")G&z\"Fh]m7$$\"++![U#pFh^m$\"+ [q.B>Fh]m7$$\"+g+paqFh^m$\"+)4,U,#Fh]m7$$\"+!46*>rFh^m$\"+HI#f/#Fh]m7$ $\"+D@8&=(Fh^m$\"+P(4%o?Fh]m7$$\"+bJN]sFh^m$\"+%z8<3#Fh]m7$$\"+(=ubJ(F h^m$\"+()f#f3#Fh]m7$$\"+I6![P(Fh^m$\"+$*4)>3#Fh]m7$$\"+v!GSV(Fh^m$\"+u `wq?Fh]m7$$\"+?]D$\\(Fh^m$\"+dYU_?Fh]m7$$\"+l>[_vFh^m$\"+Ht7F?Fh]m7$$ \"+be$4n(Fh^m$\"+,gWc>Fh]m7$$\"+W(*Q*y(Fh^m$\"+&*>\\g=Fh]m7$$\"+0g4r!) Fh^m$\"+\"3bMa\"Fh]m7$$\"+qA!GN)Fh^m$\"+*\\U!H6Fh]m7$$\"+$e'3I))Fh^m$ \"+:1FSJF_am7$$\"+.FW0\"F^]m$!+ReO+9Fh]m7$$ \"+T^%31\"F^]m$!+gYw*Q\"Fh]m7$$\"+!4js1\"F^]m$!+l#oNP\"Fh]m7$$\"+))*)4 !3\"F^]m$!+bY.D8Fh]m7$$\"+')[$H4\"F^]m$!+O!\\iD\"Fh]m7$$\"+62s>6F^]m$! +SGab5Fh]m7$$\"+Ol]Y6F^]m$!+q)[!RzF_am7$$\"+N?q&>\"F^]m$!+.qo(H#F_am7$ $\"+Egw[7F^]m$\"+%fB,g$F_am7$$\"+7`Kw7F^]m$\"+#Gup2'F_am7$$\"+*f%)QI\" F^]m$\"+S'[)QzF_am7$$\"+?)zeJ\"F^]m$\"++aXI&)F_am7$$\"+S](yK\"F^]m$\"+ +%G>)*)F_am7$$\"+g-()R8F^]m$\"+dg\"4H*F_am7$$\"+![l=N\"F^]m$\"+-\\=d%* F_am7$$\"+Y1#[O\"F^]m$\"+$)Hgy%*F_am7$$\"+7exx8F^]m$\"+!Q%eS$*F_am7$$ \"+y4t!R\"F^]m$\"+j;_]!*F_am7$$\"+Xho.9F^]m$\"+<$=\"=')F_am7$$\"+aSXI9 F^]m$\"+`vVEtF_am7$$\"+i>Ad9F^]m$\"+yWy0cF_am7$$\"+;jf4:F^]m$\"+a(yFd \"F_am7$$\"+&>r-c\"F^]m$!+n/E^AF_am7$$\"+-TS)e\"F^]m$!+!>v.*RF_am7$$\" +4q`;;F^]m$!+W%3PI&F_am7$$\"+yc\"=k\"F^]m$!+Yy4ggF_am7$$\"+YV4n;F^]m$! +YV4\"R'F_am7$$\"+?Z3%p\"F^]m$!+!*4Z\"G'F_am7$$\"+%4v5s\"F^]m$!+P[NKdF _am7$$\"+%QKbu\"F^]m$!+;$39\"\\F_am7$$\"+u'*)*pF^]m$\" +<\"f9g#F_am7$$\"+^&zj#>F^]m$\"+?^6mMF_am7$$\"+w14_>F^]m$\"+^a+KSF_am7 $$\"+-=!y(>F^]m$\"+A5%>I%F_am7$$\"+o*=Z+#F^]m$\"+iwtoUF_am7$$\"+LhjJ?F ^]m$\"+H?xNRF_am7$$\"+i0cd?F^]m$\"+&*zwrLF_am7$$\"+#*\\[$3#F^]m$\"+$Gt :i#F_am7$$\"+Qz]O@F^]m$\"+=*yCo(Fi`m7$$\"+H=4*=#F^]m$!+q-,U5F_am7$$\"+ i4TPAF^]m$!+\"*ez!G#F_am7$$\"+V,z#H#F^]m$!+9-L2HF_am7$$\"+U>KUBF^]m$!+ qH/(p#F_am7$$\"+qJ8&R#F^]m$!+G[iB=F_am7$$\"+b-oXCF^]m$!+01n7kFi`m7$Fd \\m$\"+$pj$\\jFi`m-Fi\\m6&F[]mF(F\\]mF(-F`]m6#\"\"#-%+AXESLABELSG6$%\" xG%%y(x)G-%%VIEWG6$;F(Fd\\m%(DEFAULTG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "plot([D(g )(x),'dgn'(x)],x=0..25,color=[brown,coral],thickness=[1,2],labels=[`x` ,`y'(x)`]);" }}{PARA 13 "" 1 "" {GLPLOT2D 641 334 334 {PLOTDATA 2 "6&- %'CURVESG6%7es7$$\"\"!F)$\"3QGs!R!R*)Qp!#N7$$\"3tLL3x1h6o!#>$!3y)QTp(> %3R'F07$$\"3ummTN@Ki8!#=$!3?G$\\L)Ra*>\"F67$$\"3)***\\7.K[V?F6$!3yHY&) G@J*o\"F67$$\"3\\LL$3FWYs#F6$!3`G&)o-_#e6#F67$$\"3'****\\iSmp3%F6$!32( H&*[N&G1GF67$$\"3)pmm;a)G\\aF6$!3Jwc?RE>?LF67$$\"3#***\\7`p)*>yF6$!3qV RO=>p6RF67$$\"3SL$ek`o!>5!#<$!3)RT+uVF67$$\"31+v=n$ycG\"FU$!3uf\"*3uk+hWF67$$\"3R$3_DG$)*=9FU$!3'Q)R!oN \\/_%F67$$\"3smm\"z>)G_:FU$!3kIM7-GNcXF67$$\"3pmTNrCQ>;FU$!3=SxhjY2mXF 67$$\"3'om\"zWnZ'o\"FU$!3O:<6cfCqXF67$$\"3%o;H#=5d`FU$!3FqXxIRF67$$\"3q**\\(oz#)3(GFU$!3Y#*\\ao\\lyMF67$$\"3bm; z>,_=JFU$!3M.VI'\\%pAHF67$$\"3%***\\(=*e#F67$$\"3'RLekynF)fFU$\"3Uy/78.gDCF67$$\"3I,+]7eP_ iFU$\"3?S#o'\\\\[_vFU$!3=)f19p;\"[[F07$$\"3Mn;zW(*Q*y(FU$!3 r(GeGV]46*F07$$\"3e,D\"y+'4r!)FU$!3I7FY[\\()>8F67$$\"3#\\LL3F-GN)FU$!3 #*3'fjs(G*f\"F67$$\"33M$e*[L7s%)FU$!3!\\)z[c83v;F67$$\"3+NL3FWW\"f)FU$ !3rTnif$z[s\"F67$$\"3oLe9m\\5^')FU$!3XK_`\\1.S_.1`;\"F67$$\"35MLLeMsw)*FU$!362s>6Fh`l$\"3'f\"Qmssrh()F07$$\"3_L$ek`1l9\"Fh` l$\"3#pJK#>bTj5F67$$\"3]3x16a!)e6Fh`l$\"3K;,9qZh?6F67$$\"3[$3xcG/6<\"F h`l$\"3mhEUYL:f6F67$$\"3'4x\")Hs`s<\"Fh`l$\"3')\\R;8#39<\"F67$$\"3YekG gJS$=\"Fh`l$\"3K;7riO,z6F67$$\"3%f9\"f(f_&*=\"Fh`l$\"3'fj`#3;,#=\"F67$ $\"3ULe*[.-d>\"Fh`l$\"3CV=oy3Y!=\"F67$$\"3ki!*yL]L-7Fh`l$\"3=h0)o)ext6 F67$$\"3&=H#oK!o*37Fh`l$\"3%>=TGp,?;\"F67$$\"31@bdJ5g:7Fh`l$\"3KVjv-TF X6F67$$\"35](o/.MAA\"Fh`l$\"3QYl2M'[P7\"F67$$\"3N3_DG+]N7Fh`l$\"3=,MQV &=q1\"F67$$\"3ym;/Egw[7Fh`l$\"35[V\"*po4M**F07$$\"3!oTgFJDjF\"Fh`l$\"3 #o()yya*zZzF07$$\"3!o;z%*f%)QI\"Fh`l$\"3J[\\6#>O^]&F07$$\"39+voza'=N\" Fh`l$\"31$y\"fO@-\\zF`al7$$\"3tm;zWho.9Fh`l$!3o!*fJ/%zz&QF07$$\"3KLek` SXI9Fh`l$!3=&e(*)p#[Or&F07$$\"33++]i>Ad9Fh`l$!3;Km\"4Wc%\\qF07$$\"3/]7 y]bJq9Fh`l$!3%H!4n>mt$\\(F07$$\"3;+D1R\"4M[\"Fh`l$!3%z0@v#y_&z(F07$$\" 3CDJ?Lf&**[\"Fh`l$!3iWiu`Lr#*yF07$$\"37]PMFF]'\\\"Fh`l$!3on\"QHPcU&zF0 7$$\"3,vV[@&\\I]\"Fh`l$!3c9`ua)p/)zF07$$\"32+]i:jf4:Fh`l$!3e\"pf9<9=(z F07$$\"36voaN]EA:Fh`l$!31'[$=#))3%eyF07$$\"3:](oavL\\`\"Fh`l$!3+97EoHi AwF07$$\"3?D1RvCgZ:Fh`l$!3g7Gv;'\\?F(F07$$\"31+DJ&>r-c\"Fh`l$!3$oW`sc% )e\"oF07$$\"33]PM-TS)e\"Fh`l$!3'H&G'pI]/[&F07$$\"3\"***\\P4q`;;Fh`l$!3 +S)ev$y:8QF07$$\"3MLL$eM%4n;Fh`l$!37#f05\"4/hYF`al7$$\"3@++v$4v5s\"Fh` l$\"3Ci\\d*HFFx#F07$$\"3Q$e9TQKbu\"Fh`l$\"3-)o)[R75&*QF07$$\"3cm\"zWn* )*pC*[_AZF07$$\"3!\\(=n8)eLy\"Fh`l$\"3)z:L'4[:Q]F07$$\"3C $ekG&zs'z\"Fh`l$\"3O![f,V,OD&F07$$\"3&>Hd?4(45=Fh`l$\"3w;VhRtJo`F07$$ \"3H++DJiYB=Fh`l$\"3myy84(oNQ&F07$$\"3_e*[$\\b/O=Fh`l$\"3R1CFgmv4`F07$ $\"3u;zWn[i[=Fh`l$\"35]l.lgLa^F07$$\"3)\\(oa&=/7'=Fh`l$\"3\"3*pdk!*GA \\F07$$\"3?Lek.Nyt=Fh`l$\"3hm`n\\Ul>YF07$$\"3rmTgF:3+>Fh`l$\"3#3oti%*p 0z$F07$$\"3B+Dc^&zj#>Fh`l$\"3]@V5BA1eFF07$$\"3GLL3-=!y(>Fh`l$\"3I$))zv Z@=p%F`al7$$\"3:+D\"G8O;.#Fh`l$!3gkO3vC&eu\"F07$$\"3S$eRAcgv0#Fh`l$!3% o(\\o[;drDF07$$\"3+nmm\"*\\[$3#Fh`l$!3qfvSCXZwJF07$$\"3%oT&QG2u'4#Fh`l $!3Ai$e**[s8R$F07$$\"3nmT5lk**4@Fh`l$!3oJ%=LXB)RNF07$$\"3)o\"H#=?_K7#F h`l$!3H4*p#p8R@OF07$$\"3sm;aQz]O@Fh`l$!3:%\\,epEoj$F07$$\"3S]Pf$))*zi@ Fh`l$!3m`!egc2-[$F07$$\"3sLekG=4*=#Fh`l$!3q2R'\\0b%)4$F07$$\"3*p\"Hd&R ^K@#Fh`l$!3q&Q:A2)R$e#F07$$\"3F++]i4TPAFh`l$!3#)\\PJ,*\\1&>F07$$\"3WL$ 3F9!z#H#Fh`l$!3SFl/w@1KUBFh`l$\"3k4IVg'pU4\"F07$$\" 3y$e*)fbF(oBFh`l$\"3')Gj,yF@z;F07$$\"3K+DJqJ8&R#Fh`l$\"3.oB)R@#R7@F07$ $\"3<++]7nS?CFh`l$\"3mL,pmWVmBF07$$\"3Q+voa-oXCFh`l$\"3S@^L2b&pX#F07$$ \"3=]PMF,%GZ#Fh`l$\"3+K*R#eI8xBF07$$\"#DF)$\"3'e'Q_sKWJ@F0-%'COLOURG6& %$RGBG$\")#)eqk!\")$\"))eqk\"F[gmF\\gm-%*THICKNESSG6#\"\"\"-F$6%7es7$F (F(7$$\"+v1h6o!#6$!+v>%3R'Figm7$$\"+N@Ki8!#5$!+$)Ra*>\"F_hm7$$\"+-K[V? F_hm$!+G@J*o\"F_hm7$$\"+qUkCFF_hm$!+-_#e6#F_hm7$$\"+1k'p3%F_hm$!+b`G1G F_hm7$$\"+T&)G\\aF_hm$!+RE>?LF_hm7$$\"+]p)*>yF_hm$!+=>p6RF_hm7$$\"+O&o !>5!\"*$!+dA=_UF_hm7$$\"+_MP_6F^jm$!+c>+uVF_hm7$$\"+n$ycG\"F^jm$!+uk+h WF_hm7$$\"+#G$)*=9F^jm$!+d$\\/_%F_hm7$$\"+)>)G_:F^jm$!+-GNcXF_hm7$$\"+ sCQ>;F^jm$!+kY2mXF_hm7$$\"+XnZ'o\"F^jm$!+cfCqXF_hm7$$\"+=5d`F^jm$!+JRF_hm7$$\"+(z#)3(GF^jm$!+o\\lyMF_hm7$$\"+?,_=JF^jm$!+'\\%pAHF_hm7$$ \"+srsYKF^jm$!+Wft%f#F_hm7$$\"+CU$\\P$F^jm$!+k&ROC#F_hm7$$\"+w79.NF^jm $!+eXXt=F_hm7$$\"+G$[8j$F^jm$!+Uax)[\"F_hm7$$\"+X-%Rw$F^jm$!+.P/\"3\"F _hm7$$\"+i@`'*QF^jm$!+*G@4p'Figm7$$\"+yS7HSF^jm$!+*e#F_hm7$$\"+&ynF)fF^jm$\"+9.gDCF_hm7$$\"+7eP_i F^jm$\"+]\\[_vF^jm$!+pm6[[Figm7$$\"+W(*Q*y(F^jm$!+?/&46*Figm7$$\"+0g4r!)F^jm$!+X \\()>8F_hm7$$\"+qA!GN)F^jm$!+ExG*f\"F_hm7$$\"+]L7s%)F^jm$!+d83v;F_hm7$ $\"+DWW\"f)F^jm$!+f$z[s\"F_hm7$$\"+l\\5^')F^jm$!+\\1.S6F[gm$\"+bsrh()Figm7$$\"+Ol]Y6F[gm$\"+\"F[gm$\"+z3Y!=\"F_hm7$$\"+M]L-7F[gm$\"+()ext6F_hm7$ $\"+K!o*37F[gm$\"+%p,?;\"F_hm7$$\"+J5g:7F[gm$\"+/TFX6F_hm7$$\"+ISBA7F[ gm$\"+O'[P7\"F_hm7$$\"+G+]N7F[gm$\"+X&=q1\"F_hm7$$\"+Egw[7F[gm$\"+to4M **Figm7$$\"+7`Kw7F[gm$\"+5'*zZzFigm7$$\"+*f%)QI\"F[gm$\"+Qi80bFigm7$$ \"+![l=N\"F[gm$\"+J=-\\zF^]o7$$\"+Xho.9F[gm$!+?%zz&QFigm7$$\"+aSXI9F[g m$!+\"H[Or&Figm7$$\"+i>Ad9F[gm$!+@kX\\qFigm7$$\"+]bJq9F[gm$!+(fOP\\(Fi gm7$$\"+R\"4M[\"F[gm$!+Ey_&z(Figm7$$\"+Mf&**[\"F[gm$!+jLr#*yFigm7$$\"+ GF]'\\\"F[gm$!+xjDazFigm7$$\"+A&\\I]\"F[gm$!+b)p/)zFigm7$$\"+;jf4:F[gm $!+qT\"=(zFigm7$$\"+O]EA:F[gm$!+w)3%eyFigm7$$\"+cP$\\`\"F[gm$!+cHiAwFi gm7$$\"+wCgZ:F[gm$!+(f\\?F(Figm7$$\"+&>r-c\"F[gm$!+!e%)e\"oFigm7$$\"+- TS)e\"F[gm$!+E.X![&Figm7$$\"+4q`;;F[gm$!+hy:8QFigm7$$\"+YV4n;F[gm$!+,3 /hYF^]o7$$\"+%4v5s\"F[gm$\"+7tssFFigm7$$\"+%QKbu\"F[gm$\"+N75&*QFigm7$ $\"+u'*)*p9g`_Figm7$$\"+#4(45=F[gm$\"+RtJo`Figm7$$\"+JiYB=F[gm$\"+5( oNQ&Figm7$$\"+]b/O=F[gm$\"+amv4`Figm7$$\"+o[i[=F[gm$\"+dgLa^Figm7$$\"+ '=/7'=F[gm$\"+b!*GA\\Figm7$$\"+/Nyt=F[gm$\"+SUl>YFigm7$$\"+G:3+>F[gm$ \"+K*p0z$Figm7$$\"+^&zj#>F[gm$\"+ZA1eFFigm7$$\"+-=!y(>F[gm$\"+::#=p%F^ ]o7$$\"+LhjJ?F[gm$!+#[_eu\"Figm7$$\"+i0cd?F[gm$!+U;drDFigm7$$\"+#*\\[$ 3#F[gm$!+JXZwJFigm7$$\"+G2u'4#F[gm$!+&[s8R$Figm7$$\"+lk**4@F[gm$!+_M#) RNFigm7$$\"+-ADB@F[gm$!+q8R@OFigm7$$\"+Qz]O@F[gm$!+'pEoj$Figm7$$\"+%)) *zi@F[gm$!+iv?![$Figm7$$\"+H=4*=#F[gm$!+\\]X)4$Figm7$$\"+'R^K@#F[gm$!+ i!)R$e#Figm7$$\"+i4TPAF[gm$!+:*\\1&>Figm7$$\"+V,z#H#F[gm$!+)3iq\"HF^]o 7$$\"+U>KUBF[gm$\"+p'pU4\"Figm7$$\"+cvsoBF[gm$\"+yF@z;Figm7$$\"+qJ8&R# F[gm$\"+5AR7@Figm7$$\"+7nS?CF[gm$\"+jWVmBFigm7$$\"+b-oXCF[gm$\"+2b&pX# Figm7$$\"+G,%GZ#F[gm$\"+aI8xBFigm7$Fafm$\"+tKWJ@Figm-Fffm6&Fhfm$\"*+++ +\"F[gm$\")AR!)\\F[gmF(-F_gm6#\"\"#-%+AXESLABELSG6$%\"xG%&y'(x)G-%%VIE WG6$;F(Fafm%(DEFAULTG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 32 "We can also plot the associated " }{TEXT 267 11 "phase curve" }{TEXT -1 4 " or " }{TEXT 267 10 "trajectory" } {TEXT -1 32 ", that is, the parametric curve:" }}{PARA 257 "" 0 "" {TEXT -1 1 " " }{XPPEDIT 18 0 "PIECEWISE([y = y(x), ``],[u = `y '`(x), ``]);" "6#-%*PIECEWISEG6$7$/%\"yG-F(6#%\"xG%!G7$/%\"uG-%$y~'G6#F+F," }{TEXT -1 3 ". " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 135 "plot(['gn'(x),'dgn'(x),x=0..25],color=COLOR(R GB,.5,0,1),thickness=2,\n labels=[`y = y(x)`,`u = y'(x)`]);" }{TEXT -1 0 "" }}{PARA 13 "" 1 "" {GLPLOT2D 437 293 293 {PLOTDATA 2 "6'-%'CURVESG6#7es7$$\"\"\"\"\"!$F*F*7$$\"+`Vw x**!#5$!+v>%3R'!#67$$\"+!)4s9**F/$!+$)Ra*>\"F/7$$\"+DD&f\")*F/$!+G@J*o \"F/7$$\"+%4=go*F/$!+-_#e6#F/7$$\"+ShZ[$*F/$!+b`G1GF/7$$\"+i-TH*)F/$!+ RE>?LF/7$$\"+i*e]^)F/$!+v1&fl$F/7$$\"+]2&e1)F/$!+=>p6RF/7$$\"+>=:!f(F/ $!+rxi0TF/7$$\"+ryR%4(F/$!+dA=_UF/7$$\"+eqyHfF/$!+uk+hWF/7$$\"+$3Lcs%F /$!+-GNcXF/7$$\"+>e4+NF/$!+82ZhXF/7$$\"+oU'fG#F/$!+Y2toWF/7$$\"+,zO<6F /$!+s#p0E%F/7$$\"+KC]!=#!#7$!+U`m>RF/7$$!+lS:n*)F2$!+o\\lyMF/7$$!+tXc \"p\"F/$!+'\\%pAHF/7$$!+c!=b/#F/$!+Wft%f#F/7$$!+J\">$F/$\"+3)4)H9F 27$$!+Z)fl9$F/$\"+VBb'H&F27$$!+-Z1_IF/$\"+-k;l*)F27$$!+bJp5HF/$\"+_'R \"Q7F/7$$!+*39hs#F/$\"+`\"p&\\:F/7$$!+8'[$HAF/$\"+'z*Qx?F/7$$!+yDI7;F/ $\"+!)HcICF/7$$!+=l::8F/$\"+,u?EDF/7$$!+'R+)35F/$\"+=]O%e#F/7$$!+Tu@xp F2$\"+Yv90EF/7$$!+*HFO'QF2$\"+C#)>*e#F/7$$!+*fB34%Ffp$\"+z%\\(GDF/7$$ \"+vi)[$HF2$\"+9.gDCF/7$$\"+*Q?F6'F2$\"+If$GG#F/7$$\"+qpXt!*F2$\"+]\\< /@F/7$$\"+%fu&=9F/$\"+P-ja;F/7$$\"+<\")G&z\"F/$\"+nVS<6F/7$$\"+)4,U,#F /$\"+&))[Hd&F27$$\"+()f#f3#F/$!+g$p%4X!#87$$\"+Ht7F?F/$!+pm6[[F27$$\"+ &*>\\g=F/$!+?/&46*F27$$\"+\"3bMa\"F/$!+X\\()>8F/7$$\"+*\\U!H6F/$!+ExG* f\"F/7$$\"+2LMM$*F2$!+d83v;F/7$$\"+,#>LI(F2$!+f$z[s\"F/7$$\"+7!z$G_F2$ !+?.t[&F2$\"+ZL:f6F/7$$!+*z&\\]PF2$\"+iO,z6F/7$$!+.qo(H#F2$\"+z3Y! =\"F/7$$!+tj\"oT(Ffp$\"+%p,?;\"F/7$$\"+>\"ydw(Ffp$\"+O'[P7\"F/7$$\"+'4 t;B#F2$\"+X&=q1\"F/7$$\"+%fB,g$F2$\"+to4M**F27$$\"+#Gup2'F2$\"+5'*zZzF 27$$\"+S'[)QzF2$\"+Qi80bF27$$\"++%G>)*)F2$\"+DAjrJF27$$\"+-\\=d%*F2$\" +J=-\\zFfp7$$\"+!Q%eS$*F2$!+'R=Km\"F27$$\"+<$=\"=')F2$!+?%zz&QF27$$\"+ `vVEtF2$!+\"H[Or&F27$$\"+yWy0cF2$!+@kX\\qF27$$\"+'pG@l%F2$!+(fOP\\(F27 $$\"+!34'\\OF2$!+Ey_&z(F27$$\"+cv%ph#F2$!+xjDazF27$$\"+a(yFd\"F2$!+qT \"=(zF27$$\"+=94(o&Ffp$!+w)3%eyF27$$!+9NqJTFfp$!+cHiAwF27$$!+^(=yN\"F2 $!+(f\\?F(F27$$!+n/E^AF2$!+!e%)e\"oF27$$!+!>v.*RF2$!+E.X![&F27$$!+W%3P I&F2$!+hy:8QF27$$!+Yy4ggF2$!+R)Rj:#F27$$!+YV4\"R'F2$!+,3/hYFfp7$$!+!*4 Z\"G'F2$\"+cO,a7F27$$!+P[NKdF2$\"+7tssFF27$$!+;$39\"\\F2$\"+N75&*QF27$ $!+VP=^QF2$\"+z[_AZF27$$!+&y$F2$\"+'za\"Q]F27$$!+J_`3DF2$\"+>9g`_F2 7$$!+@oQ(z\"F2$\"+RtJo`F27$$!+fYdx5F2$\"+5(oNQ&F27$$!+T4BTSFfp$\"+amv4 `F27$$\"+8YF27$$\"+<\"f9g#F2$\"+K*p0z$F27$$\"+?^6mMF2$\"+ZA1eFF27$$ \"+^a+KSF2$\"+:6HJ;F27$$\"+A5%>I%F2$\"+::#=p%Ffp7$$\"+iwtoUF2$!+.Q<7qF fp7$$\"+H?xNRF2$!+#[_eu\"F27$$\"+&*zwrLF2$!+U;drDF27$$\"+$Gt:i#F2$!+JX ZwJF27$$\"++x`&=#F2$!+&[s8R$F27$$\"+#H3as\"F2$!+_M#)RNF27$$\"+d`.]7F2$ !+q8R@OF27$$\"+=*yCo(Ffp$!+'pEoj$F27$$\"+f8QEHFfp$!+5_n)e$F27$$!+?ASE< Ffp$!+iv?![$F27$$!+/B**)>'Ffp$!+URC:LF27$$!+q-,U5F2$!+\\]X)4$F27$$!+De 9JF27$$!+(Gx'4FF2$!+'=Ak8\"F27 $$!+9-L2HF2$!+)3iq\"HFfp7$$!+t@S))GF2$\"+spSiVFfp7$$!+qH/(p#F2$\"+p'pU 4\"F27$$!+lD$yK#F2$\"+yF@z;F27$$!+G[iB=F2$\"+5AR7@F27$$!+4]&pa\"F2$\"+ >xrfAF27$$!+FcAa7F2$\"+jWVmBF27$$!+X8.1&*Ffp$\"+$*Q5KCF27$$!+01n7kFfp$ \"+2b&pX#F27$$!+xe3$3$Ffp$\"+19Fey$\"+aI8xBF27$$\"+6&> VN$Ffp$\"+I$eMF#F27$$\"+$pj$\\jFfp$\"+tKWJ@F2-%&COLORG6&%$RGBG$\"\"&! \"\"F+F(-%*THICKNESSG6#\"\"#-%+AXESLABELSG6$%)y~=~y(x)G%*u~=~y'(x)G-%% VIEWG6$%(DEFAULTGFegm" 1 2 0 1 10 2 2 6 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 9 "Example 6" }{TEXT 280 108 " .. simultaneous construction o f numerical procedures for both the solution and its derivative - phas e curve" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{PARA 0 "" 0 "" {TEXT -1 34 "Consider the initial value problem" }}{PARA 257 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "d^2*y/(d*x^2)+dy/dx+x*y = 0;" "6# /,(*(%\"dG\"\"#%\"yG\"\"\"*&F&F)*$%\"xGF'F)!\"\"F)*&%#dyGF)%#dxGF-F)*& F,F)F(F)F)\"\"!" }{TEXT -1 3 ", " }{XPPEDIT 18 0 "y(0) = 1;" "6#/-%\" yG6#\"\"!\"\"\"" }{TEXT -1 3 ", " }{XPPEDIT 18 0 "`y '`(0) = 0;" "6#/ -%$y~'G6#\"\"!F'" }{TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 59 "Firs t we find an analytical solution and set up a function " }{TEXT 272 1 "g" }{TEXT -1 17 " to evaluate it. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" } }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 276 "de := diff(y(x),x$2)+diff( y(x),x)+x*y(x)=0;\nic := y(0)=1,D(y)(0)=0;\ndsolve(\{de,ic\},y(x));\ng := unapply(rhs(%),x):\n# procedure to evaluate coefficients of an exp ression numerically\nevalf_coeff := (u,d)->frontend(evalf[d],[u],[\{`+ `,`*`,realcons\},\{\}]):\ny(x)=evalf_coeff(g(x),14);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-%%diffG6$-%\"yG6#%\"xG-%\"$G6$F-\"\"#\"\" \"-F(6$F*F-F2*&F-F2F*F2F2\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#i cG6$/-%\"yG6#\"\"!\"\"\"/--%\"DG6#F(F)F*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/-%\"yG6#%\"xG,&*&#\"\"\"\"\"#F+**,&-%'AiryBiG6##F+\"\"%F+*&F,F+ -F06$F+F2F+F+F+,&*&-%'AiryAiGF6F+F/F+F+*&F5F+-F:F1F+!\"\"F=-%$expG6#,$ *&F,F=F'F+F=F+-F:6#,&F2F+F'F=F+F+F=*&#F+F,F+**,&FF+-F0FDF+F+F+" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/-%\"yG6#%\"xG,&*($ \"/WTMa#3i#!#8\"\"\"-%$expG6#,$*&\"\"#!\"\"F'F-F4F--%'AiryAiG6#,&#F-\" \"%F-F'F4F-F-*($\"/Ow8V#4D$!#9F-F.F--%'AiryBiGF7F-F-" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 18 "With the option ''" } {TEXT 272 21 "output=procedure_pair" }{TEXT -1 3 "'' " }{TEXT 0 9 "des olveK2" }{TEXT -1 84 " constructs numerical procedures for the solutio n and its derivative simultaneously." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 225 "de := diff(y(x),x$2)+diff (y(x),x)+x*y(x)=0;\nic := y(0)=1,D(y)(0)=0;\n(gn,dgn) := desolveK2(\{d e,ic\},x=0..10,method=rk78,output=procedure_pair);\nplot([g(x),'gn'(x) ],x=0..10,color=[red,green],thickness=[1,2],labels=[`x`,`y(x)`]);" } {TEXT -1 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-%%diffG6$-% \"yG6#%\"xG-%\"$G6$F-\"\"#\"\"\"-F(6$F*F-F2*&F-F2F*F2F2\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\"yG6#\"\"!\"\"\"/--%\"DG6#F(F)F* " }}{PARA 13 "" 1 "" {GLPLOT2D 564 267 267 {PLOTDATA 2 "6&-%'CURVESG6% 7do7$$\"\"!F)$\"+)*********!#57$$\"+;arz@F,$\"+uik$)**F,7$$\"+!y%*z7$F ,$\"+8**y_**F,7$$\"+XTFwSF,$\"+)Qkz*)*F,7$$\"+qMrU^F,$\"+FEd+)*F,7$$\" +\"z_\"4iF,$\"+s5he'*F,7$$\"+S&phN)F,$\"+ybX:#*F,7$$\"+*=)H\\5!\"*$\"+ 8SlU&)F,7$$\"+[!3uC\"FN$\"+!y8iq(F,7$$\"+!pt*\\8FN$\"+q*Gn>(F,7$$\"+J$ RDX\"FN$\"+Le\"*RmF,7$$\"+kGhe:FN$\"+!4o*>gF,7$$\"+)R'ok;FN$\"+pWXi`F, 7$$\"+_(>/x\"FN$\"+hhFyYF,7$$\"+1J:w=FN$\"+*31^(RF,7$$\"+dG\"\\)>FN$\" +bUAVKF,7$$\"+3En$4#FN$\"+%*p'[^#F,7$$\"+c#o%*=#FN$\"+miR')=F,7$$\"+/R E&G#FN$\"+([F$z7F,7$$\"+9r5$R#FN$\"+`#Q@K'!#67$$\"+D.&4]#FN$\"*\"y0tMF gq7$$\"+]jB4EFN$!+oz#e/&Fgq7$$\"+vB_5Yl\"F,7$$\"+'y#*4-$FN$!+Wfbf=F,7$$\"+(*ev:JFN$!+U^\"z*>F,7$$\"+]r4sJ FN$!+;\\*)[?F,7$$\"+-%Q%GKFN$!+I`.x?F,7$$\"+b'zZG$FN$!+eB&H3#F,7$$\"+3 47TLFN$!+)eVu1#F,7$$\"+qxdOMFN$!+013&*>F,7$$\"+LY.KNFN$!+(ew)p=F,7$$\" +dO2VOFN$!+]35n;F,7$$\"+\"o7Tv$FN$!+Hb0:9F,7$$\"+$Q*o]RFN$!+[E\"y\"*)F gq7$$\"+\"=lj;%FN$!+P#GJ)GFgq7$$\"+V&RN?M(Fgq7$$\"+R\"3Gy%FN$\"+x*[>4)Fgq7$ $\"+I@(e$[FN$\"+r7')=$)Fgq7$$\"+@h$*))[FN$\"+!>RQU)Fgq7$$\"+7,+U\\FN$ \"+ONd5%)Fgq7$$\"+.T1&*\\FN$\"+\"fMTG)Fgq7$$\"+]7I0^FN$\"+\"H:()o(Fgq7 $$\"+(RQb@&FN$\"+\"o#>1nFgq7$$\"+=>Y2aFN$\"+qihWVFgq7$$\"+yXu9cFN$\"+G xd19Fgq7$$\"+\\y))GeFN$!+qX!fN\"Fgq7$$\"+bljLfFN$!+0BLACFgq7$$\"+i_QQg FN$!+HHfLKFgq7$$\"+?]tRhFN$!+3!*=\\PFgq7$$\"+!y%3TiFN$!+CrJ\"*RFgq7$$ \"+5kh`jFN$!+*ee+&RFgq7$$\"+O![hY'FN$!+%>5Yh$Fgq7$$\"+#Qx$omFN$!+!z(yY CFgq7$$\"+u.I%)oFN$!+LUomz!#77$$\"+(pe*zqFN$\"+apHfiFa]l7$$\"+C\\'QH(F N$\"+Y!R+r\"Fgq7$$\"+8S8&\\(FN$\"+2l\"H3#Fgq7$$\"+0#=bq(FN$\"+kI\"\\!= Fgq7$$\"+2s?6zFN$\"+0K#31\"Fgq7$$\"+IXaE\")FN$\"+uAn>5Fa]l7$$\"+l*RRL) FN$!+XN&ez'Fa]l7$$\"+`<.Y&)FN$!+\\W\"[5\"Fgq7$$\"+8tOc()FN$!+n*z'z5Fgq 7$$\"+\\Qk\\*)FN$!+[7nZtFa]l7$$\"+p0;r\"*FN$!+*oU%z:Fa]l7$$\"+lxGp$*FN $\"+YV5*=$Fa]l7$$\"+!oK0e*FN$\"+xAomhFa]l7$$\"+<5s#y*FN$\"+pJ_KjFa]l7$ $\"#5F)$\"+F?^LSFa]l-%'COLOURG6&%$RGBG$\"*++++\"!\")F(F(-%*THICKNESSG6 #\"\"\"-F$6%7do7$F($FgblF)7$F.$\"+rik$)**F,F27$F8$\"+&Qkz*)*F,7$F=$\"+ CEd+)*F,7$FB$\"+p5he'*F,7$FG$\"+vbX:#*F,7$FL$\"+7SlU&)F,FQ7$FW$\"+n*Gn >(F,7$Ffn$\"+Ie\"*RmF,Fjn7$F`o$\"+nWXi`F,7$Feo$\"+ehFyYF,7$Fjo$\"+(31^ (RF,7$F_p$\"+aUAVKF,7$Fdp$\"+$*p'[^#F,FhpF]q7$Fcq$\"+c#Q@K'Fgq7$Fiq$\" +-y0tMFa]l7$F^r$!+nz#e/&Fgq7$Fcr$!+t7YQ(*Fgq7$Fhr$!+$>5Yl\"F,7$F]s$!+V fbf=F,FasFfsF[t7$Fat$!+fB&H3#F,Fet7$F[u$!+/13&*>F,7$F`u$!+&ew)p=F,7$Fe u$!+[35n;F,7$Fju$!+Fb0:9F,7$F_v$!+WE\"y\"*)Fgq7$Fdv$!+N#GJ)GFgq7$Fiv$ \"+8'3.C#Fgq7$F^w$\"+$Q,e;'FgqFbw7$Fhw$\"+!)*[>4)Fgq7$F]x$\"+u7')=$)Fg q7$Fbx$\"+$=RQU)Fgq7$Fgx$\"+JNd5%)Fgq7$F\\y$\"+$fMTG)Fgq7$Fay$\"+*G:() o(Fgq7$Ffy$\"+uE>1nFgq7$F[z$\"+oihWVFgqF_zFdzFizF^[l7$Fd[l$!+2!*=\\PFg q7$Fi[l$!+BrJ\"*RFgq7$F^\\l$!+)ee+&RFgq7$Fc\\l$!+$>5Yh$FgqFg\\lF\\]l7$ Fc]l$\"+]pHfiFa]lFg]l7$F]^l$\"+1l\"H3#Fgq7$Fb^l$\"+jI\"\\!=Fgq7$Fg^l$ \"+1K#31\"Fgq7$F\\_l$\"+sAn>5Fa]l7$Fa_l$!+SN&ez'Fa]l7$Ff_l$!+[W\"[5\"F gqFj_l7$F``l$!+Z7nZtFa]lFd`l7$Fj`l$\"+WV5*=$Fa]lF^al7$Fdal$\"+nJ_KjFa] l7$Fial$\"+G?^LSFa]l-F^bl6&F`blF(FablF(-Febl6#\"\"#-%+AXESLABELSG6$%\" xG%%y(x)G-%%VIEWG6$;F(Fial%(DEFAULTG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "plot([D(g)(x),'dgn '(x)],x=0..10,color=[brown,coral],thickness=[1,2],labels=[`x`,`y'(x)`] );" }}{PARA 13 "" 1 "" {GLPLOT2D 611 277 277 {PLOTDATA 2 "6&-%'CURVESG 6%7fq7$$\"\"!F)$\"\"#!#57$$\"+qUkCF!#6$!(`$yOF,7$$\"+S&)G\\aF0$!)g6e9F ,7$$\"+5G$R<)F0$!)%\\8D$F,7$$\"+3x&)*3\"F,$!)hXGdF,7$$\"+ilyM;F,$!*vhf E\"F,7$$\"+;arz@F,$!*Ou/@#F,7$$\"+!y%*z7$F,$!*#fr5WF,7$$\"+XTFwSF,$!*- eJD(F,7$$\"+qMrU^F,$!+/f;76F,7$$\"+\"z_\"4iF,$!+BkCf:F,7$$\"+l6m#G(F,$ !+n\\/e?F,7$$\"+S&phN)F,$!+\\7'Gf#F,7$$\"+:ddC%*F,$!+xvIZJF,7$$\"+*=)H \\5!\"*$!+&oC'4PF,7$$\"+=JN[6F\\p$!+td5DUF,7$$\"+[!3uC\"F\\p$!+NycAZF, 7$$\"+!pt*\\8F\\p$!+h0t0_F,7$$\"+J$RDX\"F\\p$!+)ftKk&F,7$$\"+)R'ok;F\\ p$!+AyZ\\jF,7$$\"+_(>/x\"F\\p$!+/vtwlF,7$$\"+1J:w=F\\p$!+gIC2nF,7$$\"+ WIM.>F\\p$!+%4wTs'F,7$$\"+#)H`I>F\\p$!+F\\p$!+5E)ot' F,7$$\"+dG\"\\)>F\\p$!+'e$[KnF,7$$\"+%z-@,#F\\p$!+K>#3s'F,7$$\"+KFHR?F \\p$!+KF%=q'F,7$$\"+qE[m?F\\p$!+0U]vmF,7$$\"+3En$4#F\\p$!+wzxTmF,7$$\" +c#o%*=#F\\p$!+6=+kkF,7$$\"+/RE&G#F\\p$!+jME&>'F,7$$\"+9r5$R#F\\p$!+Mf q(y&F,7$$\"+D.&4]#F\\p$!+ZAVw_F,7$$\"+]jB4EF\\p$!+Rw2qYF,7$$\"+vB_8oKF,7$$\"+v'Hi#HF\\p$!+_S-8DF,7$$ \"+'y#*4-$F\\p$!+;mB6=F,7$$\"+(*ev:JF\\p$!+()zM56F,7$$\"+-%Q%GKF\\p$!+ DW[,IF07$$\"+347TLF\\p$\"+Ff0*f%F07$$\"+qxdOMF\\p$\"+lt3Y5F,7$$\"+LY.K NF\\p$\"+mb!\\c\"F,7$$\"+dO2VOF\\p$\"+Y,Fo?F,7$$\"+\"o7Tv$F\\p$\"+x1K] CF,7$$\"+K5S_QF\\p$\"+rzazEF,7$$\"+$Q*o]RF\\p$\"+C;@.GF,7$$\"+e)[w(RF \\p$\"+=vm=GF,7$$\"+K$3Y+%F\\p$\"+4!fi#GF,7$$\"+2ycJSF\\p$\"+)[kg#GF,7 $$\"+#GF&eSF\\p$\"+>C==GF,7$$\"+KiW7TF\\p$\"+5$[)zFF,7$$\"+\"=lj;%F\\p $\"+EbV7FF,7$$\"+iB0pUF\\p$\"+9A=4DF,7$$\"+V&RAF,7$$\"+ Xh-'e%F\\p$\"+cqi29F,7$$\"+R\"3Gy%F\\p$\"+\"pT:W&F07$$\"+.T1&*\\F\\p$! +P^76MF07$$\"+(RQb@&F\\p$!+YV$3/\"F,7$$\"+g,]6`F\\p$!+*pzBC\"F,7$$\"+= >Y2aF\\p$!+'yEEP\"F,7$$\"+]APLaF\\p$!+k1E&R\"F,7$$\"+&e#GfaF\\p$!+epb7 9F,7$$\"+?H>&[&F\\p$!+(fTXU\"F,7$$\"+]K56bF\\p$!+7$e7V\"F,7$$\"+!e8q`& F\\p$!+w$oFV\"F,7$$\"+:R#Hc&F\\p$!+$H]\"H9F,7$$\"+XU$))e&F\\p$!+J%*\\? 9F,7$$\"+yXu9cF\\p$!+sv#pS\"F,7$$\"+:i\"=s&F\\p$!+;Ro,8F,7$$\"+\\y))Ge F\\p$!+XTbE6F,7$$\"+i_QQgF\\p$!+kN!GU'F07$$\"+!y%3TiF\\p$!+.hP`5F07$$ \"+O![hY'F\\p$\"+1F[YTF07$$\"+5FEnlF\\p$\"+`r[feF07$$\"+#Qx$omF\\p$\"+ 7(4_1(F07$$\"+I\"eBs'F\\p$\"+R]d&[(F07$$\"+!))Qjx'F\\p$\"+c<8ZxF07$$\" +D'>.$oF\\p$\"+WD!4&yF07$$\"+u.I%)oF\\p$\"+))3!3!yF07$$\"+N&H@)pF\\p$ \"+Pc=TtF07$$\"+(pe*zqF\\p$\"+6N>gkF07$$\"+5=\"p=(F\\p$\"+5>k8^F07$$\" +C\\'QH(F\\p$\"+R[e%\\$F07$$\"+8S8&\\(F\\p$\"+F12d@!#77$$\"+0#=bq(F\\p $!+sn`&p#F07$$\"+0FO3yF\\p$!+'QL\"zOF07$$\"+2s?6zF\\p$!+@GF%H%F07$$\"+ S:/lzF\\p$!+$>d7Y%F07$$\"+qe()=!)F\\p$!+BZt@XF07$$\"++-rs!)F\\p$!+\"\\ o&yWF07$$\"+IXaE\")F\\p$!+v!3oL%F07$$\"+]ACI#)F\\p$!+*f$\\8QF07$$\"+l* RRL)F\\p$!+uCK?IF07$$\"+`<.Y&)F\\p$!+pSH)H*Fbfl7$$\"+8tOc()F\\p$\"+)e! [(4\"F07$$\"+!e0I&))F\\p$\"+EF3==F07$$\"+\\Qk\\*)F\\p$\"+U\"Q\"QBF07$$ \"+5ASg!*F\\p$\"+@%e\\l#F07$$\"+p0;r\"*F\\p$\"+8p#pm#F07$$\"+lTAq#*F\\ p$\"+K7PQCF07$$\"+lxGp$*F\\p$\"+K\\\"4-#F07$$\"+!oK0e*F\\p$\"+QA\"GS(F bfl7$$\"+<5s#y*F\\p$!+$RSGU&Fbfl7$$\"#5F)$!+([f8Y\"F0-%'COLOURG6&%$RGB G$\")#)eqk!\")$\"))eqk\"F]]mF^]m-%*THICKNESSG6#\"\"\"-F$6%7fq7$F(F(7$F .$!+@^NyO!#87$F4$!+>e6e9Fbfl7$F9$!+T)\\8D$Fbfl7$F>$!+LgXGdFbfl7$FC$!+l <'fE\"F07$FH$!+VVZ5AF07$FM$!+gfr5WF07$FR$!+R!eJD(F0FV7$Ffn$!+AkCf:F,Fj n7$F`o$!+Y7'Gf#F,7$Feo$!+wvIZJF,7$Fjo$!+%oC'4PF,7$F`p$!+sd5DUF,7$Fep$! +LycAZF,7$Fjp$!+f0t0_F,7$F_q$!+(ftKk&F,7$Fdq$!+ByZ\\jF,7$Fiq$!+-vtwlF, 7$F^r$!+dIC2nF,Fbr7$Fhr$!+8n3MnF,7$F]s$!+1E)ot'F,7$Fbs$!+%e$[KnF,7$Fgs $!+H>#3s'F,7$F\\t$!+JF%=q'F,7$Fat$!+.U]vmF,7$Fft$!+tzxTmF,7$F[u$!+7=+k kF,7$F`u$!+kME&>'F,7$Feu$!+Ifq(y&F,7$Fju$!+WAVw_F,7$F_v$!+Pw2qYF,Fcv7$ Fiv$!+s>8oKF,7$F^w$!+aS-8DF,7$Fcw$!+:mB6=F,7$Fhw$!+')zM56F,7$F]x$!+HW[ ,IF07$Fbx$\"+Kf0*f%F0Ffx7$F\\y$\"+lb!\\c\"F,7$Fay$\"+W,Fo?F,7$Ffy$\"+v 1K]CF,7$F[z$\"+pzazEF,F_zFdz7$Fjz$\"+3!fi#GF,7$F_[l$\"+!\\kg#GF,7$Fd[l $\"+gkF07$Fdel$\"+6>k8^F0Fhel7$F^fl$\"+>12d@Fbfl7$Fdfl$!+rn `&p#F07$Fifl$!+&QL\"zOF07$F^gl$!+CGF%H%F0Fbgl7$Fhgl$!+CZt@XF07$F]hl$!+ !\\o&yWF0Fahl7$Fghl$!++O\\8QF07$F\\il$!+sCK?IF07$Fail$!+cSH)H*Fbfl7$Ff il$\"+(e![(4\"F07$F[jl$\"+FF3==F0F_jl7$Fejl$\"+A%e\\l#F0FijlF^[mFc[m7$ Fi[m$\"+SA\"GS(Fbfl7$F^\\m$!+#RSGU&FbflFb\\m-Fh\\m6&Fj\\m$\"*++++\"F]] m$\")AR!)\\F]]mF(-Fa]m6#F+-%+AXESLABELSG6$%\"xG%&y'(x)G-%%VIEWG6$;F(Fc \\m%(DEFAULTG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 32 "We can also plot the associated " }{TEXT 267 11 "pha se curve" }{TEXT -1 4 " or " }{TEXT 267 10 "trajectory" }{TEXT -1 32 " , that is, the parametric curve:" }}{PARA 257 "" 0 "" {TEXT -1 1 " " } {XPPEDIT 18 0 "PIECEWISE([y = y(x), ``],[u = `y '`(x), ``]);" "6#-%*PI ECEWISEG6$7$/%\"yG-F(6#%\"xG%!G7$/%\"uG-%$y~'G6#F+F," }{TEXT -1 3 ". \+ " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 137 "plot(['gn'(x),'dgn'(x),x=0..10],color=COLOR(RGB,.5,0,1),thick ness=2,\n labels=[`y = y(x)`,`u = y' (x)`]);" }{TEXT -1 0 "" }}{PARA 13 "" 1 "" {GLPLOT2D 479 297 297 {PLOTDATA 2 "6'-%'CURVESG6#7]q7$$\"\"\"\"\"!$F*F*7$$\"+rik$)**!#5$!+VV Z5A!#67$$\"+&Qkz*)*F/$!+R!eJD(F27$$\"+CEd+)*F/$!+/f;76F/7$$\"+p5he'*F/ $!+AkCf:F/7$$\"+eF$[Y*F/$!+n\\/e?F/7$$\"+vbX:#*F/$!+Y7'Gf#F/7$$\"+j%[* 3*)F/$!+wvIZJF/7$$\"+7SlU&)F/$!+%oC'4PF/7$$\"+s#o&\\\")F/$!+sd5DUF/7$$ \"+!y8iq(F/$!+LycAZF/7$$\"+n*Gn>(F/$!+f0t0_F/7$$\"+Ie\"*RmF/$!+(ftKk&F /7$$\"+!4o*>gF/$!+.'*>MgF/7$$\"+nWXi`F/$!+ByZ\\jF/7$$\"+ehFyYF/$!+-vtw lF/7$$\"+(31^(RF/$!+dIC2nF/7$$\"+aUAVKF/$!+%e$[KnF/7$$\"+$*p'[^#F/$!+t zxTmF/7$$\"+miR')=F/$!+7=+kkF/7$$\"+([F$z7F/$!+kME&>'F/7$$\"+c#Q@K'F2$ !+Ifq(y&F/7$$\"+-y0tM!#7$!+WAVw_F/7$$!+nz#e/&F2$!+Pw2qYF/7$$!+t7YQ(*F2 $!+c%y`)RF/7$$!+:Js_8F/$!+s>8oKF/7$$!+$>5Yl\"F/$!+aS-8DF/7$$!+Vfbf=F/$ !+:mB6=F/7$$!+U^\"z*>F/$!+')zM56F/7$$!+I`.x?F/$!+HW[,IF27$$!+)eVu1#F/$ \"+Kf0*f%F27$$!+/13&*>F/$\"+lt3Y5F/7$$!+&ew)p=F/$\"+lb!\\c\"F/7$$!+[35 n;F/$\"+W,Fo?F/7$$!+Fb0:9F/$\"+v1K]CF/7$$!+HAR\"H\"F/$\"+^P-yDF/7$$!+* y%4i6F/$\"+pzazEF/7$$!+FsXG5F/$\"+QdiaFF/7$$!+WE\"y\"*)F2$\"+C;@.GF/7$ $!+PNs)R(F2$\"+3!fi#GF/7$$!+R,jveF2$\"+Fdr$\"+9A=4DF/7$$\"+8'3.C#F2$\"+fN.> AF/7$$\"+g&)R@WF2$\"+&y%=T=F/7$$\"+$Q,e;'F2$\"+cqi29F/7$$\"+!)*[>4)F2$ \"+!pT:W&F27$$\"+$fMTG)F2$!+T^76MF27$$\"+*G:()o(F2$!+`K4\"G(F27$$\"+uE >1nF2$!+XV$3/\"F/7$$\"+k890cF2$!+*pzBC\"F/7$$\"+oihWVF2$!+'yEEP\"F/7$$ \"+LR/AOF2$!+dpb79F/7$$\"+M?H%)GF2$!+6$e7V\"F/7$$\"+5598DF2$!+v$oFV\"F /7$$\"+!*[EU@F2$!+%H]\"H9F/7$$\"+T0)Hx\"F2$!+I%*\\?9F/7$$\"+Gxd19F2$!+ rv#pS\"F/7$$!+Bc.K]!#8$!+;Ro,8F/7$$!+qX!fN\"F2$!+XTbE6F/7$$!+0BLACF2$! +7$fA-*F27$$!+HHfLKF2$!+hN!GU'F27$$!+BrJ\"*RF2$!+-hP`5F27$$!+$>5Yh$F2$ \"+2F[YTF27$$!+=\"HZ5$F2$\"+^r[feF27$$!+!z(yYCF2$\"+3(4_1(F27$$!+&>WL0 #F2$\"+Q]d&[(F27$$!+;K\\T;F2$\"+e<8ZxF27$$!+TJz>7F2$\"+PD!4&yF27$$!+LU omzFdr$\"+))3!3!yF27$$!+K\\S)=%Fdr$\"+)RV!GwF27$$!+#of%G_F^^l$\"+Pc=Tt F27$$\"+CFgkF27$$\"+FE!zC\"F2$\" +6>k8^F27$$\"+Y!R+r\"F2$\"+R[e%\\$F27$$\"+1l\"H3#F2$\"+>12d@Fdr7$$\"+j I\"\\!=F2$!+rn`&p#F27$$\"+a)GTZ\"F2$!+&QL\"zOF27$$\"+1K#31\"F2$!+CGF%H %F27$$\"+VB)R#eFdr$!+CZt@XF27$$\"+sAn>5Fdr$!+v!3oL%F27$$!+jcxKKFdr$!++ O\\8QF27$$!+SN&ez'Fdr$!+sCK?IF27$$!+[W\"[5\"F2$!+cSH)H*Fdr7$$!+n*z'z5F 2$\"+(e![(4\"F27$$!+>&)Rt$*Fdr$\"+FF3==F27$$!+Z7nZtFdr$\"+U\"Q\"QBF27$ $!+7H?aXFdr$\"+A%e\\l#F27$$!+*oU%z:Fdr$\"+8p#pm#F27$$\"+s_Im'*F^^l$\"+ K7PQCF27$$\"+WV5*=$Fdr$\"+K\\\"4-#F27$$\"+.MK>]Fdr$\"+Q&QSU\"F27$$\"+x AomhFdr$\"+SA\"GS(Fdr7$$\"+nJ_KjFdr$!+#RSGU&Fdr7$$\"+G?^LSFdr$!+([f8Y \"F2-%&COLORG6&%$RGBG$\"\"&!\"\"F+F(-%*THICKNESSG6#\"\"#-%+AXESLABELSG 6$%)y~=~y(x)G%*u~=~y'(x)G-%%VIEWG6$%(DEFAULTGF][m" 1 2 0 1 10 2 2 6 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 88 "Qualitatively, the soluti on in this example is similar to that in the previous example. " }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 9 "Example 7" }{TEXT 281 108 " .. simultaneous construction of numerical procedures for both th e solution and its derivative - phase curve" }}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 1 ";" }}}{PARA 0 "" 0 "" {TEXT -1 34 "Consider the init ial value problem" }}{PARA 257 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "d^2*y/(d*x^2)+x;" "6#,&*(%\"dG\"\"#%\"yG\"\"\"*&F%F(*$%\"xGF&F(!\"\"F (F+F(" }{TEXT -1 1 " " }{XPPEDIT 18 0 "dy/dx+y = 0;" "6#/,&*&%#dyG\"\" \"%#dxG!\"\"F'%\"yGF'\"\"!" }{TEXT -1 3 ", " }{XPPEDIT 18 0 "y(0) = 0 " "6#/-%\"yG6#\"\"!F'" }{TEXT -1 3 ", " }{XPPEDIT 18 0 "`y '`(0) = 1; " "6#/-%$y~'G6#\"\"!\"\"\"" }{TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 59 "First we find an analytical solution and set up a function " } {TEXT 272 1 "g" }{TEXT -1 17 " to evaluate it. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 114 "de := diff( y(x),x$2)+x*diff(y(x),x)+y(x)=0;\nic := y(0)=0,D(y)(0)=1;\ndsolve(\{de ,ic\},y(x));\ng := unapply(rhs(%),x):\n" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-%%diffG6$-%\"yG6#%\"xG-%\"$G6$F-\"\"#\"\"\"*&F-F2-F(6$ F*F-F2F2F*F2\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#icG6$/-%\"yG6# \"\"!F*/--%\"DG6#F(F)\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/-%\"yG 6#%\"xG*,^##!\"\"\"\"#\"\"\"%#PiG#F-F,F,F/-%$erfG6#*(^#F/F-F,F/F'F-F-- %$expG6#,$*&F,F+F'F,F-F+" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT -1 18 "With the option ''" }{TEXT 272 21 "output=procedur e_pair" }{TEXT -1 3 "'' " }{TEXT 0 9 "desolveK2" }{TEXT -1 85 " constr ucts numerical procedures for the solution and its derivative simultan eously. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 225 "de := diff(y(x),x$2)+x*diff(y(x),x)+y(x)=0;\nic := y (0)=0,D(y)(0)=1;\n(gn,dgn) := desolveK2(\{de,ic\},x=0..10,method=rk78, output=procedure_pair);\nplot([g(x),'gn'(x)],x=0..10,color=[red,green] ,thickness=[1,2],labels=[`x`,`y(x)`]);" }{TEXT -1 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#deG/,(-%%diffG6$-%\"yG6#%\"xG-%\"$G6$F-\"\"#\" \"\"*&F-F2-F(6$F*F-F2F2F*F2\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% #icG6$/-%\"yG6#\"\"!F*/--%\"DG6#F(F)\"\"\"" }}{PARA 13 "" 1 "" {GLPLOT2D 632 274 274 {PLOTDATA 2 "6&-%'CURVESG6%7_o7$$\"\"!F)F(7$$\"+ S&)G\\a!#6$\"+**y*QW&F-7$$\"+3x&)*3\"!#5$\"+oGb&3\"F37$$\"+ilyM;F3$\"+ M2I?;F37$$\"+;arz@F3$\"+T1_X@F37$$\"+)4bQl#F3$\"+I2U#f#F37$$\"+!y%*z7$ F3$\"+Ob%z-$F37$$\"+iW8-OF3$\"+RoI]MF37$$\"+XTFwSF3$\"+P2$y&QF37$$\"+3 Q\\4YF3$\"+K#*['H%F37$$\"+qMrU^F3$\"+'\\TCr%F37$$\"+IJ$fn&F3$\"+cz$R5& F37$$\"+\"z_\"4iF3$\"+c<[paF37$$\"+l6m#G(F3$\"+34'>7'F37$$\"+S&phN)F3$ \"+loudmF37$$\"+:ddC%*F3$\"+\"*)GF2(F37$$\"+*=)H\\5!\"*$\"++#39P(F37$$ \"+=JN[6Fdp$\"+L](*[vF37$$\"+[!3uC\"Fdp$\"+>3iPwF37$$\"+e%\\IF\"Fdp$\" +`]1ZwF37$$\"+p3p)H\"Fdp$\"+y,E^wF37$$\"+!GKVK\"Fdp$\"+#*4P]wF37$$\"+! pt*\\8Fdp$\"+lncWwF37$$\"+5lD,9Fdp$\"+m!4*=wF37$$\"+J$RDX\"Fdp$\"+a%3d d(F37$$\"+kGhe:Fdp$\"+\"GppV(F37$$\"+)R'ok;Fdp$\"+mvVUsF37$$\"+1J:w=Fd p$\"+x))3QnF37$$\"+3En$4#Fdp$\"+Ag0NhF37$$\"+/RE&G#Fdp$\"+oU;$f&F37$$ \"+D.&4]#Fdp$\"+vAO;]F37$$\"+vB_#F37$$\"+.T1&*\\Fdp$\"+H?u%4#F37$$\" +(RQb@&Fdp$\"+Ubj(*>F37$$\"+=>Y2aFdp$\"+b(\\0#>F37$$\"+yXu9cFdp$\"+>#G S%=F37$$\"+\\y))GeFdp$\"+dPRr7'F37$Fho$\"+qou dmF37$F]p$\"+%*)GF2(F37$Fbp$\"+2#39P(F37$Fhp$\"+N](*[vF37$F]q$\"+D3iPw F37$Fbq$\"+j]1ZwF37$Fgq$\"+&=g7l(F37$F\\r$\"+(*4P]wF37$Far$\"+oncWwF37 $Ffr$\"+r!4*=wF37$F[s$\"+d%3dd(F37$F`s$\"+*GppV(F37$Fes$\"+xvVUsF37$Fj s$\"+))))3QnF37$F_t$\"+Hg0NhF37$Fdt$\"+yU;$f&F37$Fit$\"+%Hij,&F37$F^u$ \"+$[+*)\\%F37$Fcu$\"+G/4oSF37$Fhu$\"+#R5Mt$F37$F]v$\"+%[zzR$F37$Fbv$ \"+UZ#*eJF37$Fgv$\"+#o,J#HF37$F\\w$\"+nb)[u#F37$Faw$\"+dO`vDF37$Ffw$\" +\\4qMCF37$F[x$\"+&>#)[I#F37$F`x$\"+IyL)>#F37$Fex$\"+[?u%4#F37$Fjx$\"+ ibj(*>F37$F_y$\"+y(\\0#>F37$Fdy$\"+M#GS%=F37$Fiy$\"+(y$Rr " 0 "" {MPLTEXT 1 0 90 "plot([D(g)(x),'dgn '(x)],x=0..10,color=[brown,coral],thickness=[1,2],labels=[`x`,`y'(x)`] );" }}{PARA 13 "" 1 "" {GLPLOT2D 611 292 292 {PLOTDATA 2 "6&-%'CURVESG 6%7ao7$$\"\"!F)$\"\"\"F)7$$\"+qUkCF!#6$\"+]\"yD***!#57$$\"+S&)G\\aF/$ \"+IYLq**F27$$\"+5G$R<)F/$\"+CaLL**F27$$\"+3x&)*3\"F2$\"+%=!p\"))*F27$ $\"+ilyM;F2$\"+8a6N(*F27$$\"+;arz@F2$\"+evLK&*F27$$\"+!y%*z7$F2$\"+<-' G0*F27$$\"+XTFwSF2$\"+JCWF%)F27$$\"+qMrU^F2$\"+kj_wvF27$$\"+\"z_\"4iF2 $\"+5_\"Rg'F27$$\"+l6m#G(F2$\"+.LeTbF27$$\"+S&phN)F2$\"+WQnOWF27$$\"+: ddC%*F2$\"+1JDMLF27$$\"+*=)H\\5!\"*$\"+FZ>lAF27$$\"+=JN[6F\\p$\"+$)46J 8F27$$\"+[!3uC\"F\\p$\"*B.xs%F27$$\"+!pt*\\8F\\p$!),k*>$F\\p7$$\"+J$RD X\"F\\p$!*\\9S+\"F\\p7$$\"+kGhe:F\\p$!**fN\"f\"F\\p7$$\"+)R'ok;F\\p$!* I(Qc?F\\p7$$\"+_(>/x\"F\\p$!*r4IS#F\\p7$$\"+1J:w=F\\p$!*Q'oTEF\\p7$$\" +#)H`I>F\\p$!*BDhs#F\\p7$$\"+dG\"\\)>F\\p$!*/goy#F\\p7$$\"+KFHR?F\\p$! *F\\p7$$\"+(*ev:JF\\p $!*Q&RK;F\\p7$$\"+347TLF\\p$!*FgIN\"F\\p7$$\"+LY.KNF\\p$!*_Ju:\"F\\p7$ $\"+\"o7Tv$F\\p$!)/`O(*F\\p7$$\"+$Q*o]RF\\p$!)E!>W)F\\p7$$\"+\"=lj;%F \\p$!)o81tF\\p7$$\"+V&RY2aF\\p$!)m*H&QF\\p7$$\"+yXu9cF\\p$!)WZPNF\\p7$ $\"+\\y))GeF\\p$!)bb_KF\\p7$$\"+i_QQgF\\p$!)WJ2IF\\p7$$\"+!y%3TiF\\p$! )A_'z#F\\p7$$\"+O![hY'F\\p$!)0J)e#F\\p7$$\"+#Qx$omF\\p$!)&[5U#F\\p7$$ \"+u.I%)oF\\p$!)uCgAF\\p7$$\"+(pe*zqF\\p$!)!Q$G@F\\p7$$\"+C\\'QH(F\\p$ !)RB(*>F\\p7$$\"+8S8&\\(F\\p$!)H([)=F\\p7$$\"+0#=bq(F\\p$!)ZZxF6F\\p7$$\"+<5s#y*F\\p$!)d^z5F \\p7$$\"#5F)$!)IhJ5F\\p-%'COLOURG6&%$RGBG$\")#)eqk!\")$\"))eqk\"FcalFd al-%*THICKNESSG6#F+-F$6%7aoF'F,F3F8F=FBFGFL7$FR$\"+HCWF%)F27$FW$\"+jj_ wvF27$Ffn$\"+3_\"Rg'F27$F[o$\"++LeTbF27$F`o$\"+SQnOWF27$Feo$\"+.JDMLF2 7$Fjo$\"+=Z>lAF27$F`p$\"+\")46J8F27$Fep$\"+bJqFZF/7$Fjp$!+$3S'*>$F/7$F _q$!+%\\9S+\"F27$Fdq$!+.gN\"f\"F27$Fiq$!+BtQc?F27$F^r$!+8(4IS#F27$Fcr$ !+&R'oTEF27$Fhr$!+Z_7EFF27$F]s$!+c+'oy#F27$Fbs$!+*=td#GF27$Fgs$!+c()zW GF27$F\\t$!+\"QPm%GF27$Fat$!+5A*e$GF27$Fft$!+!zsQ\"GF27$F[u$!+Lk&=y#F2 7$F`u$!+xj\\zEF27$Feu$!+3HnXDF27$Fju$!+EF'eA#F27$F_v$!+Jp;/>F27$Fdv$!+ WaRK;F27$Fiv$!++.1`8F27$F^w$!+!fJu:\"F27$Fcw$!+R4`O(*F/7$Fhw$!+hE!>W)F /7$F]x$!+F/7$F]]l$!+Bf([)=F/7 $Fb]l$!+(*oZxF6F/7$Fd`l$!+(\\>&z5F/7$Fi`l$!+\\ch J5F/-F^al6&F`al$\"*++++\"Fcal$\")AR!)\\FcalF(-Fgal6#\"\"#-%+AXESLABELS G6$%\"xG%&y'(x)G-%%VIEWG6$;F(Fi`l%(DEFAULTG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 32 "We can also plot the a ssociated " }{TEXT 267 11 "phase curve" }{TEXT -1 4 " or " }{TEXT 267 10 "trajectory" }{TEXT -1 32 ", that is, the parametric curve:" }} {PARA 257 "" 0 "" {TEXT -1 1 " " }{XPPEDIT 18 0 "PIECEWISE([y = y(x), \+ ``],[u = `y '`(x), ``]);" "6#-%*PIECEWISEG6$7$/%\"yG-F(6#%\"xG%!G7$/% \"uG-%$y~'G6#F+F," }{TEXT -1 3 ". " }}{PARA 257 "" 0 "" {TEXT -1 1 " \+ " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 135 "plot(['gn'(x),'dgn'(x), x=0..10],color=COLOR(RGB,.5,0,1),thickness=2,\n \+ labels=[`y = y(x)`,`u = y'(x)`]);" }{TEXT -1 0 "" }}{PARA 13 "" 1 "" {GLPLOT2D 368 352 352 {PLOTDATA 2 "6'-%'CURVESG6#7ao7$$\"\" !F)$\"\"\"F)7$$\"+,z*QW&!#6$\"+IYLq**!#57$$\"+oGb&3\"F2$\"+%=!p\"))*F2 7$$\"+O2I?;F2$\"+8a6N(*F27$$\"+V1_X@F2$\"+evLK&*F27$$\"+K2U#f#F2$\"+. \"4?J*F27$$\"+Ob%z-$F2$\"+<-'G0*F27$$\"+SoI]MF2$\"+$3`rv)F27$$\"+U2$y& QF2$\"+HCWF%)F27$$\"+N#*['H%F2$\"+Zf`>!)F27$$\"+*\\TCr%F2$\"+jj_wvF27$ $\"+ez$R5&F2$\"+X*QI5(F27$$\"+e<[paF2$\"+3_\"Rg'F27$$\"+l\"))*4eF2$\"+ Hgj!3'F27$$\"+94'>7'F2$\"++LeTbF27$$\"+;

*\\F27$$\"+qoudm F2$\"+SQnOWF27$$\"+!)3(*zoF2$\"+?&\\M)QF27$$\"+%*)GF2(F2$\"+.JDMLF27$$ \"+;YNOsF2$\"+1XZ$z#F27$$\"+2#39P(F2$\"+=Z>lAF27$$\"+N](*[vF2$\"+\")46 J8F27$$\"+D3iPwF2$\"+bJqFZF/7$$\"+oncWwF2$!+$3S'*>$F/7$$\"+d%3dd(F2$!+ %\\9S+\"F27$$\"+*GppV(F2$!+.gN\"f\"F27$$\"+xvVUsF2$!+BtQc?F27$$\"+N()o 0qF2$!+8(4IS#F27$$\"+))))3QnF2$!+&R'oTEF27$$\"+6f-UkF2$!+c+'oy#F27$$\" +Hg0NhF2$!+c()zWGF27$$\"+yU;$f&F2$!+Lk&=y#F27$$\"+%Hij,&F2$!+3HnXDF27$ $\"+$[+*)\\%F2$!+EF'eA#F27$$\"+G/4oSF2$!+Jp;/>F27$$\"+#R5Mt$F2$!+WaRK; F27$$\"+%[zzR$F2$!++.1`8F27$$\"+UZ#*eJF2$!+!fJu:\"F27$$\"+#o,J#HF2$!+R 4`O(*F/7$$\"+nb)[u#F2$!+hE!>W)F/7$$\"+dO`vDF2$!+#)[I#F2$!+l+]-dF/7$$\"+IyL)>#F2$!+g1GU^F/7$$\"+[?u%4# F2$!+*43Pj%F/7$$\"+ibj(*>F2$!+b(\\u=%F/7$$\"+y(\\0#>F2$!+\")y*H&QF/7$$ \"+M#GS%=F2$!+.`ZPNF/7$$\"+(y$RrF/7$$\"+apMf8F2$!+Bf([)=F/7$$\"+N)Q3K\"F2$!+(*oZxF6F/7$$\"+ZaCL5F2$!+(\\>&z5F/7$$\"+chJ55F2$!+\\chJ 5F/-%&COLORG6&%$RGBG$\"\"&!\"\"F(F*-%*THICKNESSG6#\"\"#-%+AXESLABELSG6 $%)y~=~y(x)G%*u~=~y'(x)G-%%VIEWG6$%(DEFAULTGF_bl" 1 2 0 1 10 2 2 6 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}} {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 57 "Find an analytical solution for the i nitial value problem" }}{PARA 257 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "d^2*y/(d*x^2)+20;" "6#,&*(%\"dG\"\"#%\"yG\"\"\"*&F%F(*$%\"xGF&F( !\"\"F(\"#?F(" }{TEXT -1 1 " " }{XPPEDIT 18 0 "dy/dx+125*y = 9*sin(5*x );" "6#/,&*&%#dyG\"\"\"%#dxG!\"\"F'*&\"$D\"F'%\"yGF'F'*&\"\"*F'-%$sinG 6#*&\"\"&F'%\"xGF'F'" }{TEXT -1 3 ", " }{XPPEDIT 18 0 "y(0) = 0" "6#/ -%\"yG6#\"\"!F'" }{TEXT -1 3 ", " }{XPPEDIT 18 0 "`y '`(0) = 0;" "6#/ -%$y~'G6#\"\"!F'" }{TEXT -1 2 ", " }}{PARA 0 "" 0 "" {TEXT -1 42 "and \+ plot its graph over the interval from " }{XPPEDIT 18 0 "x = 0" "6#/%\" xG\"\"!" }{TEXT -1 4 " to " }{XPPEDIT 18 0 "x = 2" "6#/%\"xG\"\"#" } {TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 56 "Also find a continuous \+ numerical over the interval from " }{XPPEDIT 18 0 "x = 0" "6#/%\"xG\" \"!" }{TEXT -1 4 " to " }{XPPEDIT 18 0 "x = 2" "6#/%\"xG\"\"#" }{TEXT -1 51 " by a Runge-Kutta method, and compare the value of " }{TEXT 274 1 "y" }{TEXT -1 73 " given by this solution with that given by the analytical solution, when " }{XPPEDIT 18 0 "x = pi/2" "6#/%\"xG*&%#pi G\"\"\"\"\"#!\"\"" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 39 "____ ___________________________________" }}{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 39 "_______________________________ ________" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 2 "Q2" }}{PARA 0 "" 0 "" {TEXT -1 94 "Use a R unge-Kutta method to find a continuous numerical solution for the init ial value problem" }}{PARA 257 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "d^2*y/(d*x^2)+x^2;" "6#,&*(%\"dG\"\"#%\"yG\"\"\"*&F%F(*$%\"xGF&F(!\" \"F(*$F+F&F(" }{TEXT -1 1 " " }{XPPEDIT 18 0 "dy/dx+x*y = 0;" "6#/,&*& %#dyG\"\"\"%#dxG!\"\"F'*&%\"xGF'%\"yGF'F'\"\"!" }{TEXT -1 3 ", " } {XPPEDIT 18 0 "y(0) = 0" "6#/-%\"yG6#\"\"!F'" }{TEXT -1 3 ", " } {XPPEDIT 18 0 "`y '`(0) = 1;" "6#/-%$y~'G6#\"\"!\"\"\"" }{TEXT -1 2 ", " }}{PARA 0 "" 0 "" {TEXT -1 23 "over the interval from " }{XPPEDIT 18 0 "x = 0" "6#/%\"xG\"\"!" }{TEXT -1 4 " to " }{XPPEDIT 18 0 "x = 5 " "6#/%\"xG\"\"&" }{TEXT -1 101 ", and plot its graph. \nAlso plot the graph of the derivative of the solution and the phase portrait. " }} {PARA 0 "" 0 "" {TEXT -1 99 "Find an analytical solution, and compare \+ the values of the numerical and analytical solutions when " }{XPPEDIT 18 0 "x = pi^2/2" "6#/%\"xG*&%#piG\"\"#F'!\"\"" }{TEXT -1 1 "." }} {PARA 0 "" 0 "" {TEXT -1 39 "_______________________________________" }}{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 39 "_______________________________________" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 2 "Q3" }} {PARA 0 "" 0 "" {TEXT -1 105 "Use a Runge-Kutta method to find a conti nuous numerical solution for the non-linear initial value problem" }} {PARA 257 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "d^2*y/(d*x^2)+x^2;" "6#,&*(%\"dG\"\"#%\"yG\"\"\"*&F%F(*$%\"xGF&F(!\"\"F(*$F+F&F(" }{TEXT -1 1 " " }{XPPEDIT 18 0 "dy/dx+x*y^2 = 0;" "6#/,&*&%#dyG\"\"\"%#dxG!\" \"F'*&%\"xGF'*$%\"yG\"\"#F'F'\"\"!" }{TEXT -1 3 ", " }{XPPEDIT 18 0 " y(0) = 0" "6#/-%\"yG6#\"\"!F'" }{TEXT -1 3 ", " }{XPPEDIT 18 0 "`y '` (0) = 1;" "6#/-%$y~'G6#\"\"!\"\"\"" }{TEXT -1 2 ", " }}{PARA 0 "" 0 " " {TEXT -1 24 " over the interval from " }{XPPEDIT 18 0 "x = 0" "6#/% \"xG\"\"!" }{TEXT -1 4 " to " }{XPPEDIT 18 0 "x = 5" "6#/%\"xG\"\"&" } {TEXT -1 21 ", and plot its graph." }}{PARA 0 "" 0 "" {TEXT -1 78 "Als o plot the graph of the derivative of the solution and the phase portr ait. " }}{PARA 0 "" 0 "" {TEXT -1 39 "________________________________ _______" }}{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 39 "_______________________________________" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 2 "Q4" }}{PARA 0 "" 0 "" {TEXT -1 105 "Use a Runge-Kutta meth od to find a continuous numerical solution for the non-linear initial \+ value problem" }}{PARA 257 "" 0 "" {TEXT -1 2 " " }{XPPEDIT 18 0 "d^2 *y/(d*x^2)+dy/dx+8*y-y^2 = 0;" "6#/,**(%\"dG\"\"#%\"yG\"\"\"*&F&F)*$% \"xGF'F)!\"\"F)*&%#dyGF)%#dxGF-F)*&\"\")F)F(F)F)*$F(F'F-\"\"!" }{TEXT -1 3 ", " }{XPPEDIT 18 0 "y(0) = 0" "6#/-%\"yG6#\"\"!F'" }{TEXT -1 3 ", " }{XPPEDIT 18 0 "`y '`(0) = 1;" "6#/-%$y~'G6#\"\"!\"\"\"" }{TEXT -1 2 ", " }}{PARA 0 "" 0 "" {TEXT -1 24 " over the interval from " } {XPPEDIT 18 0 "x = 0" "6#/%\"xG\"\"!" }{TEXT -1 4 " to " }{XPPEDIT 18 0 "x = 5" "6#/%\"xG\"\"&" }{TEXT -1 21 ", and plot its graph." }} {PARA 0 "" 0 "" {TEXT -1 78 "Also plot the graph of the derivative of \+ the solution and the phase portrait. " }}{PARA 0 "" 0 "" {TEXT -1 39 " _______________________________________" }}{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 39 "____________________ ___________________" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}}}{MARK "4 0 0" 0 } {VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }