Namespaces

Types in MathNet.Numerics.RootFinding

Type RobustNewtonRaphson

Namespace MathNet.Numerics.RootFinding

Robust Newton-Raphson root-finding algorithm that falls back to bisection when overshooting or converging too slow, or to subdivision on lacking bracketing.

Static Functions

Public Static Functions

double FindRoot(Func<double, double> f, Func<double, double> df, double lowerBound, double upperBound, double accuracy, int maxIterations, int subdivision)

Find a solution of the equation f(x)=0.
Parameters
Func<double, double> f

The function to find roots from.

Func<double, double> df

The first derivative of the function to find roots from.

double lowerBound

The low value of the range where the root is supposed to be.

double upperBound

The high value of the range where the root is supposed to be.

double accuracy

Desired accuracy. The root will be refined until the accuracy or the maximum number of iterations is reached. Default 1e-8. Must be greater than 0.

int maxIterations

Maximum number of iterations. Default 100.

int subdivision

How many parts an interval should be split into for zero crossing scanning in case of lacking bracketing. Default 20.

Return
double

Returns the root with the specified accuracy.

bool TryFindRoot(Func<double, double> f, Func<double, double> df, double lowerBound, double upperBound, double accuracy, int maxIterations, int subdivision, Double& root)