Click or drag to resize

AGI.Foundation.NumericalMethods.Advanced Namespace

Contains additional advanced numerical algorithms and supporting types.
Classes
  ClassDescription
Public classAdaptiveNumericalIntegrator
Base class for all NumericalIntegrator objects who can use error information produced during integration to adapt the size of the step in order to adjust the amount of error introduced into the dependent variables over successive integration steps. This also allows varying the size of the step to arrive at a final stopping time.
Public classBrentFindExtremum
Locates a local extremum (minimum or maximum) of a function using the Brent algorithm.
Public classBrentFindRoot
Locates the root of a function using the Van Wijngaarden, Dekker, Brent algorithm.
Public classBurdenFairesAdaptiveQuadrature
An adaptive quadrature numerical integration utility based on Simpson's method.
Public classCombinatorics
A tool for computing various quantities associated with combinations of objects associated with a finite or countable set of discrete items.
Public classDependentVariableDerivatives
Defines a set of first order differential equations used by a NumericalIntegrator to advance a set of dependent variables over an independent variable step.
Public classDependentVariableDifferentialEquation
An adapter for an OrdinaryDifferentialEquationSystem for use with a NumericalIntegrator. This allows a user to define a function representing a system of differential equations and integrate it over an independent variable.
Public classDoubleFunctionCollection
A collection of functions to be explored by DoubleFunctionExplorer.
Public classDoubleFunctionExplorerProgress
Public classDoubleFunctionExtremumFound
A finding by DoubleFunctionExplorer that a function has a local extremum at a specific Variable.
Public classDoubleFunctionExtremumIndicated
A finding by DoubleFunctionExplorer that a function has a local extremum indicated by three samples.
Public classDoubleFunctionFinding
The base class for findings of the DoubleFunctionExplorer, such as a threshold crossing or an extremum.
Public classDoubleFunctionThresholdCollection
A collection of function thresholds.
Public classDoubleFunctionThresholdCrossingFound
A finding by DoubleFunctionExplorer that a function crossed a threshold at a specific Variable.
Public classDoubleFunctionThresholdCrossingIndicated
A finding by DoubleFunctionExplorer that a threshold crossing is indicated somewhere between two Variables, because the function values are on opposite sides of the threshold at the two Variables. The precise Variable at which the function crosses the threshold may not yet be known.
Public classDurationFunctionCollection
A collection of functions to be explored by DurationFunctionExplorer.
Public classDurationFunctionExplorerProgress
Public classDurationFunctionExtremumFound
A finding by DurationFunctionExplorer that a function has a local extremum at a specific duration.
Public classDurationFunctionExtremumIndicated
A finding by DurationFunctionExplorer that a function has a local extremum indicated by three samples.
Public classDurationFunctionFinding
The base class for findings of the DurationFunctionExplorer, such as a threshold crossing or an extremum.
Public classDurationFunctionThresholdCollection
A collection of function thresholds.
Public classDurationFunctionThresholdCrossingFound
A finding by DurationFunctionExplorer that a function crossed a threshold at a specific duration.
Public classDurationFunctionThresholdCrossingIndicated
A finding by DurationFunctionExplorer that a threshold crossing is indicated somewhere between two durations, because the function values are on opposite sides of the threshold at the two durations. The precise duration at which the function crosses the threshold may not yet be known.
Public classHermitePolynomialApproximation
A technique for polynomial interpolation and extrapolation using a general form of Hermite's algorithm that is valid for any input order.
Public classInterpolationAlgorithm
A type containing an algorithm that can interpolate the value of a function for a new independent variable value from a list of known values of the function at different independent variable values.
Public classJulianDateFunctionCollection
A collection of functions to be explored by JulianDateFunctionExplorer.
Public classJulianDateFunctionExplorerProgress
Public classJulianDateFunctionExtremumFound
A finding by JulianDateFunctionExplorer that a function has a local extremum at a specific date.
Public classJulianDateFunctionExtremumIndicated
A finding by JulianDateFunctionExplorer that a function has a local extremum indicated by three samples.
Public classJulianDateFunctionFinding
The base class for findings of the JulianDateFunctionExplorer, such as a threshold crossing or an extremum.
Public classJulianDateFunctionThresholdCollection
A collection of function thresholds.
Public classJulianDateFunctionThresholdCrossingFound
A finding by JulianDateFunctionExplorer that a function crossed a threshold at a specific date.
Public classJulianDateFunctionThresholdCrossingIndicated
A finding by JulianDateFunctionExplorer that a threshold crossing is indicated somewhere between two dates, because the function values are on opposite sides of the threshold at the two dates. The precise date at which the function crosses the threshold may not yet be known.
Public classLagrangeOrbitVariationOfParameters
Uses variation of parameters (VOP) with a two-body propagator to interpolate orbital positions.
Public classLagrangePolynomialApproximation
A technique for polynomial interpolation using Lagrange's algorithm.
Public classLinearApproximation
A technique for Linear Interpolation.
Public classMultipleStepIntegrator
A subtype of integrator which saves multiple steps of derivative data for more accurate integration.
Public classMultivariableFunctionSolverWarning
When a MultivariableFunctionSolver for some reason doesn't succeed or encounters another issue that is not critical enough to throw an Exception, one of these warning objects can be created to let the user know what happened.
Public classMultivariableFunctionWarning
A warning for when a SolvableMultivariableFunction being run in a MultivariableFunctionSolver encounters a problem due to a solver nested in the function having a problem.
Public classNewtonFindRoot
Locates the root of a function using the Newton-Raphson method.
Public classOrdinaryDifferentialEquationSystem
Describes a system of ordinary differential equations.
Public classPartialDerivativesEvaluator
An interface for an evaluator that takes a JulianDate, order, and list of inputs and returns the partial derivatives of itself with respect to those inputs.
Public classPartialDerivativesFixed

