Top Description Fields Constructors Methods
org.apache.commons.math3.analysis.solvers

public Class RegulaFalsiSolver

extends BaseSecantSolver
Class Inheritance

Implements the Regula Falsi or False position method for root-finding (approximating a zero of a univariate real function). It is a modified Secant method.

The Regula Falsi method is included for completeness, for testing purposes, for educational purposes, for comparison to other algorithms, etc. It is however not intended to be used for actual problems, as one of the bounds often remains fixed, resulting in very slow convergence. Instead, one of the well-known modified Regula Falsi algorithms can be used (Illinois or Pegasus). These two algorithms solve the fundamental issues of the original Regula Falsi algorithm, and greatly out-performs it for most, if not all, (practical) functions.

Unlike the Secant method, the Regula Falsi guarantees convergence, by maintaining a bracketed solution. Note however, that due to the finite/limited precision of Java's double type, which is used in this implementation, the algorithm may get stuck in a situation where it no longer makes any progress. Such cases are detected and result in a ConvergenceException exception being thrown. In other words, the algorithm theoretically guarantees convergence, but the implementation does not.

The Regula Falsi method assumes that the function is continuous, but not necessarily smooth.

Implementation based on the following article: M. Dowell and P. Jarratt, A modified regula falsi method for computing the root of an equation, BIT Numerical Mathematics, volume 11, number 2, pages 168-174, Springer, 1971.

Since
3.0

Field Summary

Inherited from org.apache.commons.math3.analysis.solvers.BaseSecantSolver:
DEFAULT_ABSOLUTE_ACCURACY

Constructor Summary

AccessConstructor and Description
public
RegulaFalsiSolver()

Construct a solver with default accuracy (1e-6).

public
RegulaFalsiSolver(final double
Absolute accuracy.
absoluteAccuracy
)

Construct a solver.

public
RegulaFalsiSolver(final double
Relative accuracy.
relativeAccuracy
,
final double
Absolute accuracy.
absoluteAccuracy
)

Construct a solver.

public
RegulaFalsiSolver(final double
Relative accuracy.
relativeAccuracy
,
final double
Absolute accuracy.
absoluteAccuracy
,
final double
Maximum function value error.
functionValueAccuracy
)

Construct a solver.

Method Summary

Inherited from org.apache.commons.math3.analysis.solvers.BaseSecantSolver:
doSolvesolvesolvesolve

Constructor Detail

RegulaFalsiSolverback to summary
public RegulaFalsiSolver()

Construct a solver with default accuracy (1e-6).

RegulaFalsiSolverback to summary
public RegulaFalsiSolver(final double absoluteAccuracy)

Construct a solver.

Parameters
absoluteAccuracy:double

Absolute accuracy.

RegulaFalsiSolverback to summary
public RegulaFalsiSolver(final double relativeAccuracy, final double absoluteAccuracy)

Construct a solver.

Parameters
relativeAccuracy:double

Relative accuracy.

absoluteAccuracy:double

Absolute accuracy.

RegulaFalsiSolverback to summary
public RegulaFalsiSolver(final double relativeAccuracy, final double absoluteAccuracy, final double functionValueAccuracy)

Construct a solver.

Parameters
relativeAccuracy:double

Relative accuracy.

absoluteAccuracy:double

Absolute accuracy.

functionValueAccuracy:double

Maximum function value error.