aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/d02routine.spad.pamphlet
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-09-20 06:29:26 +0000
committerdos-reis <gdr@axiomatics.org>2011-09-20 06:29:26 +0000
commit255be06767355e3b41acd75990c6b90270b8f2bd (patch)
tree0a032d40d7cb2213e206d70beb23dc74ccf4a230 /src/algebra/d02routine.spad.pamphlet
parent12c856f9901ef3d6d82fb99855ecdf3e0b91484b (diff)
downloadopen-axiom-255be06767355e3b41acd75990c6b90270b8f2bd.tar.gz
* algebra/asp.spad.pamphlet: Remove.
* algebra/c02.spad.pamphlet: Likewise. * algebra/c05.spad.pamphlet: Likewise. * algebra/c06.spad.pamphlet: Likewise. * algebra/d01.spad.pamphlet: Likewise. * algebra/d02.spad.pamphlet: Likewise. * algebra/d03.spad.pamphlet: Likewise. * algebra/e01.spad.pamphlet: Likewise. * algebra/e02.spad.pamphlet: Likewise. * algebra/e04.spad.pamphlet: Likewise. * algebra/f01.spad.pamphlet: Likewise. * algebra/f02.spad.pamphlet: Likewise. * algebra/f04.spad.pamphlet: Likewise. * algebra/f07.spad.pamphlet: Likewise. * algebra/s.spad.pamphlet: Likewise. * algebra/d01Package.spad.pamphlet: Likewise. * algebra/d02Package.spad.pamphlet: Likewise. * algebra/d03Package.spad.pamphlet: Likewise. * algebra/e04Package.spad.pamphlet: Likewise. * algebra/d01agents.spad.pamphlet: Likewise. * algebra/d01routine.spad.pamphlet: Likewise. * algebra/d01transform.spad.pamphlet: Likewise. * algebra/d01weights.spad.pamphlet: Likewise. * algebra/d02agents.spad.pamphlet: Likewise. * algebra/d02routine.spad.pamphlet: Likewise. * algebra/d03agents.spad.pamphlet: Likewise. * algebra/d03routine.spad.pamphlet: Likewise. * algebra/e04agents.spad.pamphlet: Likewise. * algebra/e04routine.spad.pamphlet: Likewise.
Diffstat (limited to 'src/algebra/d02routine.spad.pamphlet')
-rw-r--r--src/algebra/d02routine.spad.pamphlet424
1 files changed, 0 insertions, 424 deletions
diff --git a/src/algebra/d02routine.spad.pamphlet b/src/algebra/d02routine.spad.pamphlet
deleted file mode 100644
index 0f30183d..00000000
--- a/src/algebra/d02routine.spad.pamphlet
+++ /dev/null
@@ -1,424 +0,0 @@
-\documentclass{article}
-\usepackage{open-axiom}
-\begin{document}
-\title{\$SPAD/src/algebra d02routine.spad}
-\author{Brian Dupee}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\section{domain D02BBFA d02bbfAnnaType}
-<<domain D02BBFA d02bbfAnnaType>>=
-)abbrev domain D02BBFA d02bbfAnnaType
-++ Author: Brian Dupee
-++ Date Created: February 1995
-++ Date Last Updated: January 1996
-++ Basic Operations:
-++ Description:
-++ \axiomType{d02bbfAnnaType} is a domain of
-++ \axiomType{OrdinaryDifferentialEquationsInitialValueProblemSolverCategory}
-++ for the NAG routine D02BBF, a ODE routine which uses an
-++ Runge-Kutta method to solve a system of differential
-++ equations. The function \axiomFun{measure} measures the
-++ usefulness of the routine D02BBF for the given problem. The
-++ function \axiomFun{ODESolve} performs the integration by using
-++ \axiomType{NagOrdinaryDifferentialEquationsPackage}.
-
-
-d02bbfAnnaType():OrdinaryDifferentialEquationsSolverCategory == Result add -- Runge Kutta
-
- EDF ==> Expression DoubleFloat
- LDF ==> List DoubleFloat
- MDF ==> Matrix DoubleFloat
- DF ==> DoubleFloat
- F ==> Float
- FI ==> Fraction Integer
- EFI ==> Expression Fraction Integer
- SOCDF ==> Segment OrderedCompletion DoubleFloat
- VEDF ==> Vector Expression DoubleFloat
- VEF ==> Vector Expression Float
- EF ==> Expression Float
- VDF ==> Vector DoubleFloat
- VMF ==> Vector MachineFloat
- MF ==> MachineFloat
- ODEA ==> Record(xinit:DF,xend:DF,fn:VEDF,yinit:LDF,intvals:LDF,_
- g:EDF,abserr:DF,relerr:DF)
- RSS ==> Record(stiffnessFactor:F,stabilityFactor:F)
- INT ==> Integer
- EF2 ==> ExpressionFunctions2
-
- import d02AgentsPackage, NagOrdinaryDifferentialEquationsPackage
- import AttributeButtons
-
- accuracyCF(ode:ODEA):F ==
- b := getButtonValue("d02bbf","accuracy")$AttributeButtons
- accuracyIntensityValue := combineFeatureCompatibility(b,accuracyIF(ode))
- accuracyIntensityValue > 0.999 => 0$F
- 0.8*exp(-((10*accuracyIntensityValue)**3)$F/266)$F
-
- stiffnessCF(stiffnessIntensityValue:F):F ==
- b := getButtonValue("d02bbf","stiffness")$AttributeButtons
- 0.5*exp(-(2*combineFeatureCompatibility(b,stiffnessIntensityValue))**2)$F
-
- stabilityCF(stabilityIntensityValue:F):F ==
- b := getButtonValue("d02bbf","stability")$AttributeButtons
- 0.5 * cos(combineFeatureCompatibility(b,stabilityIntensityValue))$F
-
- expenseOfEvaluationCF(ode:ODEA):F ==
- b := getButtonValue("d02bbf","expense")$AttributeButtons
- expenseOfEvaluationIntensityValue :=
- combineFeatureCompatibility(b,expenseOfEvaluationIF(ode))
- 0.35+0.2*exp(-(2.0*expenseOfEvaluationIntensityValue)**3)$F
-
- measure(R:RoutinesTable,args:ODEA) ==
- m := getMeasure(R,d02bbf :: Symbol)$RoutinesTable
- ssf := stiffnessAndStabilityOfODEIF args
- m := combineFeatureCompatibility(m,[accuracyCF(args),
- stiffnessCF(ssf.stiffnessFactor),
- expenseOfEvaluationCF(args),
- stabilityCF(ssf.stabilityFactor)])
- [m,"Runge-Kutta Merson method"]
-
- ODESolve(ode:ODEA) ==
- i:LDF := ode.intvals
- M := inc(# i)$INT
- irelab := 0$INT
- if positive?(a := ode.abserr) then
- inc(irelab)$INT
- if positive?(r := ode.relerr) then
- inc(irelab)$INT
- if positive?(a+r) then
- tol:DF := a + r
- else
- tol := float(1,-4,10)$DF
- asp7:Union(fn:FileName,fp:Asp7(FCN)) :=
- [retract(vedf2vef(ode.fn)$ExpertSystemToolsPackage)$Asp7(FCN)]
- asp8:Union(fn:FileName,fp:Asp8(OUTPUT)) :=
- [coerce(ldf2vmf(i)$ExpertSystemToolsPackage)$Asp8(OUTPUT)]
- d02bbf(ode.xend,M,# ode.fn,irelab,ode.xinit,matrix([ode.yinit])$MDF,
- tol,-1,asp7,asp8)
-
-@
-\section{domain D02BHFA d02bhfAnnaType}
-<<domain D02BHFA d02bhfAnnaType>>=
-)abbrev domain D02BHFA d02bhfAnnaType
-++ Author: Brian Dupee
-++ Date Created: February 1995
-++ Date Last Updated: January 1996
-++ Basic Operations:
-++ Description:
-++ \axiomType{d02bhfAnnaType} is a domain of
-++ \axiomType{OrdinaryDifferentialEquationsInitialValueProblemSolverCategory}
-++ for the NAG routine D02BHF, a ODE routine which uses an
-++ Runge-Kutta method to solve a system of differential
-++ equations. The function \axiomFun{measure} measures the
-++ usefulness of the routine D02BHF for the given problem. The
-++ function \axiomFun{ODESolve} performs the integration by using
-++ \axiomType{NagOrdinaryDifferentialEquationsPackage}.
-
-d02bhfAnnaType():OrdinaryDifferentialEquationsSolverCategory == Result add -- Runge Kutta
- EDF ==> Expression DoubleFloat
- LDF ==> List DoubleFloat
- MDF ==> Matrix DoubleFloat
- DF ==> DoubleFloat
- F ==> Float
- FI ==> Fraction Integer
- EFI ==> Expression Fraction Integer
- SOCDF ==> Segment OrderedCompletion DoubleFloat
- VEDF ==> Vector Expression DoubleFloat
- VEF ==> Vector Expression Float
- EF ==> Expression Float
- VDF ==> Vector DoubleFloat
- VMF ==> Vector MachineFloat
- MF ==> MachineFloat
- ODEA ==> Record(xinit:DF,xend:DF,fn:VEDF,yinit:LDF,intvals:LDF,_
- g:EDF,abserr:DF,relerr:DF)
- RSS ==> Record(stiffnessFactor:F,stabilityFactor:F)
- INT ==> Integer
- EF2 ==> ExpressionFunctions2
-
- import d02AgentsPackage, NagOrdinaryDifferentialEquationsPackage
- import AttributeButtons
-
- accuracyCF(ode:ODEA):F ==
- b := getButtonValue("d02bhf","accuracy")$AttributeButtons
- accuracyIntensityValue := combineFeatureCompatibility(b,accuracyIF(ode))
- accuracyIntensityValue > 0.999 => 0$F
- 0.8*exp(-((10*accuracyIntensityValue)**3)$F/266)$F
-
- stiffnessCF(stiffnessIntensityValue:F):F ==
- b := getButtonValue("d02bhf","stiffness")$AttributeButtons
- 0.5*exp(-(2*combineFeatureCompatibility(b,stiffnessIntensityValue))**2)$F
-
- stabilityCF(stabilityIntensityValue:F):F ==
- b := getButtonValue("d02bhf","stability")$AttributeButtons
- 0.5 * cos(combineFeatureCompatibility(b,stabilityIntensityValue))$F
-
- expenseOfEvaluationCF(ode:ODEA):F ==
- b := getButtonValue("d02bhf","expense")$AttributeButtons
- expenseOfEvaluationIntensityValue :=
- combineFeatureCompatibility(b,expenseOfEvaluationIF(ode))
- 0.35+0.2*exp(-(2.0*expenseOfEvaluationIntensityValue)**3)$F
-
- measure(R:RoutinesTable,args:ODEA) ==
- m := getMeasure(R,d02bhf :: Symbol)$RoutinesTable
- ssf := stiffnessAndStabilityOfODEIF args
- m := combineFeatureCompatibility(m,[accuracyCF(args),
- stiffnessCF(ssf.stiffnessFactor),
- expenseOfEvaluationCF(args),
- stabilityCF(ssf.stabilityFactor)])
- [m,"Runge-Kutta Merson method"]
-
- ODESolve(ode:ODEA) ==
- irelab := 0$INT
- if positive?(a := ode.abserr) then
- inc(irelab)$INT
- if positive?(r := ode.relerr) then
- inc(irelab)$INT
- if positive?(a+r) then
- tol := max(a,r)$DF
- else
- tol:DF := float(1,-4,10)$DF
- asp7:Union(fn:FileName,fp:Asp7(FCN)) :=
- [retract(e:VEF := vedf2vef(ode.fn)$ExpertSystemToolsPackage)$Asp7(FCN)]
- asp9:Union(fn:FileName,fp:Asp9(G)) :=
- [retract(edf2ef(ode.g)$ExpertSystemToolsPackage)$Asp9(G)]
- d02bhf(ode.xend,# e,irelab,0$DF,ode.xinit,matrix([ode.yinit])$MDF,
- tol,-1,asp9,asp7)
-
-@
-\section{domain D02CJFA d02cjfAnnaType}
-<<domain D02CJFA d02cjfAnnaType>>=
-)abbrev domain D02CJFA d02cjfAnnaType
-++ Author: Brian Dupee
-++ Date Created: February 1995
-++ Date Last Updated: January 1996
-++ Basic Operations:
-++ Description:
-++ \axiomType{d02cjfAnnaType} is a domain of
-++ \axiomType{OrdinaryDifferentialEquationsInitialValueProblemSolverCategory}
-++ for the NAG routine D02CJF, a ODE routine which uses an
-++ Adams-Moulton-Bashworth method to solve a system of differential
-++ equations. The function \axiomFun{measure} measures the
-++ usefulness of the routine D02CJF for the given problem. The
-++ function \axiomFun{ODESolve} performs the integration by using
-++ \axiomType{NagOrdinaryDifferentialEquationsPackage}.
-
-d02cjfAnnaType():OrdinaryDifferentialEquationsSolverCategory == Result add -- Adams
- EDF ==> Expression DoubleFloat
- LDF ==> List DoubleFloat
- MDF ==> Matrix DoubleFloat
- DF ==> DoubleFloat
- F ==> Float
- FI ==> Fraction Integer
- EFI ==> Expression Fraction Integer
- SOCDF ==> Segment OrderedCompletion DoubleFloat
- VEDF ==> Vector Expression DoubleFloat
- VEF ==> Vector Expression Float
- EF ==> Expression Float
- VDF ==> Vector DoubleFloat
- VMF ==> Vector MachineFloat
- MF ==> MachineFloat
- ODEA ==> Record(xinit:DF,xend:DF,fn:VEDF,yinit:LDF,intvals:LDF,_
- g:EDF,abserr:DF,relerr:DF)
- RSS ==> Record(stiffnessFactor:F,stabilityFactor:F)
- INT ==> Integer
- EF2 ==> ExpressionFunctions2
-
- import d02AgentsPackage, NagOrdinaryDifferentialEquationsPackage
-
- accuracyCF(ode:ODEA):F ==
- b := getButtonValue("d02cjf","accuracy")$AttributeButtons
- accuracyIntensityValue := combineFeatureCompatibility(b,accuracyIF(ode))
- accuracyIntensityValue > 0.9999 => 0$F
- 0.6*(cos(accuracyIntensityValue*(pi()$F)/2)$F)**0.755
-
- stiffnessCF(ode:ODEA):F ==
- b := getButtonValue("d02cjf","stiffness")$AttributeButtons
- ssf := stiffnessAndStabilityOfODEIF ode
- stiffnessIntensityValue :=
- combineFeatureCompatibility(b,ssf.stiffnessFactor)
- 0.5*exp(-(1.1*stiffnessIntensityValue)**3)$F
-
- measure(R:RoutinesTable,args:ODEA) ==
- m := getMeasure(R,d02cjf :: Symbol)$RoutinesTable
- m := combineFeatureCompatibility(m,[accuracyCF(args), stiffnessCF(args)])
- [m,"Adams method"]
-
- ODESolve(ode:ODEA) ==
- i:LDF := ode.intvals
- if empty?(i) then
- i := [ode.xend]
- M := inc(# i)$INT
- if positive?((a := ode.abserr)*(r := ode.relerr))$DF then
- ire:String := "D"
- else
- if positive?(a) then
- ire:String := "A"
- else
- ire:String := "R"
- tol := max(a,r)$DF
- asp7:Union(fn:FileName,fp:Asp7(FCN)) :=
- [retract(e:VEF := vedf2vef(ode.fn)$ExpertSystemToolsPackage)$Asp7(FCN)]
- asp8:Union(fn:FileName,fp:Asp8(OUTPUT)) :=
- [coerce(ldf2vmf(i)$ExpertSystemToolsPackage)$Asp8(OUTPUT)]
- asp9:Union(fn:FileName,fp:Asp9(G)) :=
- [retract(edf2ef(ode.g)$ExpertSystemToolsPackage)$Asp9(G)]
- d02cjf(ode.xend,M,# e,tol,ire,ode.xinit,matrix([ode.yinit])$MDF,
- -1,asp9,asp7,asp8)
-
-@
-\section{domain D02EJFA d02ejfAnnaType}
-<<domain D02EJFA d02ejfAnnaType>>=
-)abbrev domain D02EJFA d02ejfAnnaType
-++ Author: Brian Dupee
-++ Date Created: February 1995
-++ Date Last Updated: January 1996
-++ Basic Operations:
-++ Description:
-++ \axiomType{d02ejfAnnaType} is a domain of
-++ \axiomType{OrdinaryDifferentialEquationsInitialValueProblemSolverCategory}
-++ for the NAG routine D02EJF, a ODE routine which uses a backward
-++ differentiation formulae method to handle a stiff system
-++ of differential equations. The function \axiomFun{measure} measures
-++ the usefulness of the routine D02EJF for the given problem. The
-++ function \axiomFun{ODESolve} performs the integration by using
-++ \axiomType{NagOrdinaryDifferentialEquationsPackage}.
-
-d02ejfAnnaType():OrdinaryDifferentialEquationsSolverCategory == Result add -- BDF "Stiff"
- EDF ==> Expression DoubleFloat
- LDF ==> List DoubleFloat
- MDF ==> Matrix DoubleFloat
- DF ==> DoubleFloat
- F ==> Float
- FI ==> Fraction Integer
- EFI ==> Expression Fraction Integer
- SOCDF ==> Segment OrderedCompletion DoubleFloat
- VEDF ==> Vector Expression DoubleFloat
- VEF ==> Vector Expression Float
- EF ==> Expression Float
- VDF ==> Vector DoubleFloat
- VMF ==> Vector MachineFloat
- MF ==> MachineFloat
- ODEA ==> Record(xinit:DF,xend:DF,fn:VEDF,yinit:LDF,intvals:LDF,_
- g:EDF,abserr:DF,relerr:DF)
- RSS ==> Record(stiffnessFactor:F,stabilityFactor:F)
- INT ==> Integer
- EF2 ==> ExpressionFunctions2
-
- import d02AgentsPackage, NagOrdinaryDifferentialEquationsPackage
-
- accuracyCF(ode:ODEA):F ==
- b := getButtonValue("d02ejf","accuracy")$AttributeButtons
- accuracyIntensityValue := combineFeatureCompatibility(b,accuracyIF(ode))
- accuracyIntensityValue > 0.999 => 0$F
- 0.5*exp(-((10*accuracyIntensityValue)**3)$F/250)$F
-
- intermediateResultsCF(ode:ODEA):F ==
- intermediateResultsIntensityValue := intermediateResultsIF(ode)
- i := 0.5 * exp(-(intermediateResultsIntensityValue/1.649)**3)$F
- a := accuracyCF(ode)
- i+(0.5-i)*(0.5-a)
-
- stabilityCF(ode:ODEA):F ==
- b := getButtonValue("d02ejf","stability")$AttributeButtons
- ssf := stiffnessAndStabilityOfODEIF ode
- stabilityIntensityValue :=
- combineFeatureCompatibility(b,ssf.stabilityFactor)
- 0.68 - 0.5 * exp(-(stabilityIntensityValue)**3)$F
-
- expenseOfEvaluationCF(ode:ODEA):F ==
- b := getButtonValue("d02ejf","expense")$AttributeButtons
- expenseOfEvaluationIntensityValue :=
- combineFeatureCompatibility(b,expenseOfEvaluationIF(ode))
- 0.5 * exp(-(1.7*expenseOfEvaluationIntensityValue)**3)$F
-
- systemSizeCF(args:ODEA):F ==
- (1$F - systemSizeIF(args))/2.0
-
- measure(R:RoutinesTable,args:ODEA) ==
- arg := copy args
- m := getMeasure(R,d02ejf :: Symbol)$RoutinesTable
- m := combineFeatureCompatibility(m,[intermediateResultsCF(arg),
- accuracyCF(arg),
- systemSizeCF(arg),
- expenseOfEvaluationCF(arg),
- stabilityCF(arg)])
- [m,"BDF method for Stiff Systems"]
-
- ODESolve(ode:ODEA) ==
- i:LDF := ode.intvals
- m := inc(# i)$INT
- if positive?((a := ode.abserr)*(r := ode.relerr))$DF then
- ire:String := "D"
- else
- if positive?(a) then
- ire:String := "A"
- else
- ire:String := "R"
- if positive?(a+r)$DF then
- tol := max(a,r)$DF
- else
- tol := float(1,-4,10)$DF
- asp7:Union(fn:FileName,fp:Asp7(FCN)) :=
- [retract(e:VEF := vedf2vef(ode.fn)$ExpertSystemToolsPackage)$Asp7(FCN)]
- asp31:Union(fn:FileName,fp:Asp31(PEDERV)) :=
- [retract(e)$Asp31(PEDERV)]
- asp8:Union(fn:FileName,fp:Asp8(OUTPUT)) :=
- [coerce(ldf2vmf(i)$ExpertSystemToolsPackage)$Asp8(OUTPUT)]
- asp9:Union(fn:FileName,fp:Asp9(G)) :=
- [retract(edf2ef(ode.g)$ExpertSystemToolsPackage)$Asp9(G)]
- n:INT := # ode.yinit
- iw:INT := (12+n)*n+50
- ans := d02ejf(ode.xend,m,n,ire,iw,ode.xinit,matrix([ode.yinit])$MDF,
- tol,-1,asp9,asp7,asp31,asp8)
-
-@
-\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>>
-
-<<domain D02BBFA d02bbfAnnaType>>
-<<domain D02BHFA d02bhfAnnaType>>
-<<domain D02CJFA d02cjfAnnaType>>
-<<domain D02EJFA d02ejfAnnaType>>
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}