|
JMSLTM Numerical Library 5.0.1 | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.imsl.math.ZeroFunction
public class 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 5.0.1 | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |