diff options
Diffstat (limited to 'src/interp/nag-d02.boot.pamphlet')
-rw-r--r-- | src/interp/nag-d02.boot.pamphlet | 2170 |
1 files changed, 0 insertions, 2170 deletions
diff --git a/src/interp/nag-d02.boot.pamphlet b/src/interp/nag-d02.boot.pamphlet deleted file mode 100644 index fb0c00a4..00000000 --- a/src/interp/nag-d02.boot.pamphlet +++ /dev/null @@ -1,2170 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp nag-d02.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= --- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. --- All rights reserved. --- --- Redistribution and use in source and binary forms, with or without --- modification, are permitted provided that the following conditions are --- met: --- --- - Redistributions of source code must retain the above copyright --- notice, this list of conditions and the following disclaimer. --- --- - Redistributions in binary form must reproduce the above copyright --- notice, this list of conditions and the following disclaimer in --- the documentation and/or other materials provided with the --- distribution. --- --- - Neither the name of The Numerical ALgorithms Group Ltd. nor the --- names of its contributors may be used to endorse or promote products --- derived from this software without specific prior written permission. --- --- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS --- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED --- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER --- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, --- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, --- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR --- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF --- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING --- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS --- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -@ -<<*>>= -<<license>> - -)package "BOOT" - -d02bbf() == - htInitPage('"D02BBF - ODEs, IVP, Runge-Kutta-Merson method, over a range, intermediate output",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXd02bbf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|d02bbf| '|NagOrdinaryDifferentialEquationsPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "\newline ") - (text . "D02BBF integrates a system of {\it n} ordinary differential ") - (text . "equations, {\htbitmap{yi}}' = {\htbitmap{fi}}(x,y), for ") - (text . "{\it i} = 1,2,...,{\it n}, over a range with given initial ") - (text . "conditions using a Runge-Kutta-Merson method; the solution ") - (text . "may be output at specified points.") - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Initial value of {\it x}:") - (text . "\newline\tab{2} ") - (bcStrings (5 "0.0" x F)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "End of integration range {\it xend}:") - (text . "\newline\tab{2} ") - (bcStrings (5 "8.0" xend F)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Number of differential equations {\it n}:") - (text . "\newline\tab{2} ") - (bcStrings (5 3 n PI)) - (text . "\blankline ") - (text . "\newline \menuitemstyle{}\tab{2} ") - (text . "\newline Tolerance required {\it tol}: ") - (text . "\newline\tab{2} ") - (bcStrings (10 "0.0001" tol F)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Error control indicator {\it irelab}:") - (radioButtons irelab - ("" " 0, mixed" mix) - ("" " 1, absolute" abs) - ("" " 2, relative" rel)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'd02bbfSolve) - htShowPage() - -d02bbfSolve htPage == - x := htpLabelInputString(htPage,'x) - xend := htpLabelInputString(htPage,'xend) - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - tol := htpLabelInputString(htPage,'tol) - control := htpButtonValue(htPage,'irelab) - irelab := - control = 'mix => '0 - control = 'abs => '1 - '2 - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'minusOne => '-1 - '1 - n = '3 => d02bbfDefaultSolve(htPage,x,xend,tol,irelab,ifail) - funcList := - "append"/[fa(i) for i in 1..n] where fa(i) == - prefix := ('"\newline {\em Function ") - prefix := STRCONC(prefix,STRINGIMAGE i,'":} \space{1}") - funct := STRCONC ('"Y[",STRINGIMAGE i ,"]") - nam := INTERN STRCONC ('"n",STRINGIMAGE i) - [['text,:prefix],['bcStrings,[42, funct, nam, 'EM]]] - middle := ('"\blankline \menuitemstyle{} \tab{2} Enter the initial ") - middle := STRCONC(middle,'"values of \htbitmap{yi}: \newline \tab{2}") - yList := - "append"/[fb(i) for i in 1..n] where fb(i) == - ynam := INTERN STRCONC ('"u",STRINGIMAGE i) - [['bcStrings,[6, 0, ynam, 'F]]] - yList := [['text,:middle],:yList] - mid:= ('"\blankline \menuitemstyle{} \tab{2} Intermediate values of {\it x}") - mid := STRCONC(mid,'" at which \htbitmap{yi} is required: \newline \tab{2}") - vList := [['bcStrings,[30, "0", 'out, 'EM]]] - vList := [['text,:mid],:vList] - equationPart := [ - '(domainConditions - (isDomain EM $EmptyMode) - (isDomain S (String)) - (isDomain F (Float)) - (isDomain I (Integer))), - :funcList,:yList,:vList] - page := htInitPage('"D02BBF - ODEs, IVP, Runge-Kutta-Merson method, over a range, intermediate output",nil) - htSay '"\menuitemstyle{}\tab{2} " - htSay '"Enter the functions (i.e. the derivatives) below " - htSay '"as functions of Y[1]...Y[n]: " - htSay '"\newline " - htMakePage equationPart - htMakeDoneButton('"Continue",'d02bbfGen) - htpSetProperty(page,'x,x) - htpSetProperty(page,'xend,xend) - htpSetProperty(page,'n,n) - htpSetProperty(page,'tol,tol) - htpSetProperty(page,'irelab,irelab) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -d02bbfDefaultSolve(htPage,x,xend,tol,irelab,ifail) == - n := '3 - page := htInitPage('"D02BBF - ODEs, IVP, Runge-Kutta-Merson method, over a range, intermediate output",nil) - htMakePage '( - (domainConditions - (isDomain EM $EmptyMode) - (isDomain F (Float)) - (isDomain I (Integer))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the functions (i.e. the derivatives) below ") - (text . "as functions of Y[1]...Y[n]: ") - (text . "\newline ") - (text . "\newline {\em Function 1:} \space{1}") - (bcStrings (44 "tan(Y[3])" f1 EM)) - (text . "\newline {\em Function 2:} \space{1}") - (bcStrings (44 "-0.032*tan(Y[3])/Y[2] -0.02*Y[2]/cos(Y[3])" f2 EM)) - (text . "\newline {\em Function 3:} \space{1}") - (bcStrings (44 "-0.032/(Y[2]**2)" f3 EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the initial values of \htbitmap{yi}:") - (text . "\newline \tab{2}") - (bcStrings (8 "0.0" y1 EM)) - (bcStrings (8 "0.5" y2 EM)) - (bcStrings (8 "\%pi*0.2" y3 EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Intermediate values of {\it x} at which \htbitmap{yi} is required:") - (text . "\newline \tab{2}") - (bcStrings (30 "1,2,3,4,5,6,7,8" out EM))) - htpSetProperty(page,'x,x) - htpSetProperty(page,'xend,xend) - htpSetProperty(page,'n,n) - htpSetProperty(page,'tol,tol) - htpSetProperty(page,'irelab,irelab) - htpSetProperty(page,'ifail,ifail) - htMakeDoneButton('"Continue",'d02bbfGen) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -d02bbfGen htPage == - x := htpProperty(htPage, 'x) - xend := htpProperty(htPage, 'xend) - n := htpProperty(htPage, 'n) - tol := htpProperty(htPage, 'tol) - irelab := htpProperty(htPage, 'irelab) - ifail := htpProperty(htPage, 'ifail) - alist := htpInputAreaAlist htPage - y := alist - outp := ((first y).1) - oList := [outp,:oList] - y := rest y - ostring := bcwords2liststring oList - -- This is distictly horrible! OUTP is a comma-seperated string so we - -- count up the commas to see how many elements it has. We return this - -- quantity plus 1 since the ASP OUTPUT is always called at least once. - numberOfPoints := - ZEROP LENGTH(outp) => 1 - 2+COUNT(CHARACTER(44),outp) - for i in 1..n repeat - ytemp := STRCONC((first y).1," ") - yList := [ytemp,:yList] - y := rest y - ystring := bcwords2liststring yList - while y repeat - f := STRCONC((first y).1," ") - fList := [f,:fList] - y := rest y - fstring := bcwords2liststring fList - prefix := STRCONC("d02bbf(", xend,", ", STRINGIMAGE numberOfPoints, ", ",STRINGIMAGE n,", ",STRINGIMAGE irelab) - prefix := STRCONC(prefix,", ",x,", [", ystring,"],",tol) - prefix := STRCONC(prefix,", ",STRINGIMAGE ifail,",(") - end := STRCONC(fstring,"::Vector Expression Float)::ASP7('FCN),(",ostring) - end := STRCONC(end,"::Vector MachineFloat)::ASP8('OUTPUT))") - linkGen STRCONC(prefix,end) - -d02bhf() == - htInitPage('"D02BHF - ODEs, IVP, Runge-Kutta-Merson method, until function of solution is zero",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXd02bhf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|d02bhf| '|NagOrdinaryDifferentialEquationsPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "\newline ") - (text . "D02BHF integrates a system of {\it n} ordinary differential ") - (text . "equations, {\htbitmap{yi}}' = {\htbitmap{fi}}(x,y), for ") - (text . "{\it i} = 1,2,...,{\it n}, over a range with given initial ") - (text . "conditions using a Runge-Kutta-Merson method until a specified ") - (text . "function {\em g(x,y)} of the solution is zero. ") - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Initial value of {\it x}:") - (text . "\newline\tab{2} ") - (bcStrings (5 "0.0" x F)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "End of integration range {\it xend}:") - (text . "\newline\tab{2} ") - (bcStrings (5 "10.0" xend F)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Number of differential equations {\it n}:") - (text . "\newline\tab{2} ") - (bcStrings (5 3 n PI)) - (text . "\blankline ") - (text . "\newline \menuitemstyle{}\tab{2} ") - (text . "\newline Tolerance required {\it tol}: ") - (text . "\newline\tab{2} ") - (bcStrings (10 "0.0001" tol F)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Error control indicator {\it irelab}:") - (radioButtons irelab - ("" " 0, mixed" mix) - ("" " 1, absolute" abs) - ("" " 2, relative" rel)) - (text . "\blankline ") - (text . "\newline \menuitemstyle{}\tab{2} ") - (text . "\newline Upper bound on size of the interval {\it hmax}: ") - (text . "\newline\tab{2} ") - (bcStrings (10 "0.0" hmax F)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'd02bhfSolve) - htShowPage() - -d02bhfSolve htPage == - x := htpLabelInputString(htPage,'x) - xend := htpLabelInputString(htPage,'xend) - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - tol := htpLabelInputString(htPage,'tol) - control := htpButtonValue(htPage,'irelab) - irelab := - control = 'mix => '0 - control = 'abs => '1 - '2 - hmax := htpLabelInputString(htPage,'hmax) - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => '1 - '-1 - n = '3 => d02bhfDefaultSolve(htPage,x,xend,tol,irelab,hmax,ifail) - funcList := - "append"/[fa(i) for i in 1..n] where fa(i) == - prefix := ('"\newline {\em Function ") - prefix := STRCONC(prefix,STRINGIMAGE i,'":} \space{1}") - funct := STRCONC ('"Y[",STRINGIMAGE i ,"]") - nam := INTERN STRCONC ('"n",STRINGIMAGE i) - [['text,:prefix],['bcStrings,[42, funct, nam, 'EM]]] - middle := ('"\blankline \menuitemstyle{} \tab{2} Enter the initial ") - middle := STRCONC(middle,'"values of \htbitmap{yi}: \newline ") - yList := - "append"/[fb(i) for i in 1..n] where fb(i) == - ynam := INTERN STRCONC ('"u",STRINGIMAGE i) - [['bcStrings,[6, 0, ynam, 'F]]] - yList := [['text,:middle],:yList] - mid:= ('"\blankline \menuitemstyle{} \tab{2} Enter the function below ") - mid := STRCONC(mid,'"{\em g(x,y)}: \newline ") - vList := [['bcStrings,[30, '"Y[1]", 'g, 'EM]]] - vList := [['text,:mid],:vList] - equationPart := [ - '(domainConditions - (isDomain EM $EmptyMode) - (isDomain S (String)) - (isDomain F (Float)) - (isDomain I (Integer))), - :funcList,:yList,:vList] - page := htInitPage('"D02BHF - ODEs, IVP, Runge-Kutta-Merson method, until function of solution is zero",nil) - htSay '"\menuitemstyle{}\tab{2} " - htSay '"Enter the functions (i.e. the derivatives) below \htbitmap{fi} " - htSay '"as functions of Y[1]...Y[n]: " - htSay '"\newline " - htMakePage equationPart - htMakeDoneButton('"Continue",'d02bhfGen) - htpSetProperty(page,'x,x) - htpSetProperty(page,'xend,xend) - htpSetProperty(page,'n,n) - htpSetProperty(page,'tol,tol) - htpSetProperty(page,'irelab,irelab) - htpSetProperty(page,'hmax,hmax) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -d02bhfDefaultSolve(htPage,x,xend,tol,irelab,hmax,ifail) == - n := '3 - page := htInitPage('"D02BHF - ODEs, IVP, Runge-Kutta-Merson method, until function of solution is zero",nil) - htMakePage '( - (domainConditions - (isDomain EM $EmptyMode) - (isDomain F (Float)) - (isDomain I (Integer))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the functions (i.e. the derivatives) below \htbitmap{fi} ") - (text . "as functions of Y[1]...Y[n]: ") - (text . "\newline {\em Function 1:} \space{1}") - (bcStrings (44 "tan(Y[3])" f1 EM)) - (text . "\newline {\em Function 2:} \space{1}") - (bcStrings (44 "-0.032*tan(Y[3])/Y[2] -0.02*Y[2]/cos(Y[3])" f2 EM)) - (text . "\newline {\em Function 3:} \space{1}") - (bcStrings (44 "-0.032/(Y[2]**2)" f3 EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the initial values of \htbitmap{yi}:") - (text . "\newline ") - (bcStrings (8 "0.5" y1 EM)) - (bcStrings (8 "0.5" y2 EM)) - (bcStrings (8 "\%pi*0.2" y3 EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the function below {\em g(x,y)}: ") - (text . "\newline ") - (bcStrings (30 "Y[1]" g EM))) - htpSetProperty(page,'x,x) - htpSetProperty(page,'xend,xend) - htpSetProperty(page,'n,n) - htpSetProperty(page,'tol,tol) - htpSetProperty(page,'irelab,irelab) - htpSetProperty(page,'hmax,hmax) - htpSetProperty(page,'ifail,ifail) - htMakeDoneButton('"Continue",'d02bhfGen) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -d02bhfGen htPage == - x := htpProperty(htPage, 'x) - xend := htpProperty(htPage, 'xend) - n := htpProperty(htPage, 'n) - tol := htpProperty(htPage, 'tol) - irelab := htpProperty(htPage, 'irelab) - hmax := htpProperty(htPage, 'hmax) - ifail := htpProperty(htPage, 'ifail) - alist := htpInputAreaAlist htPage - y := alist - g := ((first y).1) - y := rest y - for i in 1..n repeat - ytemp := STRCONC((first y).1," ") - yList := [ytemp,:yList] - y := rest y - ystring := bcwords2liststring yList - while y repeat - f := STRCONC((first y).1," ") - fList := [f,:fList] - y := rest y - fstring := bcwords2liststring fList - prefix := STRCONC("d02bhf(", xend,", ",STRINGIMAGE n,", ",STRINGIMAGE irelab) - mid := STRCONC(", ",hmax,", ",x,", [", ystring,"],") - mid := STRCONC(mid,tol,", ",STRINGIMAGE ifail,",(",g) - mid := STRCONC(mid,"::Expression Float)::ASP9('G),(") - end := STRCONC(fstring,"::Vector Expression Float)::ASP7('FCN))") - linkGen STRCONC(prefix,mid,end) - - -d02cjf() == - htInitPage('"D02CJF - ODEs, IVP, Adams method, until function of solution is zero, intermediate output",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXd02cjf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|d02cjf| '|NagOrdinaryDifferentialEquationsPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "\newline ") - (text . "D02CJF integrates a system of {\it n} ordinary differential ") - (text . "equations, {\htbitmap{yi}}' = {\htbitmap{fi}}(x,y), for ") - (text . "{\it i} = 1,2,...,{\it n}, over a range with given initial ") - (text . "conditions using an Adams method until a specified ") - (text . "function {\em g(x,y)} of the solution is zero; the solution may ") - (text . "be output at specified points. \blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Initial value of {\it x}:") - (text . "\newline\tab{2} ") - (bcStrings (5 "0.0" x F)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "End of integration range {\it xend}:") - (text . "\newline\tab{2} ") - (bcStrings (5 "10.0" xend F)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Number of differential equations {\it n}:") - (text . "\newline\tab{2} ") - (bcStrings (5 3 n PI)) - (text . "\blankline ") - (text . "\newline \menuitemstyle{}\tab{2} ") - (text . "\newline Tolerance required {\it tol}: ") - (text . "\newline\tab{2} ") - (bcStrings (10 "0.0001" tol F)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Type of error test used {\it relabs}:") - (radioButtons relabs - ("" " D, default (mixed)" mix) - ("" " A, absolute" abs) - ("" " R, relative" rel)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'd02cjfSolve) - htShowPage() - -d02cjfSolve htPage == - x := htpLabelInputString(htPage,'x) - xend := htpLabelInputString(htPage,'xend) - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - tol := htpLabelInputString(htPage,'tol) - control := htpButtonValue(htPage,'relabs) - relabs := - control = 'mix => '"D" - control = 'abs => '"A" - '"R" - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => '1 - '-1 - n = '3 => d02cjfDefaultSolve(htPage,x,xend,tol,relabs,ifail) - funcList := - "append"/[fa(i) for i in 1..n] where fa(i) == - prefix := ('"\newline {\em Function ") - prefix := STRCONC(prefix,STRINGIMAGE i,'":} \space{1}") - funct := STRCONC ('"Y[",STRINGIMAGE i ,"]") - nam := INTERN STRCONC ('"n",STRINGIMAGE i) - [['text,:prefix],['bcStrings,[42, funct, nam, 'EM]]] - middle := ('"\blankline \menuitemstyle{} \tab{2} Enter the initial ") - middle := STRCONC(middle,'"values of \htbitmap{yi}: \newline ") - yList := - "append"/[fb(i) for i in 1..n] where fb(i) == - ynam := INTERN STRCONC ('"u",STRINGIMAGE i) - [['bcStrings,[6, 0, ynam, 'F]]] - yList := [['text,:middle],:yList] - mid:= ('"\blankline \menuitemstyle{} \tab{2} Intermediate values of {\it x}") - mid := STRCONC(mid,'" at which \htbitmap{yi} is required: \newline ") - vList := [['bcStrings,[30, "2,4", 'out, 'EM]]] - vList := [['text,:mid],:vList] - midd := ('"\blankline \menuitemstyle{} \tab{2} Enter the function below ") - midd := STRCONC(midd,'"{\em g(x,y)}: \newline ") - uList := [['bcStrings,[30, '"Y[1]", 'g, 'EM]]] - uList := [['text,:midd],:uList] - equationPart := [ - '(domainConditions - (isDomain EM $EmptyMode) - (isDomain S (String)) - (isDomain F (Float)) - (isDomain I (Integer))), - :funcList,:yList,:vList,:uList] - page := htInitPage('"D02CJF - ODEs, IVP, Adams method, until function of solution is zero, intermediate output",nil) - htSay '"\menuitemstyle{}\tab{2} " - htSay '"Enter the functions (i.e. the derivatives) below \htbitmap{fi} " - htSay '"as functions of Y[1]...Y[n]: " - htSay '"\newline " - htMakePage equationPart - htMakeDoneButton('"Continue",'d02cjfGen) - htpSetProperty(page,'x,x) - htpSetProperty(page,'xend,xend) - htpSetProperty(page,'n,n) - htpSetProperty(page,'tol,tol) - htpSetProperty(page,'relabs,relabs) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -d02cjfDefaultSolve(htPage,x,xend,tol,relabs,ifail) == - n := '3 - page := htInitPage('"D02CJF - ODEs, IVP, Adams method, until function of solution is zero, intermediate output",nil) - htMakePage '( - (domainConditions - (isDomain EM $EmptyMode) - (isDomain F (Float)) - (isDomain I (Integer))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the functions (i.e. the derivatives) below \htbitmap{fi} ") - (text . "as functions of Y[1]...Y[n]: ") - (text . "\newline {\em Function 1:} \space{1}") - (bcStrings (44 "tan(Y[3])" f1 EM)) - (text . "\newline {\em Function 2:} \space{1}") - (bcStrings (44 "-0.032*tan(Y[3])/Y[2] -0.02*Y[2]/cos(Y[3])" f2 EM)) - (text . "\newline {\em Function 3:} \space{1}") - (bcStrings (44 "-0.032/(Y[2]**2)" f3 EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the initial values of \htbitmap{yi}:") - (text . "\newline ") - (bcStrings (8 "0.5" y1 EM)) - (bcStrings (8 "0.5" y2 EM)) - (bcStrings (8 "\%pi*0.2" y3 EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2} Intermediate") - (text . " values of {\it x} at which \htbitmap{yi} is required:") - (text . "\newline ") - (bcStrings (30 "2,4,6,8" out EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the function below {\em g(x,y)}: ") - (text . "\newline ") - (bcStrings (30 "Y[1]" g EM))) - htpSetProperty(page,'x,x) - htpSetProperty(page,'xend,xend) - htpSetProperty(page,'n,n) - htpSetProperty(page,'tol,tol) - htpSetProperty(page,'relabs,relabs) - htpSetProperty(page,'ifail,ifail) - htMakeDoneButton('"Continue",'d02cjfGen) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -d02cjfGen htPage == - x := htpProperty(htPage, 'x) - xend := htpProperty(htPage, 'xend) - n := htpProperty(htPage, 'n) - tol := htpProperty(htPage, 'tol) - relabs := htpProperty(htPage, 'relabs) - ifail := htpProperty(htPage, 'ifail) - alist := htpInputAreaAlist htPage - y := alist - g := ((first y).1) - y := rest y - outp := ((first y).1) - oList := [outp,:oList] - ostring := bcwords2liststring oList - -- This is distictly horrible! OUTP is a comma-seperated string so we - -- count up the commas to see how many elements it has. We return this - -- quantity plus 1 since the ASP OUTPUT is always called at least once. - numberOfPoints := - ZEROP LENGTH(outp) => 1 - 2+COUNT(CHARACTER(44),outp) - y := rest y - for i in 1..n repeat - ytemp := STRCONC((first y).1," ") - yList := [ytemp,:yList] - y := rest y - ystring := bcwords2liststring yList - while y repeat - f := STRCONC((first y).1," ") - fList := [f,:fList] - y := rest y - fstring := bcwords2liststring fList - prefix := STRCONC("d02cjf(",xend,", ",STRINGIMAGE numberOfPoints ,", ", STRINGIMAGE n,", ",tol,",_"",relabs) - mid := STRCONC("_", ",x ,", [", ystring,"],",STRINGIMAGE ifail) - mid := STRCONC(mid,",(",g,"::Expression Float)::ASP9('G),(",fstring) - end := STRCONC("::Vector Expression Float)::ASP7('FCN),(",ostring) - end := STRCONC(end,"::Vector MachineFloat)::ASP8('OUTPUT))") - linkGen STRCONC(prefix,mid,end) - - - -d02ejf() == - htInitPage('"D02EJF - ODEs, stiff IVP, BDF method, until function of solution is zero, intermediate output",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXd02ejf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|d02ejf| '|NagOrdinaryDifferentialEquationsPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "\newline ") - (text . "D02EJF integrates a system of {\em n} ordinary differential ") - (text . "equations, {\htbitmap{yi}}' = {\htbitmap{fi}}(x,y), for {\it i} ") - (text . "= 1,,2,...,{\it n}, over a range with given initial conditions") - (text . " using backward differentiation formulae until a specified ") - (text . "function {\em g(x,y)} of the solution is zero; the solution may ") - (text . "be output at specified points. \blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Initial value of {\it x}:") - (text . "\newline\tab{2} ") - (bcStrings (5 "0.0" x F)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "End of integration range {\it xend}:") - (text . "\newline\tab{2} ") - (bcStrings (5 "10.0" xend F)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Number of differential equations {\it n}:") - (text . "\newline\tab{2} ") - (bcStrings (5 3 n PI)) - (text . "\blankline ") - (text . "\newline \menuitemstyle{}\tab{2} ") - (text . "\newline Tolerance required {\it tol}: ") - (text . "\newline\tab{2} ") - (bcStrings (10 "0.0001" tol F)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Type of error test used {\it relabs}:") - (radioButtons relabs - ("" " D, default (mixed)" mix) - ("" " A, absolute" abs) - ("" " R, relative" rel)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'd02ejfSolve) - htShowPage() - -d02ejfSolve htPage == - x := htpLabelInputString(htPage,'x) - xend := htpLabelInputString(htPage,'xend) - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - tol := htpLabelInputString(htPage,'tol) - control := htpButtonValue(htPage,'relabs) - relabs := - control = 'mix => '"D" - control = 'abs => '"A" - '"R" - iw := (n + 12) * n + 50 - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => '1 - '-1 - n = '3 => d02ejfDefaultSolve(htPage,x,xend,tol,relabs,iw,ifail) - funcList := - "append"/[fa(i) for i in 1..n] where fa(i) == - prefix := ('"\newline {\em Function ") - prefix := STRCONC(prefix,STRINGIMAGE i,'":} \space{1}") - funct := STRCONC ('"Y[",STRINGIMAGE i ,"]") - nam := INTERN STRCONC ('"n",STRINGIMAGE i) - [['text,:prefix],['bcStrings,[42, funct, nam, 'EM]]] - middle := ('"\blankline \menuitemstyle{} \tab{2} Enter the initial ") - middle := STRCONC(middle,'"values of \htbitmap{yi}: \newline ") - yList := - "append"/[fb(i) for i in 1..n] where fb(i) == - ynam := INTERN STRCONC ('"u",STRINGIMAGE i) - [['bcStrings,[6, 0, ynam, 'F]]] - yList := [['text,:middle],:yList] - mid:= ('"\blankline \menuitemstyle{} \tab{2} Intermediate values of {\it x}") - mid := STRCONC(mid,'" at which \htbitmap{yi} is required: \newline ") - vList := [['bcStrings,[30, "2,4,6,8", 'out, 'EM]]] - vList := [['text,:mid],:vList] - midd := ('"\blankline \menuitemstyle{} \tab{2} Enter the function below ") - midd := STRCONC(midd,'"{\em g(x,y)}: \newline ") - uList := [['bcStrings,[30, '"Y[1]", 'g, 'EM]]] - uList := [['text,:midd],:uList] - equationPart := [ - '(domainConditions - (isDomain EM $EmptyMode) - (isDomain S (String)) - (isDomain F (Float)) - (isDomain I (Integer))), - :funcList,:yList,:vList,:uList] - page := htInitPage('"D02EJF - ODEs, stiff IVP, BDF method, until function of solution is zero, intermediate output",nil) - htSay '"\menuitemstyle{}\tab{2} " - htSay '"Enter the functions (i.e. the derivatives) below \htbitmap{fi} " - htSay '"as functions of Y[1]...Y[n]: " - htSay '"\newline " - htMakePage equationPart - htSay '"\blankline {\em Note:} PEDERV is automatically generated using the vector " - htSay '"of derivatives given above. " - htMakeDoneButton('"Continue",'d02ejfGen) - htpSetProperty(page,'x,x) - htpSetProperty(page,'xend,xend) - htpSetProperty(page,'n,n) - htpSetProperty(page,'tol,tol) - htpSetProperty(page,'relabs,relabs) - htpSetProperty(page,'iw,iw) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -d02ejfDefaultSolve(htPage,x,xend,tol,relabs,iw,ifail) == - n := '3 - page := htInitPage('"D02EJF - ODEs, stiff IVP, BDF method, until function of solution is zero, intermediate output",nil) - htMakePage '( - (domainConditions - (isDomain EM $EmptyMode) - (isDomain F (Float)) - (isDomain I (Integer))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the functions (i.e. the derivatives) below \htbitmap{fi} ") - (text . "as functions of Y[1]...Y[n]: ") - (text . "\newline {\em Function 1:} \space{1}") - (bcStrings (44 "-0.04*Y[1]+1.0E4*Y[2]*Y[3]" f1 EM)) - (text . "\newline {\em Function 2:} \space{1}") - (bcStrings (44 "0.04*Y[1]-1.0E4*Y[2]*Y[3]-3.0E7*Y[2]*Y[2]" f2 EM)) - (text . "\newline {\em Function 3:} \space{1}") - (bcStrings (44 "3.0E7*Y[2]*Y[2]" f3 EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the initial values of \htbitmap{yi}:") - (text . "\newline ") - (bcStrings (8 "1.0" y1 EM)) - (bcStrings (8 "0.0" y2 EM)) - (bcStrings (8 "0.0" y3 EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2} Intermediate") - (text . " values of {\it x} at which \htbitmap{yi} is required:") - (text . "\newline ") - (bcStrings (30 "2,4,6,8" out EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the function below {\em g(x,y)}: ") - (text . "\newline ") - (bcStrings (30 "Y[1]-0.9" g EM)) - (text . "\blankline ") - (text . "{\em Note:} PEDERV is automatically generated using the vector ") - (text . "of derivatives given above. ")) - htpSetProperty(page,'x,x) - htpSetProperty(page,'xend,xend) - htpSetProperty(page,'n,n) - htpSetProperty(page,'tol,tol) - htpSetProperty(page,'relabs,relabs) - htpSetProperty(page,'iw,iw) - htpSetProperty(page,'ifail,ifail) - htMakeDoneButton('"Continue",'d02ejfGen) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -d02ejfGen htPage == - x := htpProperty(htPage, 'x) - xend := htpProperty(htPage, 'xend) - n := htpProperty(htPage, 'n) - tol := htpProperty(htPage, 'tol) - relabs := htpProperty(htPage, 'relabs) - iw := htpProperty(htPage, 'iw) - ifail := htpProperty(htPage, 'ifail) - alist := htpInputAreaAlist htPage - y := alist - g := ((first y).1) - y := rest y - outp := ((first y).1) - oList := [outp,:oList] - ostring := bcwords2liststring oList - -- This is distictly horrible! OUTP is a comma-seperated string so we - -- count up the commas to see how many elements it has. We return this - -- quantity plus 1 since the ASP OUTPUT is always called at least once. - numberOfPoints := - ZEROP LENGTH(outp) => 1 - 2+COUNT(CHARACTER(44),outp) - y := rest y - for i in 1..n repeat - ytemp := STRCONC((first y).1," ") - yList := [ytemp,:yList] - y := rest y - ystring := bcwords2liststring yList - while y repeat - f := STRCONC((first y).1," ") - fList := [f,:fList] - y := rest y - fstring := bcwords2liststring fList - prefix := STRCONC("d02ejf(",xend,", ",STRINGIMAGE numberOfPoints,", ", STRINGIMAGE n,",_"",relabs,"_", ") - mid:=STRCONC(STRINGIMAGE iw,", ",x ,", [", ystring,"], ",tol,", ") - mid := STRCONC(mid,STRINGIMAGE ifail,",(",g,"::Expression Float)::ASP9(G),(") - end := STRCONC(fstring,"::Vector Expression Float)::ASP7('FCN),(",fstring) - end := STRCONC(end,"::Vector Expression Float)::ASP31('PEDERV),(",ostring) - end := STRCONC(end,"::Vector MachineFloat)::ASP8('OUTPUT))") - linkGen STRCONC(prefix,mid,end) - -d02gaf() == - htInitPage('"D02GAF - ODEs, boundary value problem, finite difference technique with deferred correction, simple nonlinear problem", nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXd02gaf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|d02gaf| '|NagOrdinaryDifferentialEquationsPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "\newline ") - (text . "D02GAF solves a two-point boundary value problem for a system ") - (text . "of n ODEs \center{\htbitmap{d02gaf},} for i = 1,2,...,n, on ") - (text . "the range [a,b] with assigned boundary conditions using a ") - (text . "deferred correction technique and a Newton iteration; ") - (text . "the solution is computed on a mesh. ") - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the number of equations in the system {\it n}:") - (text . "\newline\tab{2} ") - (bcStrings (5 3 n PI)) - (text . "\blankline ") - (text . "\newline \menuitemstyle{}\tab{2} ") - (text . "\newline Left hand boundary point {\it a}: ") - (text . "\tab{32} \menuitemstyle{}\tab{34} ") - (text . "Right hand boundary {\it b}:") - (text . "\newline\tab{2} ") - (bcStrings (10 "0.0" a F)) - (text . "\tab{34} ") - (bcStrings (10 "10.0" b F)) - (text . "\blankline ") - (text . "\newline \menuitemstyle{}\tab{2} ") - (text . "\newline Max number of mesh points {\it mnp}:") - (text . "\tab{32} \menuitemstyle{}\tab{34} ") - (text . "Number of points {\it np} ({\it np} = 0 or {\it np} ") - (text . "\htbitmap{great=} 4): ") - (text . "\newline\tab{2} ") - (bcStrings (10 64 mnp PI)) - (text . "\tab{34} ") - (bcStrings (10 26 np PI)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Accuracy required {\it tol}:") - (text . "\newline\tab{2} ") - (bcStrings (10 "1.0e-3" tol F)) - (text . "\blankline ") - (text . "\newline \tab{2} ") - (text . "Ifail is input in three components: ") - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "{\it a} ") - (radioButtons afail - ("" " 0, hard failure" azero) - ("" " 1, soft failure" aone)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "{\it b} ") - (radioButtons bfail - ("" " 1, print error messages" bone) - ("" " 0, suppress error messages" bzero)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "{\it c} ") - (radioButtons cfail - ("" " 1, print warning messages" cone) - ("" " 0, suppress warning messages" czero))) - htMakeDoneButton('"Continue", 'd02gafSolve) - htShowPage() - -d02gafSolve htPage == - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - a := htpLabelInputString(htPage,'a) - b := htpLabelInputString(htPage,'b) - mnp := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'mnp) - objValUnwrap htpLabelSpadValue(htPage, 'mnp) - np := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'np) - objValUnwrap htpLabelSpadValue(htPage, 'np) - lw := mnp * (3*n*n + 6*n + 2) + 4*n*n + 4*n - liw := mnp * (2*n + 1) + n*n + 4*n + 2 - tol := htpLabelInputString(htPage,'tol) - aerror := htpButtonValue(htPage,'afail) - afail := - aerror = 'azero => '0 - '1 - berror := htpButtonValue(htPage,'bfail) - bfail := - berror = 'bone => '1 - '0 - cerror := htpButtonValue(htPage,'cfail) - cfail := - cerror = 'cone => '1 - '0 - ifail := 100*cfail + 10*bfail + afail - n = '3 => d02gafDefaultSolve(htPage,a,b,mnp,np,lw,liw,tol,ifail) - funcList := - "append"/[fa(i) for i in 1..n] where fa(i) == - prefix := ('"\newline {\em Function ") - prefix := STRCONC(prefix,STRINGIMAGE i,'":} \space{1}") - funct := STRCONC ('"Y[",STRINGIMAGE i ,"]") - nam := INTERN STRCONC ('"n",STRINGIMAGE i) - [['text,:prefix],['bcStrings,[42, funct, nam, 'EM]]] - middle := ('"\blankline \menuitemstyle{} \tab{2} Enter known or estimated ") - middle := STRCONC(middle,'"values of \htbitmap{yi} at a and b, ") - middle := STRCONC(middle,"{\it U(n,2)}. [\htbitmap{yi}(a) in the first ") - middle := STRCONC(middle,"column, \htbitmap{yi}(b) in the second.] ") - middle := STRCONC(middle,"\newline ") - uList := - "append"/[fb(i) for i in 1..n] where fb(i) == - labelList := - "append"/[fc(i,j) for j in 1..2] where fc(i,j) == - unam := INTERN STRCONC ('"u",STRINGIMAGE i,STRINGIMAGE j) - [['bcStrings,[6, 0, unam, 'F]]] - prefix := ('"\newline ") - labelList := [['text,:prefix],:labelList] - uList := [['text,:middle],:uList] - mid := ('"\blankline \menuitemstyle{} \tab{2} Enter {\it V(n,2)}. ") - mid := STRCONC(mid,'"If U(i,j) is known V(i,j) ") - mid := STRCONC(mid,'"= 0.0, else V(i,j) = 1.0. \newline ") - vList := - "append"/[fd(i) for i in 1..n] where fd(i) == - labelList := - "append"/[fe(i,j) for j in 1..2] where fe(i,j) == - vnam := INTERN STRCONC ('"v",STRINGIMAGE i,STRINGIMAGE j) - [['bcStrings,[6, 0, vnam, 'F]]] - prefix := ('"\newline ") - labelList := [['text,:prefix],:labelList] - vList := [['text,:mid],:vList] - xList := - "append"/[ff(i) for i in 1..mnp] where ff(i) == - xnam := INTERN STRCONC ('"x",STRINGIMAGE i) - [['bcStrings,[8, "0.0", xnam, 'F]]] - end := ('"\blankline \menuitemstyle{} \tab{2} Enter the initial mesh ") - end := STRCONC(end,'"{\it X(mnp)}: \newline ") - xList := [['text,:end],:xList] - equationPart := [ - '(domainConditions - (isDomain EM $EmptyMode) - (isDomain S (String)) - (isDomain F (Float)) - (isDomain I (Integer))), - :funcList,:uList,:vList,:xList] - page := htInitPage('"D02GAF - ODEs, boundary value problem, finite difference technique with deferred correction, simple nonlinear problem", nil) - htSay '"\menuitemstyle{}\tab{2} " - htSay '"Enter the functions (i.e. the derivatives) below as functions of " - htSay '"Y[1]...Y[n]: " - htSay '"\newline " - htMakePage equationPart - htMakeDoneButton('"Continue",'d02gafGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'a,a) - htpSetProperty(page,'b,b) - htpSetProperty(page,'mnp,mnp) - htpSetProperty(page,'np,np) - htpSetProperty(page,'lw,lw) - htpSetProperty(page,'liw,liw) - htpSetProperty(page,'tol,tol) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -d02gafDefaultSolve(htPage,a,b,mnp,np,lw,liw,tol,ifail) == - n := '3 - page := htInitPage('"D02GAF - ODEs, boundary value problem, finite difference technique with deferred correction, simple nonlinear problem", nil) - htMakePage '( - (domainConditions - (isDomain EM $EmptyMode) - (isDomain F (Float)) - (isDomain I (Integer))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the functions (i.e. the derivatives) below ") - (text . "as functions of Y[1]...Y[n]: ") - (text . "\newline ") - (text . "\newline {\em Function 1:} \space{1}") - (bcStrings (42 "Y[2]" f1 EM)) - (text . "\newline {\em Function 2:} \space{1}") - (bcStrings (42 "Y[3]" f2 EM)) - (text . "\newline {\em Function 3:} \space{1}") - (bcStrings (42 "-Y[1]*Y[3]-0.2*(1-Y[2]*Y[2])" f3 EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter known or estimated values of \htbitmap{yi} at a and b,") - (text . " {\it U(n,2)}. ") - (text . " [\htbitmap{yi}(a) in the first column, \htbitmap{yi}(b) ") - (text . "in the second.] \newline ") - (bcStrings (6 "0" u11 F)) - (bcStrings (6 "10" u21 F)) - (text . "\newline ") - (bcStrings (6 "0" u12 F)) - (bcStrings (6 "1" u22 F)) - (text . "\newline ") - (bcStrings (6 "0" u13 F)) - (bcStrings (6 "0" u23 F)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter {\it V(n,2)}. ") - (text . "If U(i,j) is known V(i,j) = 0.0, else V(i,j) = 1.0: \newline") - (bcStrings (6 "0.0" v11 F)) - (bcStrings (6 "1.0" v21 F)) - (text . "\newline ") - (bcStrings (6 "0.0" v12 F)) - (bcStrings (6 "0.0" v22 F)) - (text . "\newline ") - (bcStrings (6 "1.0" v13 F)) - (bcStrings (6 "1.0" v23 F)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2} ") - (text . "Enter the initial mesh {\it X(mnp)}: ") - (text . "\newline ") - (bcStrings (8 "0.0" x1 F)) - (bcStrings (8 "0.4" x2 F)) - (bcStrings (8 "0.8" x3 F)) - (bcStrings (8 "1.2" x4 F)) - (bcStrings (8 "1.6" x5 F)) - (bcStrings (8 "2.0" x6 F)) - (bcStrings (8 "2.4" x7 F)) - (bcStrings (8 "2.8" x8 F)) - (bcStrings (8 "3.2" x9 F)) - (bcStrings (8 "3.6" x10 F)) - (bcStrings (8 "4.0" x11 F)) - (bcStrings (8 "4.4" x12 F)) - (bcStrings (8 "4.8" x13 F)) - (bcStrings (8 "5.2" x14 F)) - (bcStrings (8 "5.6" x15 F)) - (bcStrings (8 "6.0" x16 F)) - (bcStrings (8 "6.4" x17 F)) - (bcStrings (8 "6.8" x18 F)) - (bcStrings (8 "7.2" x19 F)) - (bcStrings (8 "7.6" x20 F)) - (bcStrings (8 "8.0" x21 F)) - (bcStrings (8 "8.4" x22 F)) - (bcStrings (8 "8.8" x23 F)) - (bcStrings (8 "9.2" x24 F)) - (bcStrings (8 "9.6" x25 F)) - (bcStrings (8 "10.0" x26 F)) - (bcStrings (8 "0.0" x27 F)) - (bcStrings (8 "0.0" x28 F)) - (bcStrings (8 "0.0" x29 F)) - (bcStrings (8 "0.0" x30 F)) - (bcStrings (8 "0.0" x31 F)) - (bcStrings (8 "0.0" x32 F)) - (bcStrings (8 "0.0" x33 F)) - (bcStrings (8 "0.0" x34 F)) - (bcStrings (8 "0.0" x35 F)) - (bcStrings (8 "0.0" x36 F)) - (bcStrings (8 "0.0" x37 F)) - (bcStrings (8 "0.0" x38 F)) - (bcStrings (8 "0.0" x39 F)) - (bcStrings (8 "0.0" x40 F)) - (bcStrings (8 "0.0" x41 F)) - (bcStrings (8 "0.0" x42 F)) - (bcStrings (8 "0.0" x43 F)) - (bcStrings (8 "0.0" x44 F)) - (bcStrings (8 "0.0" x45 F)) - (bcStrings (8 "0.0" x46 F)) - (bcStrings (8 "0.0" x47 F)) - (bcStrings (8 "0.0" x48 F)) - (bcStrings (8 "0.0" x49 F)) - (bcStrings (8 "0.0" x50 F)) - (bcStrings (8 "0.0" x51 F)) - (bcStrings (8 "0.0" x52 F)) - (bcStrings (8 "0.0" x53 F)) - (bcStrings (8 "0.0" x54 F)) - (bcStrings (8 "0.0" x55 F)) - (bcStrings (8 "0.0" x56 F)) - (bcStrings (8 "0.0" x57 F)) - (bcStrings (8 "0.0" x58 F)) - (bcStrings (8 "0.0" x59 F)) - (bcStrings (8 "0.0" x60 F)) - (bcStrings (8 "0.0" x61 F)) - (bcStrings (8 "0.0" x62 F)) - (bcStrings (8 "0.0" x63 F)) - (bcStrings (8 "0.0" x64 F))) - htpSetProperty(page,'n,n) - htpSetProperty(page,'a,a) - htpSetProperty(page,'b,b) - htpSetProperty(page,'mnp,mnp) - htpSetProperty(page,'np,np) - htpSetProperty(page,'lw,lw) - htpSetProperty(page,'liw,liw) - htpSetProperty(page,'tol,tol) - htpSetProperty(page,'ifail,ifail) - htMakeDoneButton('"Continue",'d02gafGen) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -d02gafGen htPage == - n := htpProperty(htPage, 'n) - a := htpProperty(htPage, 'a) - b := htpProperty(htPage, 'b) - mnp := htpProperty(htPage, 'mnp) - np := htpProperty(htPage, 'np) - lw := htpProperty(htPage, 'lw) - liw := htpProperty(htPage, 'liw) - ifail := htpProperty(htPage,'ifail) - tol := htpProperty(htPage,'tol) - alist := htpInputAreaAlist htPage - y := alist - for i in 1..mnp repeat - x := STRCONC((first y).1," ") - xList := [x,:xList] - y := rest y - xstring := bcwords2liststring xList - for i in 1..n repeat - for j in 1..2 repeat - v := STRCONC((first y).1," ") - rowList := [v,:rowList] - y := rest y - vList := [:vList,rowList] - rowList := [] - for i in 1..n repeat - for j in 1..2 repeat - u := STRCONC((first y).1," ") - rowList := [u,:rowList] - y := rest y - uList := [:uList,rowList] - rowList := [] - vList := reverse vList - uList := reverse uList - vstring := bcwords2liststring [bcwords2liststring x for x in vList] - ustring := bcwords2liststring [bcwords2liststring x for x in uList] - while y repeat - f := STRCONC((first y).1," ") - fList := [f,:fList] - y := rest y - fstring := bcwords2liststring fList - Y:='Y - prefix := STRCONC("d02gaf(",ustring,", ",vstring,", ",STRINGIMAGE n,", ") - prefix := STRCONC(prefix,a,", ",b,", ",tol,", ") - prefix := STRCONC(prefix,STRINGIMAGE mnp,", ",STRINGIMAGE lw,", ") - prefix := STRCONC(prefix,STRINGIMAGE liw,", [",xstring,"], ",STRINGIMAGE np) - end:=STRCONC (",",STRINGIMAGE ifail,",(",fstring,"::Vector Expression Float") - linkGen STRCONC (prefix,end,")::ASP7('FCN))") - -d02gbf() == - htInitPage('"D02GBF - ODEs, boundary value problem, finite difference technique with deferred correction, general nonlinear problem", nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXd02gbf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|d02gbf| '|NagOrdinaryDifferentialEquationsPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "\newline ") - (text . "D02GBF solves a general linear two-point boundary value problem ") - (text . "for a system of n ODEs {\it y' = F(x)y + g(x)} on the range ") - (text . "[a,b] with boundary conditions {\it Cy(a) + Dy(b) = \gamma} ") - (text . "using a deferred correction technique.") - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the number of equations in the system {\it n}:") - (text . "\newline\tab{2} ") - (bcStrings (5 2 n PI)) - (text . "\blankline ") - (text . "\newline \menuitemstyle{}\tab{2} ") - (text . "\newline Left hand boundary point {\it a}: ") - (text . "\tab{32} \menuitemstyle{}\tab{34} ") - (text . "Right hand boundary {\it b}:") - (text . "\newline\tab{2} ") - (bcStrings (10 "0.0" a F)) - (text . "\tab{34} ") - (bcStrings (10 "1.0" b F)) - (text . "\blankline ") - (text . "\newline \menuitemstyle{}\tab{2} ") - (text . "\newline Max number of mesh points {\it mnp}:") - (text . "\tab{32} \menuitemstyle{}\tab{34} ") - (text . "Number of points {\it np}: ") - (text . "\newline\tab{2} ") - (bcStrings (10 70 mnp PI)) - (text . "\tab{34} ") - (bcStrings (10 0 np PI)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Accuracy required {\it tol}:") - (text . "\newline\tab{2} ") - (bcStrings (10 "1.0e-3" tol F)) - (text . "\blankline ") - (text . "\newline \tab{2} ") - (text . "Ifail is input in three components: ") - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "{\it a} ") - (radioButtons afail - ("" " 0, hard failure" azero) - ("" " 1, soft failure" aone)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "{\it b} ") - (radioButtons bfail - ("" " 1, print error messages" bone) - ("" " 0, suppress error messages" bzero)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "{\it c} ") - (radioButtons cfail - ("" " 1, print warning messages" cone) - ("" " 0, suppress warning messages" czero))) - htMakeDoneButton('"Continue", 'd02gbfSolve) - htShowPage() - -d02gbfSolve htPage == - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - a := htpLabelInputString(htPage,'a) - b := htpLabelInputString(htPage,'b) - mnp := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'mnp) - objValUnwrap htpLabelSpadValue(htPage, 'mnp) - np := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'np) - objValUnwrap htpLabelSpadValue(htPage, 'np) - lw := mnp * (3*n*n + 5*n + 2) + 3*n*n + 5*n - liw := mnp * (2*n + 1) + n - tol := htpLabelInputString(htPage,'tol) - aerror := htpButtonValue(htPage,'afail) - afail := - aerror = 'azero => '0 - '1 - berror := htpButtonValue(htPage,'bfail) - bfail := - berror = 'bone => '1 - '0 - cerror := htpButtonValue(htPage,'cfail) - cfail := - cerror = 'cone => '1 - '0 - ifail := 100*cfail + 10*bfail + afail - n = '2 => d02gbfDefaultSolve(htPage,a,b,mnp,np,lw,liw,tol,ifail) - cList := - "append"/[fa(i,n) for i in 1..n] where fa(i,n) == - labelList := - "append"/[fb(i,j) for j in 1..n] where fb(i,j) == - cnam := INTERN STRCONC ('"c",STRINGIMAGE i,STRINGIMAGE j) - [['bcStrings,[6, 0, cnam, 'F]]] - prefix := ('"\newline ") - labelList := [['text,:prefix],:labelList] - middle := ('"\blankline \menuitemstyle{} \tab{2} Enter the matrix {\it D}: ") - middle := STRCONC(middle,"\newline ") - dList := - "append"/[fc(i,n) for i in 1..n] where fc(i,n) == - labelList := - "append"/[fd(i,j) for j in 1..n] where fd(i,j) == - dnam := INTERN STRCONC ('"d",STRINGIMAGE i,STRINGIMAGE j) - [['bcStrings,[6, 0, dnam, 'F]]] - prefix := ('"\newline ") - labelList := [['text,:prefix],:labelList] - dList := [['text,:middle],:dList] - middle := ('"\blankline \menuitemstyle{} \tab{2} Enter the vector \gamma: ") - middle := STRCONC(middle,"\newline ") - gamList := - "append"/[fe(i) for i in 1..n] where fe(i) == - gamnam := INTERN STRCONC ('"gam",STRINGIMAGE i) - [['bcStrings,[6, 0, gamnam, 'F]]] - prefix := ('"\newline ") - gamList := [['text,:middle],:gamList] - middle := ('"\blankline \menuitemstyle{} \tab{2} Enter the matrix ") - middle := STRCONC(middle,"{\it F(x)} from the equation {\it y' =} ") - middle := STRCONC(middle,"{\it F(x)y + g(x)}: \newline ") - fList := - "append"/[ff(i,n) for i in 1..n] where ff(i,n) == - labelList := - "append"/[fg(i,j) for j in 1..n] where fg(i,j) == - fnam := INTERN STRCONC ('"f",STRINGIMAGE i,STRINGIMAGE j) - [['bcStrings,[6, 0, fnam, 'F]]] - prefix := ('"\newline ") - labelList := [['text,:prefix],:labelList] - fList := [['text,:middle],:fList] - mid := ('"\blankline \menuitemstyle{} \tab{2} Enter the vector {\it g(x)}: ") - mid := STRCONC(mid,'"\newline ") - gList := - "append"/[fh(i) for i in 1..n] where fh(i) == - gnam := INTERN STRCONC ('"g",STRINGIMAGE i) - [['bcStrings,[6, 0, gnam, 'F]]] - prefix := ('"\newline ") - gList := [['text,:middle],:gList] - xList := - "append"/[fi(i) for i in 1..mnp] where fi(i) == - xnam := INTERN STRCONC ('"x",STRINGIMAGE i) - [['bcStrings,[8, "0.0", xnam, 'F]]] - end := ('"\blankline \menuitemstyle{} \tab{2} The initial mesh {\it X(mnp)}") - end := STRCONC(end,'", (all entries = 0 if np < 4): \newline ") - xList := [['text,:end],:xList] - equationPart := [ - '(domainConditions - (isDomain EM $EmptyMode) - (isDomain S (String)) - (isDomain F (Float)) - (isDomain I (Integer))), - :cList,:dList,:gamList,:fList,:gList,:xList] - page := htInitPage('"D02GBF - ODEs, boundary value problem, finite difference technique with deferred correction, general nonlinear problem", nil) - htSay '"\menuitemstyle{}\tab{2} " - htSay '"Enter the matrix {\it C} form the equation {\it Cy(a) + Dy(b)} " - htSay '"= \gamma \newline " - htMakePage equationPart - htMakeDoneButton('"Continue",'d02gbfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'a,a) - htpSetProperty(page,'b,b) - htpSetProperty(page,'mnp,mnp) - htpSetProperty(page,'np,np) - htpSetProperty(page,'lw,lw) - htpSetProperty(page,'liw,liw) - htpSetProperty(page,'tol,tol) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -d02gbfDefaultSolve(htPage,a,b,mnp,np,lw,liw,tol,ifail) == - n := '2 - page := htInitPage('"D02GBF - ODEs, boundary value problem, finite difference technique with deferred correction, general nonlinear problem", nil) - htMakePage '( - (domainConditions - (isDomain EM $EmptyMode) - (isDomain F (Float)) - (isDomain I (Integer))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the matrix {\it C} from the equation {\it Cy(a) + Dy(b)} = \gamma:") - (text . "\newline ") - (bcStrings (6 "1" c11 F)) - (bcStrings (6 "0" c12 F)) - (text . "\newline ") - (bcStrings (6 "0" c21 F)) - (bcStrings (6 "0" c22 F)) - (text . "\blankline \menuitemstyle{}\tab{2}") - (text . "Enter the matrix {\it D}: \newline ") - (bcStrings (6 "0" d11 F)) - (bcStrings (6 "0" d12 F)) - (text . "\newline ") - (bcStrings (6 "1" d21 F)) - (bcStrings (6 "0" d22 F)) - (text . "\blankline \menuitemstyle{}\tab{2}") - (text . "Enter the vector \gamma: \newline ") - (bcStrings (6 "0" gam1 F)) - (bcStrings (6 "1" gam2 F)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the matrix {\it F(x)} from the equation {\it y' = F(x)y + g(x)} : ") - (text . "\newline ") - (bcStrings (6 "0" f11 F)) - (bcStrings (6 "1" f12 F)) - (text . "\newline ") - (bcStrings (6 "0" f21 F)) - (bcStrings (6 "-10" f22 F)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the vector {\it g(x)}: ") - (text . "\newline ") - (bcStrings (6 "0" g1 F)) - (bcStrings (6 "0" g2 F)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2} The initial mesh {\it X(mnp)}, ") - (text . "(all entries = 0 if np < 4): \newline ") - (bcStrings (8 "0.0" x1 F)) - (bcStrings (8 "0.0" x2 F)) - (bcStrings (8 "0.0" x3 F)) - (bcStrings (8 "0.0" x4 F)) - (bcStrings (8 "0.0" x5 F)) - (bcStrings (8 "0.0" x6 F)) - (bcStrings (8 "0.0" x7 F)) - (bcStrings (8 "0.0" x8 F)) - (bcStrings (8 "0.0" x9 F)) - (bcStrings (8 "0.0" x10 F)) - (bcStrings (8 "0.0" x11 F)) - (bcStrings (8 "0.0" x12 F)) - (bcStrings (8 "0.0" x13 F)) - (bcStrings (8 "0.0" x14 F)) - (bcStrings (8 "0.0" x15 F)) - (bcStrings (8 "0.0" x16 F)) - (bcStrings (8 "0.0" x17 F)) - (bcStrings (8 "0.0" x18 F)) - (bcStrings (8 "0.0" x19 F)) - (bcStrings (8 "0.0" x20 F)) - (bcStrings (8 "0.0" x21 F)) - (bcStrings (8 "0.0" x22 F)) - (bcStrings (8 "0.0" x23 F)) - (bcStrings (8 "0.0" x24 F)) - (bcStrings (8 "0.0" x25 F)) - (bcStrings (8 "0.0" x26 F)) - (bcStrings (8 "0.0" x27 F)) - (bcStrings (8 "0.0" x28 F)) - (bcStrings (8 "0.0" x29 F)) - (bcStrings (8 "0.0" x30 F)) - (bcStrings (8 "0.0" x31 F)) - (bcStrings (8 "0.0" x32 F)) - (bcStrings (8 "0.0" x33 F)) - (bcStrings (8 "0.0" x34 F)) - (bcStrings (8 "0.0" x35 F)) - (bcStrings (8 "0.0" x36 F)) - (bcStrings (8 "0.0" x37 F)) - (bcStrings (8 "0.0" x38 F)) - (bcStrings (8 "0.0" x39 F)) - (bcStrings (8 "0.0" x40 F)) - (bcStrings (8 "0.0" x41 F)) - (bcStrings (8 "0.0" x42 F)) - (bcStrings (8 "0.0" x43 F)) - (bcStrings (8 "0.0" x44 F)) - (bcStrings (8 "0.0" x45 F)) - (bcStrings (8 "0.0" x46 F)) - (bcStrings (8 "0.0" x47 F)) - (bcStrings (8 "0.0" x48 F)) - (bcStrings (8 "0.0" x49 F)) - (bcStrings (8 "0.0" x50 F)) - (bcStrings (8 "0.0" x51 F)) - (bcStrings (8 "0.0" x52 F)) - (bcStrings (8 "0.0" x53 F)) - (bcStrings (8 "0.0" x54 F)) - (bcStrings (8 "0.0" x55 F)) - (bcStrings (8 "0.0" x56 F)) - (bcStrings (8 "0.0" x57 F)) - (bcStrings (8 "0.0" x58 F)) - (bcStrings (8 "0.0" x59 F)) - (bcStrings (8 "0.0" x60 F)) - (bcStrings (8 "0.0" x61 F)) - (bcStrings (8 "0.0" x62 F)) - (bcStrings (8 "0.0" x63 F)) - (bcStrings (8 "0.0" x64 F)) - (bcStrings (8 "0.0" x65 F)) - (bcStrings (8 "0.0" x66 F)) - (bcStrings (8 "0.0" x67 F)) - (bcStrings (8 "0.0" x68 F)) - (bcStrings (8 "0.0" x69 F)) - (bcStrings (8 "0.0" x70 F))) - htpSetProperty(page,'n,n) - htpSetProperty(page,'a,a) - htpSetProperty(page,'b,b) - htpSetProperty(page,'mnp,mnp) - htpSetProperty(page,'np,np) - htpSetProperty(page,'lw,lw) - htpSetProperty(page,'liw,liw) - htpSetProperty(page,'tol,tol) - htpSetProperty(page,'ifail,ifail) - htMakeDoneButton('"Continue",'d02gbfGen) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -d02gbfGen htPage == - n := htpProperty(htPage, 'n) - a := htpProperty(htPage, 'a) - b := htpProperty(htPage, 'b) - mnp := htpProperty(htPage, 'mnp) - np := htpProperty(htPage, 'np) - lw := htpProperty(htPage, 'lw) - liw := htpProperty(htPage, 'liw) - ifail := htpProperty(htPage,'ifail) - tol := htpProperty(htPage,'tol) - alist := htpInputAreaAlist htPage - y := alist - for i in 1..mnp repeat -- matrix - x := STRCONC((first y).1," ") - xList := [x,:xList] - y := rest y - xstring := bcwords2liststring xList - for i in 1..n repeat -- vector g - g := STRCONC((first y).1," ") - gList := [g,:gList] - y := rest y - gstring := bcwords2liststring gList - for i in 1..n repeat -- matrix F - for j in 1..n repeat - f := STRCONC((first y).1," ") - flist := [f,:flist] - y := rest y - fmatlist := [:fmatlist,flist] - flist := [] - fmatlist := reverse fmatlist - fmatstr := bcwords2liststring [bcwords2liststring x for x in fmatlist] - for i in 1..n repeat -- vector gamma - gam := STRCONC((first y).1," ") - gamList := [gam,:gamList] - y := rest y - gamstr := bcwords2liststring gamList - for i in 1..n repeat -- matrix D - for j in 1..n repeat - d := STRCONC((first y).1," ") - dlist := [d,:dlist] - y := rest y - dmatlist := [:dmatlist,dlist] - dlist := [] - dmatlist := reverse dmatlist - dmatstr := bcwords2liststring [bcwords2liststring x for x in dmatlist] - for i in 1..n repeat -- matrix C - for j in 1..n repeat - c := STRCONC((first y).1," ") - clist := [c,:clist] - y := rest y - cmatlist := [:cmatlist,clist] - clist := [] - cmatlist := reverse cmatlist - cmatstr := bcwords2liststring [bcwords2liststring x for x in cmatlist] - prefix := STRCONC("d02gbf(",STRINGIMAGE a,", ",STRINGIMAGE b,", ") - prefix := STRCONC(prefix,STRINGIMAGE n,", ",tol,", ",STRINGIMAGE mnp,", ") - prefix := STRCONC(prefix,STRINGIMAGE lw,", ",STRINGIMAGE liw,", ") - prefix := STRCONC(prefix,cmatstr,"::Matrix DoubleFloat,",dmatstr,"::Matrix DoubleFloat,[",gamstr,"]::Matrix DoubleFloat,[",xstring,"]::Matrix DoubleFloat, ") - mid := STRCONC(STRINGIMAGE np,", ",STRINGIMAGE ifail,", ") - end := STRCONC("(",fmatstr,"::Matrix(Expression(Float)))::ASP77(FCNF),(",gstring) - linkGen STRCONC(prefix,mid,end,"::Vector(Expression(Float)))::ASP78(FCNG))") - -d02kef() == - htInitPage('"D02KEF - 2nd order Sturm-Liouville problem, regular/singular system, finite/infinite range, eigenvalue and eigenfunction, user-specified break-points", nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXd02kef} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|d02kef| '|NagOrdinaryDifferentialEquationsPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "\newline ") - (text . "D02KEF finds a specified eigenvalue \htbitmap{lamdab} of a ") - (text . "regular or second-order Sturm-Liouville system ") - (text . "{\it(p(x)y')' + q(x; \lambda)y = 0} on a finite or infinite ") - (text . "range [a,b]; a Pruefer transformation and shooting method ") - (text . "are used; discontinuities in coefficient functions or their ") - (text . "derivatives are permitted. ") - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Number of points in XPOINT {\it m}:") - (text . "\newline\tab{2} ") - (bcStrings (6 5 m PI)) - (text . "\blankline ") - (text . "\newline \menuitemstyle{}\tab{2} ") - (text . "\newline Index of the `break-point' {\it match}:") - (text . "\newline\tab{2} ") - (bcStrings (6 0 match PI)) - (text . "\blankline ") - (text . "\newline \menuitemstyle{}\tab{2} ") - (text . "\newline Index of the required eigenvalue {\it k}:") - (text . "\newline\tab{2} ") - (bcStrings (6 11 k PI)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Accuracy required {\it tol}:") - (text . "\newline\tab{2} ") - (bcStrings (10 "0.0001" tol F)) - (text . "\blankline ") - (text . "\newline \menuitemstyle{}\tab{2} \newline ") - (text . "Eigenvalue estimate {\it elam}: ") - (text . "\tab{32} \menuitemstyle{}\tab{34} ") - (text . "Scale of the problem {\it delam}: ") - (text . "\newline\tab{2} ") - (bcStrings (10 "14" elam F)) - (text . "\tab{34} ") - (bcStrings (10 "1" delam F)) - (text . "\blankline ") - (text . "\newline \menuitemstyle{}\tab{2} \newline ") - (text . "Max iterations {\it maxit}:") - (text . "\tab{32} \menuitemstyle{}\tab{34} ") - (text . "Max COEFFN calls {\it maxfun}:") - (text . "\newline\tab{2} ") - (bcStrings (10 0 maxit PI)) - (text . "\tab{34} ") - (bcStrings (10 0 maxfun PI)) - (text . "\blankline ") - (text . "\tab{2} \newline {\it Note:} no bound is assumed ") - (text . "if maxit = 0 \blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'd02kefSolve) - htShowPage() - -d02kefSolve htPage == - m := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm) - objValUnwrap htpLabelSpadValue(htPage, 'm) - match := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'match) - objValUnwrap htpLabelSpadValue(htPage, 'match) - k := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'k) - objValUnwrap htpLabelSpadValue(htPage, 'k) - tol := htpLabelInputString(htPage,'tol) - elam := htpLabelInputString(htPage,'elam) - delam := htpLabelInputString(htPage,'delam) - maxit := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'maxit) - objValUnwrap htpLabelSpadValue(htPage, 'maxit) - maxfun := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'maxfun) - objValUnwrap htpLabelSpadValue(htPage, 'maxfun) - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'minusOne => '-1 - '1 - m = '5 =>d02kefDefaultSolve(htPage,match,k,tol,elam,delam,maxit,maxfun,ifail) - xpList := - "append"/[fa(i) for i in 1..m] where fa(i) == - xpnam := INTERN STRCONC ('"xp",STRINGIMAGE i) - [['bcStrings,[10, "0.0", xpnam, 'EM]]] - middle:=('"\blankline \menuitemstyle{} \tab{2} Value of {\it p} for COEFFN:") - middle := STRCONC(middle,"\newline ") - cList := [['text,:middle],['bcStrings,[42, "0.0", 'c1, 'EM]]] - middle:=('"\blankline \menuitemstyle{} \tab{2} Value of {\it q} for COEFFN:") - middle := STRCONC(middle,"\newline ") - c1List := [['text,:middle],['bcStrings,[42, "0.0", 'c2, 'EM]]] - cList := [:cList,:c1List] - middle:=('"\blankline \menuitemstyle{} \tab{2} Value of {\it dqdl}") - middle := STRCONC(middle," for COEFFN: \newline ") - c2List := [['text,:middle],['bcStrings,[42, "0.0", 'c3, 'EM]]] - cList := [:cList,:c2List] - middle:=('"\blankline \menuitemstyle{} \tab{2} Values of YL(1) & YL(2) ") - middle := STRCONC(middle,"for BDYVAL: \newline ") - ylList := - "append"/[fb(i) for i in 1..2] where fb(i) == - ylnam := INTERN STRCONC ('"yl",STRINGIMAGE i) - [['bcStrings,[42, "0.0", ylnam, 'EM]]] - ylList := [['text,:middle],:ylList] - middle:=('"\blankline \menuitemstyle{} \tab{2} Values of YR(1) & YR(2) ") - middle := STRCONC(middle,"for BDYVAL: \newline ") - yrList := - "append"/[fc(i) for i in 1..2] where fc(i) == - yrnam := INTERN STRCONC ('"yr",STRINGIMAGE i) - [['bcStrings,[42, "0.0", yrnam, 'EM]]] - yrList := [['text,:middle],:yrList] - middle:=('"\blankline \menuitemstyle{} \tab{2} Maximum step size ") - middle := STRCONC(middle,"{\it hmax(2,m)}: \newline ") - hList := - "append"/[fd(i,m) for i in 1..2] where fd(i,m) == - labelList := - "append"/[fe(i,j) for j in 1..m] where fe(i,j) == - hnam := INTERN STRCONC ('"h",STRINGIMAGE i,STRINGIMAGE j) - [['bcStrings,[6, "0.0", hnam, 'F]]] - prefix := ('"\newline ") - labelList := [['text,:prefix],:labelList] - hList := [['text,:middle],:hList] - equationPart := [ - '(domainConditions - (isDomain EM $EmptyMode) - (isDomain S (String)) - (isDomain F (Float)) - (isDomain I (Integer))), - :xpList,:cList,:ylList,:yrList,:hList] - page := htInitPage('"D02KEF - 2nd order Sturm-Liouville problem, regular/singular system, finite/infinite range, eigenvalue and eigenfunction, user-specified break-points", nil) - htSay '"\menuitemstyle{}\tab{2} Enter points where boundary " - htSay '"conditions are to be imposed {\it xpoint}: \newline " - htMakePage equationPart - htMakeDoneButton('"Continue",'d02kefGen) - htpSetProperty(page,'m,m) - htpSetProperty(page,'match,match) - htpSetProperty(page,'k,k) - htpSetProperty(page,'tol,tol) - htpSetProperty(page,'elam,elam) - htpSetProperty(page,'delam,delam) - htpSetProperty(page,'maxit,maxit) - htpSetProperty(page,'maxfun,maxfun) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -d02kefDefaultSolve(htPage,match,k,tol,elam,delam,maxit,maxfun,ifail) == - m := '5 - page := htInitPage('"D02KEF - 2nd order Sturm-Liouville problem, regular/singular system, finite/infinite range, eigenvalue and eigenfunction, user-specified break-points", nil) - htMakePage '( - (domainConditions - (isDomain EM $EmptyMode) - (isDomain F (Float)) - (isDomain I (Integer))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter points where boundary conditions are to be imposed ") - (text . "{\it xpoint}: \newline ") - (bcStrings (10 "0.0" xp1 F)) - (bcStrings (10 "0.1" xp2 F)) - (bcStrings (10 "4**(1/3)" xp3 F)) - (bcStrings (10 "30.0" xp4 F)) - (bcStrings (10 "30.0" xp5 F)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Value of {\it p} for COEFFN: \newline ") - (bcStrings (42 "1.0" c1 EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Value of {\it q} for COEFFN: \newline ") - (bcStrings (42 "ELAM-X-2.0/(X*X)" c2 EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Value of {\it dqdl} for COEFFN: \newline ") - (bcStrings (42 "1.0" c3 EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Values of YL(1) & YL(2) for BDYVAL: \newline ") - (bcStrings (42 "XL" yl1 EM)) - (bcStrings (42 "2.0" yl2 EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Values of YR(1) & YR(2) for BDYVAL: \newline ") - (bcStrings (42 "1.0" yr1 EM)) - (bcStrings (42 "-sqrt(XR-ELAM)" yr2 EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Maximum step size {\it hmax(2,m)}: \newline ") - (bcStrings (6 "0.0" h11 F)) - (bcStrings (6 "0.0" h12 F)) - (bcStrings (6 "0.0" h13 F)) - (bcStrings (6 "0.0" h14 F)) - (bcStrings (6 "0.0" h15 F)) - (text . "\newline ") - (bcStrings (6 "0.0" h21 F)) - (bcStrings (6 "0.0" h22 F)) - (bcStrings (6 "0.0" h23 F)) - (bcStrings (6 "0.0" h24 F)) - (bcStrings (6 "0.0" h25 F))) - htpSetProperty(page,'m,m) - htpSetProperty(page,'match,match) - htpSetProperty(page,'k,k) - htpSetProperty(page,'tol,tol) - htpSetProperty(page,'elam,elam) - htpSetProperty(page,'delam,delam) - htpSetProperty(page,'maxit,maxit) - htpSetProperty(page,'maxfun,maxfun) - htpSetProperty(page,'ifail,ifail) - htMakeDoneButton('"Continue",'d02kefGen) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -d02kefGen htPage == - m := htpProperty(htPage, 'm) - match := htpProperty(htPage, 'match) - k := htpProperty(htPage, 'k) - tol := htpProperty(htPage, 'tol) - elam := htpProperty(htPage, 'elam) - delam := htpProperty(htPage, 'delam) - maxit := htpProperty(htPage, 'maxit) - maxfun := htpProperty(htPage, 'maxfun) - ifail := htpProperty(htPage,'ifail) - alist := htpInputAreaAlist htPage - y := alist - for i in 1..m repeat - for j in 1..2 repeat - h := STRCONC((first y).1," ") - rowList := [h,:rowList] - y := rest y - hList := [:hList,rowList] - rowList := [] - hList := reverse hList - hstring := bcwords2liststring [bcwords2liststring x for x in hList] - for i in 1..2 repeat - for j in 1..2 repeat - b := STRCONC((first y).1," ") - rowList := [b,:rowList] - y := rest y - bList := [:bList,rowList] - rowList := [] - bList := reverse bList - bstring := bcwords2liststring [bcwords2liststring x for x in bList] - for i in 1..3 repeat - c := STRCONC((first y).1," ") - cList := [c,:cList] - y := rest y - cstring := bcwords2liststring cList - while y repeat - x := STRCONC((first y).1," ") - xList := [x,:xList] - y := rest y - xstring := bcwords2liststring xList - prefix := STRCONC("d02kef([",xstring,"]::Matrix DoubleFloat, ",STRINGIMAGE m) - prefix := STRCONC(prefix,", ",STRINGIMAGE k,", ",tol,", ",STRINGIMAGE maxfun) - prefix := STRCONC(prefix,", ",STRINGIMAGE match,", ",STRINGIMAGE elam,", ") - prefix:=STRCONC(prefix,STRINGIMAGE delam,", ",hstring,", ",STRINGIMAGE maxit) - end := STRCONC(", ",STRINGIMAGE ifail,",(",cstring,"::Vector(Expression Float))::ASP10(COEFFN)") - end := STRCONC(end,", (",bstring,"::Matrix Expression Float)::ASP80('BDYVAL))") - linkGen STRCONC (prefix,end) - -d02raf() == - htInitPage('"D02RAF - ODEs, general nonlinear boundary value problem, finite difference technique with deferred correction, continuation facility",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXd02raf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|d02raf| '|NagOrdinaryDifferentialEquationsPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "\newline ") - (text . "D02RAF solves a two-point boundary value problem for a system ") - (text . "of {\it n} first-order ordinary differential equations ") - (text . "{\it \htbitmap{yi}'= \htbitmap{fi}(x,y)}, for {\it i} = 1,2,...,") - (text . "{\it n}, on the range [a,b] with {\it n} nonlinear boundary ") - (text . "conditions \htbitmap{gi}{\it (y(a),y(b)) = 0} for {\it i} = 1,2,") - (text . "...,{\it n} using a deferred correction technique and a Newton ") - (text . "iteration; the solution is computed on a mesh. A continuation ") - (text . "facility is provided for which a family of problems is solved ") - (text . "posed as {\it y' = f(x,y,\epsilon)} subject to the boundary ") - (text . "conditions {\it g(y(a),y(b),\epsilon) = 0}, where \epsilon ") - (text . "is the continuation parameter. The choice \epsilon = 0 should ") - (text . "define an easy problem to solve and \epsilon = 1 the problem ") - (text . "whose solution is required; a sequence of problems is solved ") - (text . "with 0 = \htbitmap{ep1} < \htbitmap{ep2} < ... \htbitmap{epp} ") - (text . "= 1 where {\it p} and the \htbitmap{epi} are chosen by D02RAF. ") - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the number of differential equations {\it n}: ") - (text . "\newline\tab{2} ") - (bcStrings (5 3 n PI)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "The maximum number of points in the mesh {\it mnp}: ") - (text . "\newline\tab{2} ") - (bcStrings (5 40 mnp PI)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Number of points in the initial mesh {\it np}:") - (text . "\newline\tab{2} ") - (bcStrings (5 17 np PI)) - (text . "\blankline ") - (text . "\newline \menuitemstyle{}\tab{2} ") - (text . "\newline Number of boundary conditions involving y(a) only ") - (text . "{\it numbeg}: \newline\tab{2} ") - (bcStrings (5 2 numbeg PI)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "\newline Boundary conditions involving both y(a) and ") - (text . "y(b) {\it nummix}: \newline\tab{2} ") - (text . "\newline\tab{2} ") - (bcStrings (5 0 nummix PI)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Absolute error tolerance {\it tol}: ") - (text . "\newline\tab{2} ") - (bcStrings (10 "1.0e-4" tol F)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Do you wish to use an intial mesh or default values,{\it init} ") - (radioButtons init - ("" " default values" init_zero) - ("" " initial mesh" init_nonZero)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "First dimension of y, {\it iy}: ") - (text . "\newline\tab{2} ") - (bcStrings (5 3 iy PI)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Are JACOBF & JACOBG routines being supplied, {\it ijac}:") - (radioButtons ijac - ("" " yes" ijac_nonZero) - ("" " no" ijac_zero)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Continuation facility {\it deleps}:") - (text . "\newline\tab{2} ") - (bcStrings (5 "0.1" deleps F)) - (text . "\newline\tab{2} ") - (text . "Note: For 0.0 \htbitmap{great=} deleps > 1.0, continuation ") - (text . "is not used. ") - (text . "\blankline ") - (text . "\newline \tab{2} ") - (text . "Ifail is input in three components: ") - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "{\it a} ") - (radioButtons afail - ("" " 0, hard failure" azero) - ("" " 1, soft failure" aone)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "{\it b} ") - (radioButtons bfail - ("" " 1, print error messages" bone) - ("" " 0, suppress error messages" bzero)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "{\it c} ") - (radioButtons cfail - ("" " 1, print warning messages" cone) - ("" " 0, suppress warning messages" czero))) - htMakeDoneButton('"Continue", 'd02rafSolve) - htShowPage() - -d02rafSolve htPage == - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - mnp := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'mnp) - objValUnwrap htpLabelSpadValue(htPage, 'mnp) - np := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'np) - objValUnwrap htpLabelSpadValue(htPage, 'np) - numbeg := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'numbeg) - objValUnwrap htpLabelSpadValue(htPage, 'numbeg) - nummix := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nummix) - objValUnwrap htpLabelSpadValue(htPage, 'nummix) - tol := htpLabelInputString(htPage,'tol) - mesh := htpButtonValue(htPage,'init) - init := - mesh = 'init_zero => '0 - '1 - iy := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'iy) - objValUnwrap htpLabelSpadValue(htPage, 'iy) - jacob := htpButtonValue(htPage,'ijac) - ijac := - jacob = 'ijac_zero => '0 - '1 - deleps := htpLabelInputString(htPage,'deleps) - lwork := mnp*(3*n*n + 6*n +2) +4*n*n + 3*n - liwork := - ijac = 0 => mnp*(2*n +1) + n*n + 4*n +2 - mnp*(2*n +1) + n - aerror := htpButtonValue(htPage,'afail) - afail := - aerror = 'azero => '0 - '1 - berror := htpButtonValue(htPage,'bfail) - bfail := - berror = 'bone => '1 - '0 - cerror := htpButtonValue(htPage,'cfail) - cfail := - cerror = 'cone => '1 - '0 - ifail := 100*cfail + 10*bfail + afail - (n = '3 and init = '0 and iy = '3 and nummix = '0 and numbeg = '2 and np = '17 and mnp = '40) => d02rafDefaultSolve(htPage,mnp,np,numbeg,nummix,tol,init,iy,ijac,deleps,lwork,liwork,ifail) - init = '1 => d02rafCopOut() - funcList := - "append"/[fa(i) for i in 1..n] where fa(i) == - prefix := ('"\newline {\em Function f") - prefix := STRCONC(prefix,STRINGIMAGE i,'":} \space{1}") - funct := STRCONC ('"Y[",STRINGIMAGE i ,"]") - fnam := INTERN STRCONC ('"f",STRINGIMAGE i) - [['text,:prefix],['bcStrings,[42, funct, fnam, 'EM]]] - middle := ('"\blankline \menuitemstyle{} \tab{2} Enter the functions ") - middle := STRCONC(middle,'"\htbitmap{gi} below ") - middle := STRCONC(middle,'"as functions of YA[i] and YB[i]: \newline ") - gList := - "append"/[fb(i) for i in 1..n] where fb(i) == - prefix := ('"\newline {\em Function g") - prefix := STRCONC(prefix,STRINGIMAGE i,'":} \space{1}") - fnc := STRCONC ('"YA[",STRINGIMAGE i ,"]") - gnam := INTERN STRCONC ('"g",STRINGIMAGE i) - [['text,:prefix],['bcStrings,[42, fnc, gnam, 'EM]]] - gList := [['text,:middle],:gList] - mid:= ('"\blankline \menuitemstyle{} \tab{2} Enter the array ") - mid := STRCONC(mid,'"{\it x(mnp)}: \newline ") - xList := - "append"/[fc(i) for i in 1..mnp] where fc(i) == - xnam := INTERN STRCONC ('"x",STRINGIMAGE i) - [['bcStrings,[4, 0, xnam, 'F]]] - xList := [['text,:mid],:xList] - equationPart := [ - '(domainConditions - (isDomain EM $EmptyMode) - (isDomain S (String)) - (isDomain F (Float)) - (isDomain I (Integer))), - :funcList,:gList,:xList] - page := htInitPage('"D02RAF - ODEs, general nonlinear boundary value problem, finite difference technique with deferred correction, continuation facility",nil) - htSay '"\menuitemstyle{}\tab{2} " - htSay '"Enter the functions \htbitmap{fi} (i.e. the derivatives) below " - htSay '"as functions of Y[1]...Y[n]: " - htSay '"\newline " - htMakePage equationPart - htMakeDoneButton('"Continue",'d02rafGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'mnp,mnp) - htpSetProperty(page,'np,np) - htpSetProperty(page,'numbeg,numbeg) - htpSetProperty(page,'nummix,nummix) - htpSetProperty(page,'tol,tol) - htpSetProperty(page,'init,init) - htpSetProperty(page,'iy,iy) - htpSetProperty(page,'ijac,ijac) - htpSetProperty(page,'deleps,deleps) - htpSetProperty(page,'lwork,lwork) - htpSetProperty(page,'liwork,liwork) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -d02rafDefaultSolve(htPage,mnp,np,numbeg,nummix,tol,init,iy,ijac,deleps,lwork,liwork,ifail) == - n := '3 - page := htInitPage('"D02RAF - ODEs, general nonlinear boundary value problem, finite difference technique with deferred correction, continuation facility",nil) - htMakePage '( - (domainConditions - (isDomain EM $EmptyMode) - (isDomain F (Float)) - (isDomain I (Integer))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the functions \htbitmap{fi} (i.e. the derivatives) below ") - (text . "as functions of Y[1]...Y[n]: ") - (text . "\newline {\em Function f1:} \space{1}") - (bcStrings (44 "Y[2]" f1 EM)) - (text . "\newline {\em Function f2:} \space{1}") - (bcStrings (44 "Y[3]" f2 EM)) - (text . "\newline {\em Function f3:} \space{1}") - (bcStrings (44 "-Y[1]*Y[3] - 2*EPS*(1-Y[2]*Y[2])" f3 EM)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the functions \htbitmap{gi} below ") - (text . "as functions of YA[i] and YB[i]: ") - (text . "\newline {\em Function g1:} \space{1}") - (bcStrings (44 "YA[1]" g1 EM)) - (text . "\newline {\em Function g2:} \space{1}") - (bcStrings (44 "YA[2]" g2 EM)) - (text . "\newline {\em Function g3:} \space{1}") - (bcStrings (44 "YB[2] -1" g3 EM)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the array {\it x(mnp)}: \newline ") - (bcStrings (4 "0.0" x1 F)) - (bcStrings (4 "0.0" x2 F)) - (bcStrings (4 "0.0" x3 F)) - (bcStrings (4 "0.0" x4 F)) - (bcStrings (4 "0.0" x5 F)) - (bcStrings (4 "0.0" x6 F)) - (bcStrings (4 "0.0" x7 F)) - (bcStrings (4 "0.0" x8 F)) - (bcStrings (4 "0.0" x9 F)) - (bcStrings (4 "0.0" x10 F)) - (bcStrings (4 "0.0" x11 F)) - (bcStrings (4 "0.0" x12 F)) - (bcStrings (4 "0.0" x13 F)) - (bcStrings (4 "0.0" x14 F)) - (bcStrings (4 "0.0" x15 F)) - (bcStrings (4 "0.0" x16 F)) - (bcStrings (4 "10.0" x17 F)) - (bcStrings (4 "0.0" x18 F)) - (bcStrings (4 "0.0" x19 F)) - (bcStrings (4 "0.0" x20 F)) - (bcStrings (4 "0.0" x21 F)) - (bcStrings (4 "0.0" x22 F)) - (bcStrings (4 "0.0" x23 F)) - (bcStrings (4 "0.0" x24 F)) - (bcStrings (4 "0.0" x25 F)) - (bcStrings (4 "0.0" x26 F)) - (bcStrings (4 "0.0" x27 F)) - (bcStrings (4 "0.0" x28 F)) - (bcStrings (4 "0.0" x29 F)) - (bcStrings (4 "0.0" x30 F)) - (bcStrings (4 "0.0" x31 F)) - (bcStrings (4 "0.0" x32 F)) - (bcStrings (4 "0.0" x33 F)) - (bcStrings (4 "0.0" x34 F)) - (bcStrings (4 "0.0" x35 F)) - (bcStrings (4 "0.0" x36 F)) - (bcStrings (4 "0.0" x37 F)) - (bcStrings (4 "0.0" x38 F)) - (bcStrings (4 "0.0" x39 F)) - (bcStrings (4 "0.0" x40 F))) - htpSetProperty(page,'n,n) - htpSetProperty(page,'mnp,mnp) - htpSetProperty(page,'np,np) - htpSetProperty(page,'numbeg,numbeg) - htpSetProperty(page,'nummix,nummix) - htpSetProperty(page,'tol,tol) - htpSetProperty(page,'init,init) - htpSetProperty(page,'iy,iy) - htpSetProperty(page,'ijac,ijac) - htpSetProperty(page,'deleps,deleps) - htpSetProperty(page,'lwork,lwork) - htpSetProperty(page,'liwork,liwork) - htpSetProperty(page,'ifail,ifail) - htMakeDoneButton('"Continue",'d02rafGen) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -d02rafGen htPage == - n := htpProperty(htPage, 'n) - mnp := htpProperty(htPage, 'mnp) - np := htpProperty(htPage, 'np) - numbeg := htpProperty(htPage, 'numbeg) - nummix := htpProperty(htPage, 'nummix) - tol := htpProperty(htPage, 'tol) - init := htpProperty(htPage, 'init) - iy := htpProperty(htPage, 'iy) - ijac := htpProperty(htPage, 'ijac) - deleps := htpProperty(htPage, 'deleps) - lwork := htpProperty(htPage, 'lwork) - liwork := htpProperty(htPage, 'liwork) - ifail := htpProperty(htPage, 'ifail) - alist := htpInputAreaAlist htPage - y := alist - for i in 1..mnp repeat - xtemp := STRCONC((first y).1," ") - xList := [xtemp,:xList] - y := rest y - xstring := bcwords2liststring xList - for i in 1..n repeat - gtemp := STRCONC((first y).1," ") - gList := [gtemp,:gList] - y := rest y - gstring := bcwords2liststring gList - while y repeat - f := STRCONC((first y).1," ") - fList := [f,:fList] - y := rest y - fstring := bcwords2liststring fList - prefix := STRCONC("d02raf(",STRINGIMAGE n,", ",STRINGIMAGE mnp,", ") - prefix := STRCONC(prefix,STRINGIMAGE numbeg,", ",STRINGIMAGE nummix,", ") - prefix := STRCONC(prefix,tol,", ",STRINGIMAGE init,", ",STRINGIMAGE iy,", ") - middle:= STRCONC(STRINGIMAGE ijac,", ",STRINGIMAGE lwork,", ") - middle := STRCONC(middle,STRINGIMAGE liwork,", ",STRINGIMAGE np,", [") - middle := STRCONC(middle,xstring,"],[[0.0 for i in 1..", STRINGIMAGE mnp) - middle := STRCONC(middle,"] for j in 1..",STRINGIMAGE iy,"]") - middle := STRCONC(middle,":: Matrix DoubleFloat,",STRINGIMAGE deleps,", ") - middle := STRCONC(middle,STRINGIMAGE ifail,", (",fstring,"::Vector ") - middle := STRCONC(middle,"Expression Float)::ASP41('FCN,'JACOBF,'JACEPS),(") - middle := STRCONC(middle,gstring,"::Vector Expression Float)::ASP42('G,'JACOBG,") - middle := STRCONC(middle,"'JACGEP))") - linkGen STRCONC(prefix,middle) - - -d02rafCopOut() == - htInitPage('"D02RAF - ODEs, general nonlinear boundary value problem, finite difference technique with deferred correction, continuation facility",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\blankline ") - (text . "{\center{\em Hyperdoc interface not available for initial mesh}}") - (text . "\newline ") - (text . "{\center{\em Please use the command line.}}")) - htMakeDoneButton('"Continue",'d02raf) - htShowPage() -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} |