MidpointIntegrator<T> Class

Represents a numerical integrator that uses the mid-point rule.

Definition

Namespace: Numerics.NET.Calculus.Generic
Assembly: Numerics.NET.Generic (in Numerics.NET.Generic.dll) Version: 9.0.1
C#
public sealed class MidpointIntegrator<T> : NumericalIntegrator<T>
where T : Object, INumber<T>
Inheritance
Object  →  ManagedIterativeAlgorithm<T, T, SolutionReport<T, T>>  →  IterativeAlgorithm<T>  →  NumericalIntegrator<T>  →  MidpointIntegrator<T>

Type Parameters

T

Remarks

The right point rule is one of the simplest numerical integration algorithms around. The interval is divided into smaller intervals, and the function value in the middle of the subinterval is taken as an approximation for the function over the entire subinterval.

This algorithm is of order 1. In each iteration, the number of points is doubled. The difference between successive approximations is taken as the estimate for the integration error.

Because the order of the algorithm is so low, use of this algorithm is not generally recommended for general use. The fact that previous integration points are not re-used makes this algorithm extra inefficient. However, it does provide a unique feature in that can produce absolute bounds on the value of the integral of some functions. It produces an upper bound for concave integrands, and a lower bound for convex integrands. Complementary bounds are produced by the TrapezoidIntegrator<T>.

Constructors

MidpointIntegrator<T> Constructs a new MidpointIntegrator<T> object.

Properties

AbsoluteTolerance Gets or sets the absolute tolerance used in the convergence test.
(Inherited from IterativeAlgorithm<T>)
ConvergenceCriterion Gets or sets a value specifying the criterion that is to be used in the convergence test for the algorithm.
(Inherited from IterativeAlgorithm<T>)
ConvergenceTest Gets the convergence test for the algorithm.
(Inherited from IterativeAlgorithm<T>)
ConvergenceTests Gets the collection of convergence tests for the algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
EstimatedError Gets a value indicating the size of the absolute error of the result.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
EvaluationsNeeded Gets the number of evaluations needed to execute the algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
HasSharedDegreeOfParallelism Indicates whether the degree of parallelism is a property that is shared across instances.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
Integrand Gets or sets the function to integrate.
(Inherited from NumericalIntegrator<T>)
IterationsNeeded Gets the number of iterations needed by the algorithm to reach the desired accuracy.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
LowerBound Gets or sets the lower bound of the integration interval.
(Inherited from NumericalIntegrator<T>)
MaxDegreeOfParallelism Gets or sets the maximum degree of parallelism enabled by this instance.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
MaxEvaluations Gets or sets the maximum number of evaluations during the calculation.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
MaxIterationsGets or sets the maximum number of iterations to use when approximating the roots of the target function.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
MinIterations Gets or sets the minimum iterations that have to be performed.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
Order Gets the order of the numerical integrator.
(Overrides NumericalIntegrator<T>.Order)
ParallelOptions Gets or sets the configuration for the parallel behavior of the algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
RelativeTolerance Gets or sets the relative tolerance used in the convergence test.
(Inherited from IterativeAlgorithm<T>)
Result Gets the result of an algorithm after it has executed.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
SolutionReport Gets the result of an algorithm after it has executed.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
Status Gets the AlgorithmStatus following an execution of the algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
ThrowExceptionOnFailure Gets or sets whether to throw an exception when the algorithm fails to converge.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
UpperBound Gets or sets the upper bound of the integration interval.
(Inherited from NumericalIntegrator<T>)

Methods

Clone Returns a copy of this numerical integrator object.
(Inherited from NumericalIntegrator<T>)
EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetTypeGets the Type of the current instance.
(Inherited from Object)
Integrate() Numerically integrates a function of one variable.
(Inherited from NumericalIntegrator<T>)
Integrate(ParallelOptions) Numerically integrates a function of one variable.
(Inherited from NumericalIntegrator<T>)
Integrate(T, T) Numerically integrates a function of one variable.
(Inherited from NumericalIntegrator<T>)
Integrate(Func<T, T>, T, T) Numerically integrates a function of one variable.
(Inherited from NumericalIntegrator<T>)
Integrate(T, T, ParallelOptions) Numerically integrates a function of one variable.
(Inherited from NumericalIntegrator<T>)
Integrate(Func<T, T>, T, T, ParallelOptions) Numerically integrates a function of one variable.
(Inherited from NumericalIntegrator<T>)
ToStringReturns a string that represents the current object.
(Inherited from Object)

See Also