diff options
author | dos-reis <gdr@axiomatics.org> | 2011-09-20 06:29:26 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2011-09-20 06:29:26 +0000 |
commit | 255be06767355e3b41acd75990c6b90270b8f2bd (patch) | |
tree | 0a032d40d7cb2213e206d70beb23dc74ccf4a230 /src/algebra/d02routine.spad.pamphlet | |
parent | 12c856f9901ef3d6d82fb99855ecdf3e0b91484b (diff) | |
download | open-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.pamphlet | 424 |
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} |