|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.math3.analysis.solvers.BaseAbstractUnivariateSolver<PolynomialFunction>
org.apache.commons.math3.analysis.solvers.AbstractPolynomialSolver
org.apache.commons.math3.analysis.solvers.LaguerreSolver
public class LaguerreSolver
Implements the
Laguerre's Method for root finding of real coefficient polynomials.
For reference, see
A First Course in Numerical Analysis
ISBN 048641454X, chapter 8.
Laguerre's method is global in the sense that it can start with any initial
approximation and be able to solve all roots from that point.
The algorithm requires a bracketing condition.
Nested Class Summary | |
---|---|
private class |
LaguerreSolver.ComplexSolver
Class for searching all (complex) roots. |
Field Summary | |
---|---|
private LaguerreSolver.ComplexSolver |
complexSolver
Complex solver. |
private static double |
DEFAULT_ABSOLUTE_ACCURACY
Default absolute accuracy. |
Constructor Summary | |
---|---|
LaguerreSolver()
Construct a solver with default accuracy (1e-6). |
|
LaguerreSolver(double absoluteAccuracy)
Construct a solver. |
|
LaguerreSolver(double relativeAccuracy,
double absoluteAccuracy)
Construct a solver. |
|
LaguerreSolver(double relativeAccuracy,
double absoluteAccuracy,
double functionValueAccuracy)
Construct a solver. |
Method Summary | |
---|---|
double |
doSolve()
Method for implementing actual optimization algorithms in derived classes. |
double |
laguerre(double lo,
double hi,
double fLo,
double fHi)
Find a real root in the given interval. |
Methods inherited from class org.apache.commons.math3.analysis.solvers.AbstractPolynomialSolver |
---|
getCoefficients, setup |
Methods inherited from class org.apache.commons.math3.analysis.solvers.BaseAbstractUnivariateSolver |
---|
computeObjectiveValue, getAbsoluteAccuracy, getEvaluations, getFunctionValueAccuracy, getMax, getMaxEvaluations, getMin, getRelativeAccuracy, getStartValue, incrementEvaluationCount, isBracketing, isSequence, solve, solve, solve, verifyBracketing, verifyInterval, verifySequence |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.apache.commons.math3.analysis.solvers.BaseUnivariateSolver |
---|
getAbsoluteAccuracy, getEvaluations, getFunctionValueAccuracy, getMaxEvaluations, getRelativeAccuracy, solve, solve, solve |
Field Detail |
---|
private static final double DEFAULT_ABSOLUTE_ACCURACY
private final LaguerreSolver.ComplexSolver complexSolver
Constructor Detail |
---|
public LaguerreSolver()
public LaguerreSolver(double absoluteAccuracy)
absoluteAccuracy
- Absolute accuracy.public LaguerreSolver(double relativeAccuracy, double absoluteAccuracy)
relativeAccuracy
- Relative accuracy.absoluteAccuracy
- Absolute accuracy.public LaguerreSolver(double relativeAccuracy, double absoluteAccuracy, double functionValueAccuracy)
relativeAccuracy
- Relative accuracy.absoluteAccuracy
- Absolute accuracy.functionValueAccuracy
- Function value accuracy.Method Detail |
---|
public double doSolve()
doSolve
in class BaseAbstractUnivariateSolver<PolynomialFunction>
public double laguerre(double lo, double hi, double fLo, double fHi)
LaguerreSolver.ComplexSolver.solve(Complex[],Complex)
may
not be a real zero inside [min, max]
.
For example, p(x) = x3 + 1,
with min = -2
, max = 2
, initial = 0
.
When it occurs, this code calls
LaguerreSolver.ComplexSolver.solveAll(Complex[],Complex)
in order to obtain all roots and picks up one real root.
lo
- Lower bound of the search interval.hi
- Higher bound of the search interval.fLo
- Function value at the lower bound of the search interval.fHi
- Function value at the higher bound of the search interval.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |