Click or drag to resize

AGI.Foundation.NumericalMethods Namespace

Contains general numerical algorithms.
Classes
  ClassDescription
Public classActiveSetSequentialQuadraticProgrammingOptimizer
An optimizer that solves OptimizerMultivariableFunctions. This uses an active set method for handling inequality constraints and a quasi-Newton method for solving quadratic subproblems. There are no special provisions for reducing memory footprint or handling sparse Hessian matrices so this class is not suitable for handing large, sparse optimization problems.
Public classBulirschStoerIntegrator

An adaptive numerical integrator which uses successive subdivisions of the specified step size in order to measure the relative error in order to update the step size.

Note that the Tolerance will affect both how accurate the integrator will be as well as how small the step size will be to achieve the desired accuracy. Having a really small tolerance in relation to large dependent variables may not be best, since it may drive the step size to values near zero over the course of the integration when a higher tolerance will still yield accurate results.

Public classCombinedCostFunction
This costFunction will take the weighted and scaled sum of all of its constituent cost functions as a new cost function.
Public classCostFunctionScaling
Derived classes of this type specify the type of scaling applied to the cost function of the optimizer.
Public classCostFunctionSettings
The settings for the cost function used by an OptimizerMultivariableFunction.
Public classCovariance3By3SizeAndOrientationInterpolator
Interpolates Covariance3By3SizeAndOrientation information.
Public classCovariance6By6TwoBodyBlender
Quadratically blends nearby covariance matrices using two-body state transition matrix propagation.
Public classCubicRealPolynomial
Represents a 3rd order polynomial function of one variable with only real coefficients.
Public classDelegateBasedConstraint
A SegmentPropagatorConstraint for use with TargetedSegmentListDifferentialCorrector where the constraint value is produced by a delegate that computes the value from the specified SegmentResults.
Public classDelegateBasedCostFunction
A SegmentPropagatorCostFunction for use with TargetedSegmentListParameterOptimizer where the cost function value is produced by a delegate that computes the value from the specified SegmentResults.
Public classDelegateBasedInequalityConstraint
A SegmentPropagatorInequalityConstraint for use with TargetedSegmentListParameterOptimizer where the constraint value is produced by a delegate that computes the value from the specified SegmentResults.
Public classDelegateBasedVariableT
A SegmentPropagatorVariable that uses a delegate to get and set the relevant values in a segment's configuration.
Public classDoubleExtremumFoundEventArgs
Holds details of the LocalExtremumFound event.
Public classDoubleExtremumIndicatedEventArgs
Holds details of the LocalExtremumIndicated event.
Public classDoubleFunctionDetails
Holds details of a function to be explored with DoubleFunctionExplorer.
Public classDoubleFunctionExplorer
Explores one or more functions where the independent variable is Double and the dependent variable is double, looking for one or more threshold crossings or local extrema. Interesting findings while exploring the function are reported via events. A supplied callback is used to determine how the function is sampled.
Public classDoubleFunctionSampledEventArgs
Holds details of the FunctionSampled event.
Public classDoubleFunctionSampling
Species how sampling of a function of Double should be performed.
Public classDoubleFunctionThresholdDetails
Details of a threshold of interest in DoubleFunctionExplorer.
Public classDoubleMotionInterpolator
Interpolates and extrapolates over Motions of double values.
Public classDoubleThresholdCrossingFoundEventArgs
Holds details of the ThresholdCrossingFound event.
Public classDoubleThresholdCrossingIndicatedEventArgs
Holds details of the ThresholdCrossingIndicated event.
Public classDurationExtremumFoundEventArgs
Holds details of the LocalExtremumFound event.
Public classDurationExtremumIndicatedEventArgs
Holds details of the LocalExtremumIndicated event.
Public classDurationFunctionDetails
Holds details of a function to be explored with DurationFunctionExplorer.
Public classDurationFunctionExplorer
Explores one or more functions where the independent variable is Duration and the dependent variable is double, looking for one or more threshold crossings or local extrema. Interesting findings while exploring the function are reported via events. A supplied callback is used to determine how the function is sampled.
Public classDurationFunctionSampledEventArgs
Holds details of the FunctionSampled event.
Public classDurationFunctionSampling
Species how sampling of a function of Duration should be performed.
Public classDurationFunctionThresholdDetails
Details of a threshold of interest in DurationFunctionExplorer.
Public classDurationThresholdCrossingFoundEventArgs
Holds details of the ThresholdCrossingFound event.
Public classDurationThresholdCrossingIndicatedEventArgs
Holds details of the ThresholdCrossingIndicated event.
Public classExtremeValueOfSegmentConstraint
This constraint will take the extreme value of a Scalar computed while propagating a SegmentPropagator. No interpolation will be done on the values of the Scalar.
Public classExtremeValueOfSegmentCostFunction
This costFunction will take the extreme value of a Scalar computed while propagating a SegmentPropagator. No interpolation will be done on the values of the Scalar.
Public classExtremeValueOfSegmentInequalityConstraint
This constraint will take the extreme value of a Scalar computed while propagating a SegmentPropagator. No interpolation will be done on the values of the Scalar.
Public classGaussJacksonIntegrator
A multi-step second order integrator based on the Gauss-Jackson integration algorithm, using a RungeKuttaFehlberg78Integrator to start the integration and a summed Adams first order integration algorithm.
Public classInequalityConstraintScaling
Derived classes of this type specify the type of scaling applied to constraints in the optimizer.
Public classInequalityConstraintSettings
The settings for an inequality constraint used by an OptimizerMultivariableFunction.
Public classJulianDateExtremumFoundEventArgs
Holds details of the LocalExtremumFound event.
Public classJulianDateExtremumIndicatedEventArgs
Holds details of the LocalExtremumIndicated event.
Public classJulianDateFunctionDetails
Holds details of a function to be explored with JulianDateFunctionExplorer.
Public classJulianDateFunctionExplorer
Explores one or more functions where the independent variable is JulianDate and the dependent variable is double, looking for one or more threshold crossings or local extrema. Interesting findings while exploring the function are reported via events. A supplied callback is used to determine how the function is sampled.
Public classJulianDateFunctionSampledEventArgs
Holds details of the FunctionSampled event.
Public classJulianDateFunctionSampling
Species how sampling of a function of JulianDate should be performed.
Public classJulianDateFunctionThresholdDetails
Details of a threshold of interest in JulianDateFunctionExplorer.
Public classJulianDateThresholdCrossingFoundEventArgs
Holds details of the ThresholdCrossingFound event.
Public classJulianDateThresholdCrossingIndicatedEventArgs
Holds details of the ThresholdCrossingIndicated event.
Public classMultivariableFunctionDifferentialSolver
An intermediate base class for MultivariableFunctionSolvers that will solve a function by iteration towards a solution. In each iteration, the change of the variable values will be evaluated, applied to the previous variable values and repeated in the next iteration. An instance of a type derived from this will pass in values of Variables into a SolvableMultivariableFunction to drive them to satisfy this solver's constraints.
Public classMultivariableFunctionEvaluationAndDerivativeResultsTResults, TDerivativeResults
Contains the evaluated value and derivative results of a multivariable function.
Public classMultivariableFunctionSolver
The abstract base class for MultivariableFunctionSolvers. An instance of a type derived from this will pass in values of Variables into a SolvableMultivariableFunction to drive them to satisfy this solver's constraints.
Public classMultivariableFunctionSolverIterationResults
The results of a single iteration of a MultivariableFunctionSolver. This includes the unperturbed run of the Function and all of the perturbed runs of the Function for one time through the MultivariableFunctionSolver.
Public classMultivariableFunctionSolverResultsTIterationResults
A type storing the overall results of a MultivariableFunctionSolver. If requested, this type will store all the iteration results from an entire run of a MultivariableFunctionSolver.
Public classMultivariableFunctionSolverStepResultTResults, TDerivativeResults
The results evaluated in one iteration of a MultivariableFunctionSolver.
Public classNewtonRaphsonMultivariableFunctionSolver
A differential corrector for solving SolvableMultivariableFunctions. This uses the Newton-Raphson method for solving a function with multiple variables.
Public classNoScalingOnConstraint
The value in question is not scaled.
Public classNoScalingOnCostFunction
The value in question is not scaled.
Public classNoScalingOnInequalityConstraint
The value in question is not scaled.
Public classNoScalingOnVariable
The value in question is not scaled.
Public classNumericalIntegrator
A numerical integrator which can be used to update a set of dependent variables over a given step of an independent variable by using a differential equation defining the derivatives.
Public classNumericallyComputedMultivariableFunctionDerivativeResults
The results of an evaluation of the derivative of a SolvableMultivariableFunction when that evaluation was done with a numerical algorithm.
Public classNumericallyComputedOptimizerFunctionDerivativeResults
The results of an evaluation of the derivative of an OptimizerMultivariableFunction when that evaluation was done with a numerical algorithm.
Public classOptimizerFunctionDerivativeEvaluatedEventArgs
Public classOptimizerFunctionEvaluatedEventArgs
Public classOptimizerMultivariableFunction
A function that can be optimized by a ParameterOptimizer.
Public classOptimizerMultivariableFunctionDerivativeResults
The results of an evaluation of the derivative of a OptimizerMultivariableFunction.
Public classOptimizerMultivariableFunctionResults
Public classParameterizedDateVariable
A variable for use with TargetedSegmentListDifferentialCorrector that will change the value of a JulianDate used in the computation of some value within the segment propagators getting propagated.
Public classParameterizedDoubleVariable
A variable for use with TargetedSegmentListDifferentialCorrector that will change the value of a ValueDefinitionT used in the computation of some value within the segment propagators getting propagated where T is a double. For example, you can set the value of a threshold of a stopping condition to be the Value provided in this variable, which gets modified in the differential corrector.
Public classParameterizedDurationVariable
A variable for use with TargetedSegmentListDifferentialCorrector that will change the value of a Duration used in the computation of some value within the segment propagators getting propagated.
Public classParameterizedScalarVariable
A variable for use with TargetedSegmentListDifferentialCorrector that will change the value of a Scalar used in the computation of some value within the segment propagators getting propagated. For example, you can set the scalar density of the atmosphere to be the Value provided in this variable, which gets modified in the differential corrector.
Public classParameterOptimizer
The abstract base class for ParameterOptimizers. An instance of a type derived from this will pass in values of Variables into an OptimizerMultivariableFunction to optimize the CostFunction, match the equality constraints, and satisfy the inequality constraints.
Public classParameterOptimizerIterationResults
The results of a single iteration of a ParameterOptimizer. This includes the unperturbed run of the Function and all of the perturbed runs of the Function for one time through the ParameterOptimizer.
Public classQuadraticRealPolynomial
Represents a 2nd order polynomial function of one variable with only real coefficients.
Public classQuarticRealPolynomial
Represents a 4th order polynomial function of one variable with only real coefficients.
Public classRealValuedScalarFunctionAdapterT
Public classReciprocalOfBoundValueScalingOnInequalityConstraint
The value is scaled by the absolute value of the reciprocal of the bound value.
Public classReciprocalOfDesiredValueScalingOnConstraint
The value is scaled by the absolute value of the reciprocal of the desired value.
Public classReciprocalOfInitialValueScalingOnVariable
The value is scaled by the absolute value of the reciprocal of the initial value.
Public classReciprocalOfToleranceScalingOnConstraint
The value is scaled by the reciprocal of the absolute value of the tolerance.
Public classReciprocalOfToleranceScalingOnCostFunction
The value is scaled by the reciprocal of the absolute value of the tolerance.
Public classReciprocalOfToleranceScalingOnInequalityConstraint
The value is scaled by the reciprocal of the absolute value of the tolerance.
Public classReciprocalOfToleranceScalingOnVariable
The value is scaled by the reciprocal of the absolute value of the tolerance.
Public classRotationalMotionInterpolator
Interpolates and extrapolates rotational motion with the rotation represented as a Quaternion and derivatives represented as rotation vectors.
Public classRungeKutta4Integrator
A fourth-order fixed step Runge-Kutta integrator.
Public classRungeKuttaCashKarp45Integrator
This is a fourth order Runge-Kutta algorithm with error control based on the work of Cash and Karp which can adapt the size of the integration step based on comparing the fifth order evaluation with the fourth order evaluation to produce an estimate of the numerical error produced by a given integration step.
Public classRungeKuttaFehlberg78Integrator
This is a seventh order Runge-Kutta algorithm with error control based on the work of Fehlberg which can adapt the size of the integration step based on comparing the eight order evaluation with the seventh order evaluation to produce an estimate of the numerical error produced by a given integration step.
Public classRungeKuttaVerner89Integrator
This is an eighth order Runge-Kutta algorithm with error control based on the work of Verner which can adapt the size of the integration step based on comparing the ninth order evaluation with the eighth order evaluation to produce an estimate of the numerical error produced by a given integration step.
Public classScalarAtEndOfNumericalSegmentConstraint
This constraint will take the final value from an instance of SegmentResults and evaluate a Scalar at that time with that information. The type of the states being propagated must be NumericalPropagatorState.
Public classScalarAtEndOfSegmentConstraint
This constraint will take the initial or final value from a SegmentResults and evaluate a Scalar at that time with that information.
Public classScalarAtEndOfSegmentCostFunction
This costFunction will take the initial or final value from a SegmentResults and evaluate a Scalar at that time with that information.
Public classScalarAtEndOfSegmentInequalityConstraint
This constraint will take the initial or final value from a SegmentResults and evaluate a Scalar at that time with that information.
Public classScalarDifferenceOfSegmentConstraint
This constraint will take the initial and final values from a SegmentResults and evaluate the difference of a Scalar at those times.
Public classScalarDifferenceOfSegmentCostFunction
This costFunction will take the initial and final values from a SegmentResults and evaluate the difference of a Scalar at those times.
Public classScalarDifferenceOfSegmentInequalityConstraint
This inequality constraint will take the initial and final values from a SegmentResults and evaluate the difference of a Scalar at those times.
Public classSegmentPropagatorConstraint
The base type for constraints for use with the MultivariableFunctionSolver or ParameterOptimizer. This is the definition of the evaluator.
Public classSegmentPropagatorConstraintEvaluator
The evaluator for SegmentPropagatorConstraint used in a MultivariableFunctionSolver. Instances of this type return some value computed from the SegmentListResults of all the results of propagation up to the end of the final segment in the SegmentListPropagator that has the MultivariableFunctionSolver that has this constraint.
Public classSegmentPropagatorCostFunction
The base type for cost functions for use with the ParameterOptimizer. This is the definition of the evaluator.
Public classSegmentPropagatorCostFunctionEvaluator
The evaluator for SegmentPropagatorCostFunction used in a ParameterOptimizer. Instances of this type return some value computed from the SegmentListResults of all the results of propagation up to the end of the final segment in the SegmentListPropagator that has the ParameterOptimizer that has this cost function.
Public classSegmentPropagatorInequalityConstraint
The base type for inequality constraints for use with the ParameterOptimizer. This is the definition of the evaluator.
Public classSegmentPropagatorInequalityConstraintEvaluator
The evaluator for SegmentPropagatorInequalityConstraint used in a ParameterOptimizer. Instances of this type return some value computed from the SegmentListResults of all the results of propagation up to the end of the final segment in the SegmentListPropagator that has the ParameterOptimizer that has this constraint.
Public classSegmentPropagatorVariable
The variable base type used within a MultivariableFunctionSolver in conjunction with SegmentPropagators.
Public classSegmentPropagatorVariableEvaluator
The evaluator for SegmentPropagatorVariables that is used by a MultivariableFunctionSolver directly, or to modify some part of the configuration for the segments getting propagated in a SegmentList.
Public classSequentialQuadraticProgrammingOptimizer
An intermediate base class for ParameterOptimizers that will optimize a cost function by iteration towards a solution. In each iteration, the change of the variable values will be evaluated, applied to the previous variable values and repeated in the next iteration. An instance of a type derived from this will pass in values of Variables into an OptimizerMultivariableFunction to optimize the CostFunction, match the equality constraints, and satisfy the inequality constraints.
Public classSolvableMultivariableFunction
A function that can be solved for by a MultivariableFunctionSolver.
Public classSolvableMultivariableFunctionDerivativeResults
The results of an evaluation of the derivative of a SolvableMultivariableFunction.
Public classSolvableMultivariableFunctionResults
The result of SolvableMultivariableFunction. If your function computes more than just the values of the constraint, you will want to extend this type to store those other results.
Public classSolverConstraintScaling
Derived classes of this type specify the type of scaling applied to constraints.
Public classSolverConstraintSettings
The settings for an equality constraint used by a SolvableMultivariableFunction or an OptimizerMultivariableFunction.
Public classSolverFunctionDerivativeEvaluatedEventArgs
Public classSolverFunctionEvaluatedEventArgs
Public classSolverVariableScaling
Derived classes of this type specify the type of scaling applied to variables in the numerical function solver.
Public classSolverVariableSettings
The settings for a variable used by a SolvableMultivariableFunction.
Public classSpecifiedValueScalingOnConstraint
The value is scaled by the specified factor.
Public classSpecifiedValueScalingOnCostFunction
The value is scaled by the specified factor.
Public classSpecifiedValueScalingOnInequalityConstraint
The value is scaled by the specified factor.
Public classSpecifiedValueScalingOnVariable
The value is scaled by the specified factor.
Public classTargetedSegmentListDifferentialCorrector
When using the Segment Propagation Library, there will be times when you don't know exactly what a value should be set to. For example, it may be that you don't know when a StoppingCondition should stop, or where your satellite should start propagating from in an InitialStateSegmentT. This type provides a means to solve for such settings in your segments by using some sort of MultivariableFunctionSolver to drive the trajectory to a set of constraint values.
Public classTargetedSegmentListDifferentialCorrectorResults
The results that get returned from an evaluation of a TargetedSegmentListDifferentialCorrector.
Public classTargetedSegmentListFunction

A SolvableMultivariableFunction that can be used in a MultivariableFunctionSolver to solve for an arbitrary trajectory or other state elements based on variables and constraints.

This function will be created automatically at propagation time inside any TargetedSegmentListOperator that requires a function. As such, this will not dispose the items it is configured with.

Public classTargetedSegmentListFunctionResults
The results that get returned when a TargetedSegmentListFunction is run. This is the results of the function, not the TargetedSegmentList. It contains a SegmentListResults for the segments that it ran, and the configuration that was used for those segments.
Public classTargetedSegmentListOptimizerFunction

A OptimizerMultivariableFunction that can be used in a ParameterOptimizer to optimize an arbitrary trajectory or other state elements based on the variables, the cost function, the equality constraints, and the inequality constraints.

This function will be created automatically at propagation time inside any TargetedSegmentListOperator that requires a function. As such, this will not dispose the items it is configured with.

Public classTargetedSegmentListOptimizerFunctionResults
The results that get returned when a TargetedSegmentListOptimizerFunction is run. This is the results of the function, not the TargetedSegmentList. It contains a SegmentListResults for the segments that it ran, and the configuration that was used for those segments.
Public classTargetedSegmentListParameterOptimizer

Allows the constrained or unconstrained parameter optimization of trajectories by adjusting variables to minimize or maximize a cost function while satisfying equality and inequality constraints.

The parameter optimizer can be run in "differential corrector" mode with a cost function as long as at least one equality constraint is added. If a cost function is set, equality constraints are optional. Inequality constraints are always optional.

Public classTargetedSegmentListParameterOptimizerResults
The results that get returned from an evaluation of a TargetedSegmentListParameterOptimizer.
Public classTimeIntervalFinder
Finds the time intervals during which a constraint on a function of time is satisfied. This is a convenient way to use the capabilities of JulianDateFunctionExplorer.
Public classTranslationalMotionInterpolator
Interpolates and extrapolates translational motion represented as Cartesian coordinates.
Delegates
  DelegateDescription
Public delegateActiveSetSequentialQuadraticProgrammingOptimizerConvergenceChecker
A function that tests the convergence of the optimizer by comparing the results of the current iteration with the results of the previous iteration.
Public delegateDelegateBasedConstraintCallback
The delegate type used by the DelegateBasedConstraint. This must extract the value from the results to compare to the DesiredValue of the constraint in a TargetedSegmentListDifferentialCorrector.
Public delegateDelegateBasedCostFunctionCallback
The delegate type used by the DelegateBasedCostFunction. This must extract the value from the results to minimize or maximize in a TargetedSegmentListParameterOptimizer.
Public delegateDelegateBasedInequalityConstraintCallback
The delegate type used by the DelegateBasedInequalityConstraint. This must extract the value from the results to compare to the BoundValue of the constraint in a TargetedSegmentListParameterOptimizer.
Public delegateDoubleSampleSuggestionCallback
A callback that is invoked to determine the next Variable at which DoubleFunctionExplorer samples a function.
Public delegateDoubleSimpleFunction
A delegate that takes a Double and returns a double.
Public delegateDurationSampleSuggestionCallback
A callback that is invoked to determine the next duration at which DurationFunctionExplorer samples a function.
Public delegateDurationSimpleFunction
A delegate that takes a Duration and returns a double.
Public delegateJulianDateSampleSuggestionCallback
A callback that is invoked to determine the next date at which JulianDateFunctionExplorer samples a function.
Public delegateJulianDateSimpleFunction
A delegate that takes a JulianDate and returns a double.
Public delegateRealValuedScalarFunction
A univariate, real valued, scalar function of a variable of type double.
Public delegateRealValuedScalarFunctionT
A real valued, scalar function of a variable of type T. The function may be either univariate or multivariate, based on the dimensionality of T.
Public delegateSetVariableCallbackT
The setter delegate for the DelegateBasedVariableT. You will want to apply the currentValue to the appropriate element in the configurationToModify.
Enumerations
  EnumerationDescription
