GearsBDFWithNordsieckState Type

Implements Gear's method for integration of stiff ordinary differential equations with step size and order adjustments, using Nordsieck's state.

References:

[1] Byrne and Hindmarsh, A Polyalgorithm for the Numerical Solution of Ordinary Differential Equations, 1975, .

Constructors

Constructor Description

GearsBDFWithNordsieckState()

Full Usage: GearsBDFWithNordsieckState()

Instance members

Instance member Description

this.GetInterpolatedSolutionPointVolatile

Full Usage: this.GetInterpolatedSolutionPointVolatile

Parameters:
    x : float - The x value. Must be in the interval [X-StepSize, X].

Returns: float[] The interpolated y values. The elements of the array must not be altered, and are intended for immediate use only.

Gets you an interpolated volative solution point during the enumeration of the solution points. The returned array must not be modified and has to be immediately consumed, since it is changed in the course of the next ODE evaluation.

x : float

The x value. Must be in the interval [X-StepSize, X].

Returns: float[]

The interpolated y values. The elements of the array must not be altered, and are intended for immediate use only.

this.Initialize

Full Usage: this.Initialize

Parameters:
    x0 : float - The initial x value.
    y0 : float[] - The initial y values.
    f : Action<float, float[], float[]> - Calculation of the derivatives. First argument is x value, 2nd argument are the current y values. The 3rd argument is an array that store the derivatives.
    jacobianEvaluation : CalculateJacobian - Calculation of the jacobian. If you provide a method, this method will be used to evaluate the jacobian. Else, if no method is provided (null), the behavior depends on the further options: If MultiStepMethodOptions.IterationMethod is set to OdeIterationMethod.UseJacobian, then the jacobian is approximated using finite differences. If MultiStepMethodOptions.IterationMethod is set to OdeIterationMethod.DoNotUseJacobian, then only iteration (and not Newton-Raphson) is used to evaluate y_next, which can take longer.

Returns: GearsBDFWithNordsieckState This instance (for a convenient way to chain this method with sequence creation).

Initializes this method.

x0 : float

The initial x value.

y0 : float[]

The initial y values.

f : Action<float, float[], float[]>

Calculation of the derivatives. First argument is x value, 2nd argument are the current y values. The 3rd argument is an array that store the derivatives.

jacobianEvaluation : CalculateJacobian

Calculation of the jacobian. If you provide a method, this method will be used to evaluate the jacobian. Else, if no method is provided (null), the behavior depends on the further options: If MultiStepMethodOptions.IterationMethod is set to OdeIterationMethod.UseJacobian, then the jacobian is approximated using finite differences. If MultiStepMethodOptions.IterationMethod is set to OdeIterationMethod.DoNotUseJacobian, then only iteration (and not Newton-Raphson) is used to evaluate y_next, which can take longer.

Returns: GearsBDFWithNordsieckState

This instance (for a convenient way to chain this method with sequence creation).

this.Initialize

Full Usage: this.Initialize

Parameters:
    x0 : float - The starting value of the independed variable x.
    initDerivatives : float[][] - The starting value of the 0th .. kth derivatives of y, i.e. y, dy/dx, d2y/dx2, etc..
    f : Action<float, float[], float[]> - The function used to evaluate the derivatives dy/dx.
    jacobianEvaluation : CalculateJacobian - The function used to evaluate the jacobian.

Returns: GearsBDFWithNordsieckState This instance.

This initialization method is intended for debugging and testing purposes only, because you will need the derivatives up to the order k at the initial point.

x0 : float

The starting value of the independed variable x.

initDerivatives : float[][]

The starting value of the 0th .. kth derivatives of y, i.e. y, dy/dx, d2y/dx2, etc..

f : Action<float, float[], float[]>

The function used to evaluate the derivatives dy/dx.

jacobianEvaluation : CalculateJacobian

The function used to evaluate the jacobian.

Returns: GearsBDFWithNordsieckState

This instance.

InvalidOperationException ODE is already initialized!

this.NumberOfJacobianEvaluations

Full Usage: this.NumberOfJacobianEvaluations

Returns: int

Gets the number of jacobian evaluations so far.

Returns: int

this.NumberOfStepsTaken

Full Usage: this.NumberOfStepsTaken

Returns: int

Gets the number of steps taken so far.

Returns: int