|
JMSLTM Numerical Library 4.0 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.imsl.math.ZeroFunction
Muller's method to find the zeros of a univariate function, f(x).
ZeroFunction computes n real zeros of
a real function f. Given a user-supplied function
f(x) and an n-vector of initial guesses
, the routine uses Muller's method
to locate n real zeros of f, that
is, n real values of x for which
f(x) = 0. The routine has two convergence criteria:
the first requires that
![]()
be less than errorAbsolute, specified by the
setAbsoluteError method; the second requires that the relative
change of any two successive approximations to an
be less than ErrorRelative, specified by the
setAbsoluteError method.
Here,
![]()
is the m-th approximation to
. Let
errorAbsolute be
, and
errorRelative be
. The
criteria may be stated mathematically as follows:
Criterion 1:
![]()
Criterion 2:
![]()
"Convergence" is the satisfaction of either criterion.
| Nested Class Summary | |
static interface |
ZeroFunction.Function
Public interface for the user supplied function to ZeroFunction. |
| Constructor Summary | |
ZeroFunction()
Creates an instance of the solver. |
|
| Method Summary | |
boolean |
allConverged()
Returns true if the iterations for all of the roots have converged. |
double[] |
computeZeros(ZeroFunction.Function objectF,
double[] guess)
Returns the zeros of a univariate function. |
int |
getIterations(int nRoot)
Returns the number of iterations used to compute a root. |
void |
setAbsoluteError(double errorAbsolute)
Sets first stopping criterion. |
void |
setMaxIterations(int maxIterations)
Sets the maximum number of iterations allowed per root. |
void |
setRelativeError(double errorRelative)
Sets second stopping criterion is the relative error. |
void |
setSpread(double spread)
Sets the spread. |
void |
setSpreadTolerance(double spreadTolerance)
Sets the spread criteria for multiple zeros. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public ZeroFunction()
| Method Detail |
public boolean allConverged()
public double[] computeZeros(ZeroFunction.Function objectF,
double[] guess)
objectF - contains the function for which the zeros will be found.guess - a double array containing an initial
guess of the zeros. A zero will be found for
each point in guess.public int getIterations(int nRoot)
nRoot - an int specifying the index of the rootpublic void setAbsoluteError(double errorAbsolute)
errorAbsolute - a double value specifying the
first stopping criterion
IllegalArgumentException - is thrown if errorAbsolute
is less than 0public void setMaxIterations(int maxIterations)
maxIterations - an int specifying the
maximum number of iterations allowed
per root
IllegalArgumentException - is thrown if maxIterations
is less than zero.public void setRelativeError(double errorRelative)
errorRelative - a double value specifying the
second stopping criterion
IllegalArgumentException - is thrown if errorRelative
is less than 0 or greater than 1public void setSpread(double spread)
spread - is the new spread. Its default value is 1.0.setSpreadTolerance(double)public void setSpreadTolerance(double spreadTolerance)
x[i] has been computed and
spreadTolerance, where
x[j] is a previously computed zero, then the computation is restarted with
a guess equal to x[i]+spread.
The default value for spreadTolerance is 1.0e-5.
spreadTolerance - a double value specifying
the spread tolerance
IllegalArgumentException - is thrown if spreadTolerance
is less than zero.
|
JMSLTM Numerical Library 4.0 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||