Public enumerationCostFunctionGoal
Specifies whether the cost function should be minimized or maximized.
Public enumerationDerivativeMode
An enumeration indicating the mode in which to calculate derivatives. This is used by certain integrators to optimize performance by only computing "principal" derivatives at points in an algorithm where approximations can be made without much error while improving performance. "Perturbation" derivatives are then held constant instead of reevaluating potentially expensive computations.
Public enumerationEndsOfSegment
Specifies if the initial state or final state of a segment should be considered. Note that initial and final mean the initial point that propagation started from and the final point propagated, not initial and final in a time sense.
Public enumerationExtremumType
Indicates whether an extremum is a minimum or a maximum.
Public enumerationFiniteDifferenceMethod
When numerically computing the derivative of a function, this will indicate if the finite difference method should be forward, backwards or central.
Public enumerationFunctionSegmentSlope
Indicates the slope of a segment of a function.
Public enumerationGaussJacksonCorrectionMode
Indicates whether to use the full derivative function when computing corrections or whether to use only "fast" derivatives when computing corrections. For more details on "fast" and "slow" derivatives, see DependentVariableDerivatives.
Public enumerationInequalityBoundType
Specifies whether the inequality function value must be greater than or equal to (lower bound) or less than or equal to (upper bound) the BoundValue.
Public enumerationIntegrationSense
Indicates whether the integration proceeds with the independent variable increasing or decreasing.
Public enumerationInterpolationAlgorithmType
Indicates a type of interpolation algorithm to use when interpolating data.
Public enumerationKindOfStepSize
Indicates what kind of behavior the step size will have during integration.
Public enumerationScalarConstraintDifference
Specifies the manner in which the difference is computed. This applies to the scalar, ScalarDifferenceOfSegmentConstraint.
Public enumerationStepSizeInformation
Indicates the behavior of the size of an integration step produced by an integrator.