Class ZeroFunction
- All Implemented Interfaces:
Serializable,Cloneable
ZeroFunction computes n real zeros of
a real function f. Given a user-supplied function
f(x) and an n-vector of initial guesses
\(x_1, x_2, \ldots, x_n\), 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
$$\left| {f\,\left( {x_i^m } \right)} \right|$$
be less than errorAbsolute, specified by the
setAbsoluteError method; the second requires that the relative
change of any two successive approximations to an \(x_i\)
be less than ErrorRelative, specified by the
setAbsoluteError method.
Here,
$$x_i^m$$
is the m-th approximation to \(x_i\). Let
errorAbsolute be \(\varepsilon _1\), and
errorRelative be \(\varepsilon _2\). The
criteria may be stated mathematically as follows:
Criterion 1:
$$\left| {f\,\left( {x_i^m } \right)} \right| \lt \,\,\varepsilon _1$$
Criterion 2:
$$\left| {\frac{{x_i^{m + 1} - x_i^m }}{{x_i^m }}} \right|\; \lt \;\varepsilon _2$$
"Convergence" is the satisfaction of either criterion.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceDeprecated.ZeroFunctionhas been replaced byZerosFunction. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanDeprecated.Returns true if the iterations for all of the roots have converged.double[]computeZeros(ZeroFunction.Function objectF, double[] guess) Deprecated.Returns the zeros of a univariate function.intgetIterations(int nRoot) Deprecated.Returns the number of iterations used to compute a root.voidsetAbsoluteError(double errorAbsolute) Deprecated.Sets first stopping criterion.voidsetMaxIterations(int maxIterations) Deprecated.Sets the maximum number of iterations allowed per root.voidsetRelativeError(double errorRelative) Deprecated.Sets second stopping criterion is the relative error.voidsetSpread(double spread) Deprecated.Sets the spread.voidsetSpreadTolerance(double spreadTolerance) Deprecated.Sets the spread criteria for multiple zeros.
-
Constructor Details
-
ZeroFunction
public ZeroFunction()Deprecated.Creates an instance of the solver.
-
-
Method Details
-
setAbsoluteError
public void setAbsoluteError(double errorAbsolute) Deprecated.Sets first stopping criterion. A zero x[i] is accepted if \(|f(x[i])|\) is less than this tolerance. Its default value is about 1.0e-8.- Parameters:
errorAbsolute- adoublevalue specifying the first stopping criterion- Throws:
IllegalArgumentException- is thrown if errorAbsolute is less than 0
-
setRelativeError
public void setRelativeError(double errorRelative) Deprecated.Sets second stopping criterion is the relative error. A zero x[i] is accepted if the relative change of two successive approximations to x[i] is less than this tolerance. Its default value is about 1.0e-8.- Parameters:
errorRelative- adoublevalue specifying the second stopping criterion- Throws:
IllegalArgumentException- is thrown if errorRelative is less than 0 or greater than 1
-
setSpreadTolerance
public void setSpreadTolerance(double spreadTolerance) Deprecated.Sets the spread criteria for multiple zeros. If the zerox[i]has been computed and \(|x[i]-x[j]| \lt\)spreadTolerance, wherex[j]is a previously computed zero, then the computation is restarted with a guess equal tox[i]+spread. The default value for spreadTolerance is 1.0e-5.- Parameters:
spreadTolerance- adoublevalue specifying the spread tolerance- Throws:
IllegalArgumentException- is thrown if spreadTolerance is less than zero.
-
setSpread
public void setSpread(double spread) Deprecated.Sets the spread. See setSpreadTolerance.- Parameters:
spread- is the new spread. Its default value is 1.0.- See Also:
-
setMaxIterations
public void setMaxIterations(int maxIterations) Deprecated.Sets the maximum number of iterations allowed per root. Its default value is 100.- Parameters:
maxIterations- anintspecifying the maximum number of iterations allowed per root- Throws:
IllegalArgumentException- is thrown if maxIterations is less than zero.
-
getIterations
public int getIterations(int nRoot) Deprecated.Returns the number of iterations used to compute a root.- Parameters:
nRoot- anintspecifying the index of the root
-
allConverged
public boolean allConverged()Deprecated.Returns true if the iterations for all of the roots have converged. -
computeZeros
Deprecated.Returns the zeros of a univariate function.- Parameters:
objectF- contains the function for which the zeros will be found.guess- adoublearray containing an initial guess of the zeros. A zero will be found for each point in guess.
-
ZeroFunctionhas been replaced byZerosFunction.