An object with fixed partial derivatives.

PartialDerivativesFixed and PartialDerivativesSum are meant as types to be used during the creation of a PartialDerivativesEvaluator. For example a PartialDerivativesFixed is used to represent an identity partial or a partial with zero partial derivatives, and a PartialDerivativesSum is used to aggregate the partial derivatives of different terms of within a type. You generally should not use either of these types as permanent objects which exist outside of a call to produce an evaluator.

Public classPartialDerivativesSum

An IPartialDifferentiable which produces an evaluator which calculates the resulting partial derivative from a summation of a list of additional IPartialDifferentiable.

PartialDerivativesFixed and PartialDerivativesSum are meant as types to be used during the creation of a PartialDerivativesEvaluator. For example a PartialDerivativesFixed is used to represent a dependent variable with zero partial derivatives, and a PartialDerivativesSum is used to aggregate the partial derivatives of different terms within a type. You generally should not use either of these types as permanent objects which exist outside of a call to produce an evaluator.

Public classRealPolynomial
Represents a polynomial function of one variable with only real coefficients.
Public classRungeKuttaAdaptiveStepIntegrator
Defines a Runge-Kutta integrator which can adapt the size of its steps based on the integration error.
Public classRungeKuttaAlgorithm
The basic Runge-Kutta integration algorithm used by the integrators, it's Butcher Tableau, and the derivative information computed during integration.

y[n+1] = y[n] + h * Sum(i=0 to s){ b[i]*k[i] }

k[i] = f(t[n] + c[i]*h, y[n] + Sum(j=0 to i-1){ a[i,j] * k[j] } )

Public classRungeKuttaFixedStepIntegrator
Defines a Runge-Kutta integrator with a fixed step size.
Public classSolvableMultivariableFunctionOperations
A set of common methods for using a SolvableMultivariableFunction.
Public classTimeIntervalFinderProgress
Contains additional information reported to ReportProgress(Int32, Object) by TimeIntervalFinder.
Interfaces
  InterfaceDescription
Public interfaceIDoubleFunctionSampler
An interface to an object that controls how a function of a Double is sampled.
Public interfaceIDurationFunctionSampler
An interface to an object that controls how a function of a Duration is sampled.
Public interfaceIJulianDateFunctionSampler
An interface to an object that controls how a function of a JulianDate is sampled.
Public interfaceIPartialDifferentiable
Classes that implement this interface represent values which have partial derivatives associated with them, and contain the method GetPartialDerivativesEvaluator(IListIPartialDifferentiable, EvaluatorGroup) to produce an evaluator to calculate those partial derivatives.
Delegates
  DelegateDescription
Public delegateBurdenFairesAdaptiveQuadratureIntegrand
The function to be integrated.
Public delegateOrdinaryDifferentialEquationFunction
A multivariate, vector function representing a set of ordinary differential equations.
Enumerations
  EnumerationDescription
Public enumerationBehaviorWhenOnThreshold
Indicates the behavior of a function explorer such as JulianDateFunctionExplorer when a function value exactly equals a threshold value.
Public enumerationBracketToward
Defines the behavior of a root finder such as BrentFindRoot when a sampled function value exactly equals zero and the root finder's ConvergenceCriteria requires convergence on the independent variable.
Public enumerationBrentSolutionType
Indicates on which side of zero a solution must be found.
Public enumerationConvergenceCriteria
Specifies the criteria to be used in determining convergence.
Public enumerationExtremumKind
Enumerates possible extremum types.
Public enumerationNewtonRootType
Indicates the type of Root held by a NewtonFindRoot.
Public enumerationThresholdCrossingSolutionType
Indicates on which side of threshold crossing a solution must be found.