Update userguide.

Some links are still broken (due to the refactoring).
This commit is contained in:
Gilles Sadowski 2024-04-05 13:08:03 +02:00
parent a368d71847
commit ffcdf39f8f
15 changed files with 298 additions and 298 deletions

View File

@ -88,13 +88,13 @@
</subsection>
<subsection name="4.3 Root-finding" href="rootfinding">
<p>
<a href="../apidocs/org/apache/commons/math4/analysis/solvers/UnivariateSolver.html">
UnivariateSolver</a>, <a href="../apidocs/org/apache/commons/math4/analysis/solvers/UnivariateDifferentiableSolver.html">
UnivariateDifferentiableSolver</a> and <a href="../apidocs/org/apache/commons/math4/analysis/solvers/PolynomialSolver.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/UnivariateSolver.html">
UnivariateSolver</a>, <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/UnivariateDifferentiableSolver.html">
UnivariateDifferentiableSolver</a> and <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/PolynomialSolver.html">
PolynomialSolver</a> provide means to find roots of
<a href="../apidocs/org/apache/commons/math4/analysis/UnivariateFunction.html">univariate real-valued functions</a>,
<a href="../apidocs/org/apache/commons/math4/analysis/differentiation/UnivariateDifferentiable.html">differentiable univariate real-valued functions</a>,
and <a href="../apidocs/org/apache/commons/math4/analysis/polynomials/PolynomialFunction.html">polynomial functions</a> respectively.
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/UnivariateFunction.html">univariate real-valued functions</a>,
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/differentiation/UnivariateDifferentiable.html">differentiable univariate real-valued functions</a>,
and <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/polynomials/PolynomialFunction.html">polynomial functions</a> respectively.
A root is the value where the function takes the value 0. Commons-Math
includes implementations of the several root-finding algorithms:
</p>
@ -102,85 +102,85 @@
<tr BGCOLOR="#CCCCFF"><td colspan="5"><font size="+1">Root solvers</font></td></tr>
<tr BGCOLOR="#EEEEFF"><font size="+1"><td>Name</td><td>Function type</td><td>Convergence</td><td>Needs initial bracketing</td><td>Bracket side selection</td></font></tr>
<tr>
<td><a href="../apidocs/org/apache/commons/math4/analysis/solvers/BisectionSolver.html">Bisection</a></td>
<td><a href="../apidocs/org/apache/commons/math4/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/BisectionSolver.html">Bisection</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td>linear, guaranteed</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="../apidocs/org/apache/commons/math4/analysis/solvers/BrentSolver.html">Brent-Dekker</a></td>
<td><a href="../apidocs/org/apache/commons/math4/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/BrentSolver.html">Brent-Dekker</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td>super-linear, guaranteed</td>
<td>yes</td>
<td>no</td>
</tr>
<tr>
<td><a href="../apidocs/org/apache/commons/math4/analysis/solvers/BracketingNthOrderBrentSolver.html">bracketing n<sup>th</sup> order Brent</a></td>
<td><a href="../apidocs/org/apache/commons/math4/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/BracketingNthOrderBrentSolver.html">bracketing n<sup>th</sup> order Brent</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td>variable order, guaranteed</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="../apidocs/org/apache/commons/math4/analysis/solvers/IllinoisSolver.html">Illinois Method</a></td>
<td><a href="../apidocs/org/apache/commons/math4/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/IllinoisSolver.html">Illinois Method</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td>super-linear, guaranteed</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="../apidocs/org/apache/commons/math4/analysis/solvers/LaguerreSolver.html">Laguerre's Method</a></td>
<td><a href="../apidocs/org/apache/commons/math4/analysis/polynomials/PolynomialFunction.html">polynomial functions</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/LaguerreSolver.html">Laguerre's Method</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/polynomials/PolynomialFunction.html">polynomial functions</a></td>
<td>cubic for simple root, linear for multiple root</td>
<td>yes</td>
<td>no</td>
</tr>
<tr>
<td><a href="../apidocs/org/apache/commons/math4/analysis/solvers/MullerSolver.html">Muller's Method</a> using bracketing to deal with real-valued functions</td>
<td><a href="../apidocs/org/apache/commons/math4/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/MullerSolver.html">Muller's Method</a> using bracketing to deal with real-valued functions</td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td>quadratic close to roots</td>
<td>yes</td>
<td>no</td>
</tr>
<tr>
<td><a href="../apidocs/org/apache/commons/math4/analysis/solvers/MullerSolver2.html">Muller's Method</a> using modulus to deal with real-valued functions</td>
<td><a href="../apidocs/org/apache/commons/math4/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/MullerSolver2.html">Muller's Method</a> using modulus to deal with real-valued functions</td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td>quadratic close to root</td>
<td>yes</td>
<td>no</td>
</tr>
<tr>
<td><a href="../apidocs/org/apache/commons/math4/analysis/solvers/NewtonRaphsonSolver.html">Newton-Raphson's Method</a></td>
<td><a href="../apidocs/org/apache/commons/math4/analysis/differentiation/UnivariateDifferentiableFunction.html">differentiable univariate real-valued functions</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/NewtonRaphsonSolver.html">Newton-Raphson's Method</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/differentiation/UnivariateDifferentiableFunction.html">differentiable univariate real-valued functions</a></td>
<td>quadratic, non-guaranteed</td>
<td>no</td>
<td>no</td>
</tr>
<tr>
<td><a href="../apidocs/org/apache/commons/math4/analysis/solvers/PegasusSolver.html">Pegasus Method</a></td>
<td><a href="../apidocs/org/apache/commons/math4/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/PegasusSolver.html">Pegasus Method</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td>super-linear, guaranteed</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="../apidocs/org/apache/commons/math4/analysis/solvers/RegulaFalsiSolver.html">Regula Falsi (false position) Method</a></td>
<td><a href="../apidocs/org/apache/commons/math4/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/RegulaFalsiSolver.html">Regula Falsi (false position) Method</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td>linear, guaranteed</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="../apidocs/org/apache/commons/math4/analysis/solvers/RiddersSolver.html">Ridder's Method</a></td>
<td><a href="../apidocs/org/apache/commons/math4/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/RiddersSolver.html">Ridder's Method</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td>super-linear</td>
<td>yes</td>
<td>no</td>
</tr>
<tr>
<td><a href="../apidocs/org/apache/commons/math4/analysis/solvers/SecantSolver.html">Secant Method</a></td>
<td><a href="../apidocs/org/apache/commons/math4/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/SecantSolver.html">Secant Method</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/UnivariateFunction.html">univariate real-valued functions</a></td>
<td>super-linear, non-guaranteed</td>
<td>yes</td>
<td>no</td>
@ -236,9 +236,9 @@
ill-conditioned problems is to be solved, this number can be decreased in order
to avoid wasting time.
<a
href="../apidocs/org/apache/commons/math4/analysis/solvers/BracketedUnivariateSolver.html">Bracketed
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/BracketedUnivariateSolver.html">Bracketed
solvers</a> also take an <a
href="../apidocs/org/apache/commons/math4/analysis/solvers/AllowedSolution.html">allowed solution</a>
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/AllowedSolution.html">allowed solution</a>
enum parameter to specify which side of the final convergence interval should be
selected as the root. It can be <code>ANY_SIDE</code>, <code>LEFT_SIDE</code>, <code>RIGHT_SIDE</code>,
<code>BELOW_SIDE</code> or <code>ABOVE_SIDE</code>. Left and right are used to specify the root along
@ -372,13 +372,13 @@ double c = UnivariateSolverUtils.forceSide(100, function,
</subsection>
<subsection name="4.4 Interpolation" href="interpolation">
<p>
A <a href="../apidocs/org/apache/commons/math4/analysis/interpolation/UnivariateInterpolator.html">
A <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/interpolation/UnivariateInterpolator.html">
UnivariateInterpolator</a> is used to find a univariate real-valued
function <code>f</code> which for a given set of ordered pairs
(<code>x<sub>i</sub></code>,<code>y<sub>i</sub></code>) yields
<code>f(x<sub>i</sub>)=y<sub>i</sub></code> to the best accuracy possible. The result
is provided as an object implementing the <a
href="../apidocs/org/apache/commons/math4/analysis/UnivariateFunction.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/UnivariateFunction.html">
UnivariateFunction</a> interface. It can therefore be evaluated at any point,
including point not belonging to the original set.
Currently, only an interpolator for generating natural cubic splines and a polynomial
@ -435,7 +435,7 @@ System.out println("f(" + interpolationX + ") = " + interpolatedY);</source>
<p>
<a href="http://en.wikipedia.org/wiki/Hermite_interpolation">Hermite interpolation</a>
is an interpolation method that can use derivatives in addition to function values at sample points. The <a
href="../apidocs/org/apache/commons/math4/analysis/interpolation/HermiteInterpolator.html">HermiteInterpolator</a>
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/interpolation/HermiteInterpolator.html">HermiteInterpolator</a>
class implements this method for vector-valued functions. The sampling points can have any spacing (there are
no requirements for a regular grid) and some points may provide derivatives while others don't provide them
(or provide derivatives to a smaller order). Points are added one at a time, as shown in the following example:
@ -454,13 +454,13 @@ System.out.println("derivative at x = 0.5: " + interpolator.derivative(0.5)[0]);
// should print "interpolation polynomial: 1 + 2 x + 4 x^2 - 4 x^3 + x^4"
System.out.println("interpolation polynomial: " + interpolator.getPolynomials()[0]);</source>
<p>
A <a href="../apidocs/org/apache/commons/math4/analysis/interpolation/BivariateGridInterpolator.html">
A <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/interpolation/BivariateGridInterpolator.html">
BivariateGridInterpolator</a> is used to find a bivariate real-valued
function <code>f</code> which for a given set of tuples
(<code>x<sub>i</sub></code>,<code>y<sub>j</sub></code>,<code>f<sub>ij</sub></code>)
yields <code>f(x<sub>i</sub>,y<sub>j</sub>)=f<sub>ij</sub></code> to the best accuracy
possible. The result is provided as an object implementing the
<a href="../apidocs/org/apache/commons/math4/analysis/BivariateFunction.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/BivariateFunction.html">
BivariateFunction</a> interface. It can therefore be evaluated at any point,
including a point not belonging to the original set.
The arrays <code>x<sub>i</sub></code> and <code>y<sub>j</sub></code> must be
@ -472,25 +472,25 @@ System.out.println("interpolation polynomial: " + interpolator.getPolynomials()[
are computed from the function values sampled on a grid, as well as the values of the
partial derivatives of the function at those grid points.
From two-dimensional data sampled on a grid, the
<a href="../apidocs/org/apache/commons/math4/analysis/interpolation/BicubicSplineInterpolator.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/interpolation/BicubicSplineInterpolator.html">
BicubicSplineInterpolator</a> computes a
<a href="../apidocs/org/apache/commons/math4/analysis/interpolation/BicubicSplineInterpolatingFunction.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/interpolation/BicubicSplineInterpolatingFunction.html">
bicubic interpolating function</a>.
Prior to computing an interpolating function, the
<a href="../apidocs/org/apache/commons/math4/analysis/interpolation/SmoothingPolynomialBicubicSplineInterpolator.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/interpolation/SmoothingPolynomialBicubicSplineInterpolator.html">
SmoothingPolynomialBicubicSplineInterpolator</a> class performs smoothing of
the data by computing the polynomial that best fits each of the one-dimensional
curves along each of the coordinate axes.
</p>
<p>
A <a href="../apidocs/org/apache/commons/math4/analysis/interpolation/TrivariateGridInterpolator.html">
A <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/interpolation/TrivariateGridInterpolator.html">
TrivariateGridInterpolator</a> is used to find a trivariate real-valued
function <code>f</code> which for a given set of tuples
(<code>x<sub>i</sub></code>,<code>y<sub>j</sub></code>,<code>z<sub>k</sub></code>,
<code>f<sub>ijk</sub></code>)
yields <code>f(x<sub>i</sub>,y<sub>j</sub>,z<sub>k</sub>)=f<sub>ijk</sub></code>
to the best accuracy possible. The result is provided as an object implementing the
<a href="../apidocs/org/apache/commons/math4/analysis/TrivariateFunction.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/TrivariateFunction.html">
TrivariateFunction</a> interface. It can therefore be evaluated at any point,
including a point not belonging to the original set.
The arrays <code>x<sub>i</sub></code>, <code>y<sub>j</sub></code> and
@ -503,41 +503,41 @@ System.out.println("interpolation polynomial: " + interpolator.getPolynomials()[
are computed from the function values sampled on a grid, as well as the values of the
partial derivatives of the function at those grid points.
From three-dimensional data sampled on a grid, the
<a href="../apidocs/org/apache/commons/math4/analysis/interpolation/TricubicSplineInterpolator.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/interpolation/TricubicSplineInterpolator.html">
TricubicSplineInterpolator</a> computes a
<a href="../apidocs/org/apache/commons/math4/analysis/interpolation/TricubicSplineInterpolatingFunction.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/interpolation/TricubicSplineInterpolatingFunction.html">
tricubic interpolating function</a>.
</p>
</subsection>
<subsection name="4.5 Integration" href="integration">
<p>
A <a href="../apidocs/org/apache/commons/math4/analysis/integration/UnivariateIntegrator.html">
A <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/integration/UnivariateIntegrator.html">
UnivariateIntegrator</a> provides the means to numerically integrate
<a href="../apidocs/org/apache/commons/math4/analysis/UnivariateFunction.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/UnivariateFunction.html">
univariate real-valued functions</a>.
Commons-Math includes implementations of the following integration algorithms: <ul>
<li><a href="../apidocs/org/apache/commons/math4/analysis/integration/RombergIntegrator.html">
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/integration/RombergIntegrator.html">
Romberg's method</a></li>
<li><a href="../apidocs/org/apache/commons/math4/analysis/integration/SimpsonIntegrator.html">
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/integration/SimpsonIntegrator.html">
Simpson's method</a></li>
<li><a href="../apidocs/org/apache/commons/math4/analysis/integration/TrapezoidIntegrator.html">
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/integration/TrapezoidIntegrator.html">
trapezoid method</a></li>
<li><a href="../apidocs/org/apache/commons/math4/analysis/integration/LegendreGaussIntegrator.html">
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/integration/LegendreGaussIntegrator.html">
Legendre-Gauss method</a></li>
</ul>
</p>
</subsection>
<subsection name="4.6 Polynomials" href="polynomials">
<p>
The <a href="../apidocs/org/apache/commons/math4/analysis/polynomials/package-summary.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/polynomials/package-summary.html">
org.apache.commons.math4.analysis.polynomials</a> package provides real
coefficients polynomials.
</p>
<p>
The <a href="../apidocs/org/apache/commons/math4/analysis/polynomials/PolynomialFunction.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/polynomials/PolynomialFunction.html">
PolynomialFunction</a> class is the most general one, using traditional
coefficients arrays. The
<a href="../apidocs/org/apache/commons/math4/analysis/polynomials/PolynomialsUtils.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/polynomials/PolynomialsUtils.html">
PolynomialsUtils</a> utility class provides static factory methods to build
Chebyshev, Hermite, Jacobi, Laguerre and Legendre polynomials. Coefficients are
computed using exact fractions so these factory methods can build polynomials
@ -546,21 +546,21 @@ System.out.println("interpolation polynomial: " + interpolator.getPolynomials()[
</subsection>
<subsection name="4.7 Differentiation" href="differentiation">
<p>
The <a href="../apidocs/org/apache/commons/math4/analysis/differentiation/package-summary.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/differentiation/package-summary.html">
org.apache.commons.math4.analysis.differentiation</a> package provides a general-purpose
differentiation framework.
</p>
<p>
The core class is <a href="../apidocs/org/apache/commons/math4/analysis/differentiation/DerivativeStructure.html">
The core class is <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/differentiation/DerivativeStructure.html">
DerivativeStructure</a> which holds the value and the differentials of a function. This class
handles some arbitrary number of free parameters and arbitrary derivation order. It is used
both as the input and the output type for the <a
href="../apidocs/org/apache/commons/math4/analysis/differentiation/UnivariateDifferentiableFunction.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/differentiation/UnivariateDifferentiableFunction.html">
UnivariateDifferentiableFunction</a> interface. Any differentiable function should implement this
interface.
</p>
<p>
The main idea behind the <a href="../apidocs/org/apache/commons/math4/analysis/differentiation/DerivativeStructure.html">
The main idea behind the <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/differentiation/DerivativeStructure.html">
DerivativeStructure</a> class is that it can be used almost as a number (i.e. it can be added,
multiplied, its square root can be extracted or its cosine computed... However, in addition to
computed the value itself when doing these computations, the partial derivatives are also computed
@ -577,7 +577,7 @@ System.out.println("interpolation polynomial: " + interpolator.getPolynomials()[
<p>
The workflow of computation of a derivatives of an expression <code>y=f(x)</code> is the following
one. First we configure an input parameter <code>x</code> of type <a
href="../apidocs/org/apache/commons/math4/analysis/differentiation/DerivativeStructure.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/differentiation/DerivativeStructure.html">
DerivativeStructure</a> so it will drive the function to compute all derivatives up to order 3 for
example. Then we compute <code>y=f(x)</code> normally by passing this parameter to the f function.At
the end, we extract from <code>y</code> the value and the derivatives we want. As we have specified
@ -667,28 +667,28 @@ System.out.println("d2g/dxdy = " + g.getPartialDerivative(1, 1);
System.out.println("d2g/dy2 = " + g.getPartialDerivative(0, 2);</source>
<p>
There are several ways a user can create an implementation of the <a
href="../apidocs/org/apache/commons/math4/analysis/differentiation/UnivariateDifferentiableFunction.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/differentiation/UnivariateDifferentiableFunction.html">
UnivariateDifferentiableFunction</a> interface. The first method is to simply write it directly using
the appropriate methods from <a href="../apidocs/org/apache/commons/math4/analysis/differentiation/DerivativeStructure.html">
the appropriate methods from <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/differentiation/DerivativeStructure.html">
DerivativeStructure</a> to compute addition, subtraction, sine, cosine... This is often quite
straigthforward and there is no need to remember the rules for differentiation: the user code only
represent the function itself, the differentials will be computed automatically under the hood. The
second method is to write a classical <a
href="../apidocs/org/apache/commons/math4/analysis/UnivariateFunction.html">UnivariateFunction</a> and to
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/UnivariateFunction.html">UnivariateFunction</a> and to
pass it to an existing implementation of the <a
href="../apidocs/org/apache/commons/math4/analysis/differentiation/UnivariateFunctionDifferentiator.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/differentiation/UnivariateFunctionDifferentiator.html">
UnivariateFunctionDifferentiator</a> interface to retrieve a differentiated version of the same function.
The first method is more suited to small functions for which user already control all the underlying code.
The second method is more suited to either large functions that would be cumbersome to write using the
<a href="../apidocs/org/apache/commons/math4/analysis/differentiation/DerivativeStructure.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/differentiation/DerivativeStructure.html">
DerivativeStructure</a> API, or functions for which user does not have control to the full underlying code
(for example functions that call external libraries).
</p>
<p>
Apache Commons Math provides one implementation of the <a
href="../apidocs/org/apache/commons/math4/analysis/differentiation/UnivariateFunctionDifferentiator.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/differentiation/UnivariateFunctionDifferentiator.html">
UnivariateFunctionDifferentiator</a> interface: <a
href="../apidocs/org/apache/commons/math4/analysis/differentiation/FiniteDifferencesDifferentiator.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/differentiation/FiniteDifferencesDifferentiator.html">
FiniteDifferencesDifferentiator</a>. This class creates a wrapper that will call the user-provided function
on a grid sample and will use finite differences to compute the derivatives. It takes care of boundaries
if the variable is not defined on the whole real line. It is possible to use more points than strictly
@ -726,22 +726,22 @@ for (double x = -10; x &lt; 10; x += 0.1) {
}</source>
<p>
Note that using <a
href="../apidocs/org/apache/commons/math4/analysis/differentiation/FiniteDifferencesDifferentiator.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/differentiation/FiniteDifferencesDifferentiator.html">
FiniteDifferencesDifferentiator</a>a> in order to have a <a
href="../apidocs/org/apache/commons/math4/analysis/differentiation/UnivariateDifferentiableFunction.html">
UnivariateDifferentiableFunction</a> that can be provided to a <a href="../apidocs/org/apache/commons/math4/analysis/solvers/NewtonRaphsonSolver.html">Newton-Raphson's</a>
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/differentiation/UnivariateDifferentiableFunction.html">
UnivariateDifferentiableFunction</a> that can be provided to a <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/NewtonRaphsonSolver.html">Newton-Raphson's</a>
solver is a very bad idea. The reason is that finite differences are not really accurate and needs lots
of additional calls to the basic underlying function. If user initially have only the basic function
available and needs to find its roots, it is <em>much</em> more accurate and <em>much</em> more
efficient to use a solver that only requires the function values and not the derivatives. A good choice is
to use <a href="../apidocs/org/apache/commons/math4/analysis/solvers/BracketingNthOrderBrentSolver.html">bracketing
to use <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/BracketingNthOrderBrentSolver.html">bracketing
n<sup>th</sup> order Brent</a> method, which in fact converges faster than <a
href="../apidocs/org/apache/commons/math4/analysis/solvers/NewtonRaphsonSolver.html">Newton-Raphson's</a> and
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/solvers/NewtonRaphsonSolver.html">Newton-Raphson's</a> and
can be configured to a highere order (typically 5) than Newton-Raphson which is an order 2 method.
</p>
<p>
Another implementation of the <a
href="../apidocs/org/apache/commons/math4/analysis/differentiation/UnivariateFunctionDifferentiator.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/differentiation/UnivariateFunctionDifferentiator.html">
UnivariateFunctionDifferentiator</a> interface is under development in the related project
<a href="http://commons.apache.org/sandbox/nabla/">Apache Commons Nabla</a>. This implementation uses
automatic code analysis and generation at binary level. However, at time of writing

View File

@ -33,12 +33,12 @@
Commons Math provides
<ul>
<li>
an <a href="../apidocs/org/apache/commons/math4/legacy/distribution/EnumeratedDistribution.html">
an <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/distribution/EnumeratedDistribution.html">
EnumeratedDistribution</a> class that represents discrete distributions of a finite,
enumerated set of values.
</li>
<li>
a <a href="../apidocs/org/apache/commons/math4/legacy/distribution/MultiVariateNormalDistribution.html">
a <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/distribution/MultiVariateNormalDistribution.html">
MultivariateNormalDistribution</a> interface that represents multivariate Gaussian
distributions.
</li>

View File

@ -53,28 +53,28 @@
<li>
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalArgumentException.html">
<code>IllegalArgumentException</code></a>:
A <a href="../apidocs/org/apache/commons/math4/exception/MathIllegalArgumentException.html">
A <a href="../commons-math-legacy-exception/apidocs/org/apache/commons/math4/legacy/exception/MathIllegalArgumentException.html">
<code>MathIllegalArgumentException</code></a> is thrown when some input
parameter fails a precondition check.
</li>
<li>
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html">
<code>IllegalStateException</code></a>:
A <a href="../apidocs/org/apache/commons/math4/exception/MathIllegalStateException.html">
A <a href="../commons-math-legacy-exception/apidocs/org/apache/commons/math4/legacy/exception/MathIllegalStateException.html">
<code>MathIllegalStateException</code></a> is thrown when some inconsistency
has been detected.
</li>
<li>
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/MathArithmeticException.html">
<code>ArithmeticException</code></a>:
A <a href="../apidocs/org/apache/commons/math4/exception/MathArithmeticException.html">
A <a href="../commons-math-legacy-exception/apidocs/org/apache/commons/math4/legacy/exception/MathArithmeticException.html">
<code>MathArithmeticException</code></a> is thrown when conditions such as
"division by zero" or "overflow" are encountered.
</li>
<li>
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/MathUnsupportedOperationException.html">
<code>UnsupportedOperationException</code></a>:
A <a href="../apidocs/org/apache/commons/math4/exception/MathUnsupportedOperationException.html">
A <a href="../commons-math-legacy-exception/apidocs/org/apache/commons/math4/legacy/exception/MathUnsupportedOperationException.html">
<code>MathUnsupportedOperationException</code></a> indicates that a feature
is missing or does not make sense in the given context.
</li>
@ -101,11 +101,11 @@
<li>Exception "context"
<p>
Every exception generated by Commons Math implements the
<a href="../apidocs/org/apache/commons/math4/exception/util/ExceptionContextProvider.html">
<a href="../commons-math-legacy-exception/apidocs/org/apache/commons/math4/legacy/exception/util/ExceptionContextProvider.html">
ExceptionContextProvider</a> interface. A call to the
<a href="../apidocs/org/apache/commons/math4/exception/util/ExceptionContextProvider.html#getContext()">
<a href="../commons-math-legacy-exception/apidocs/org/apache/commons/math4/legacy/exception/util/ExceptionContextProvider.html#getContext()">
getContext</a> method will return the
<a href="../apidocs/org/apache/commons/math4/exception/util/ExceptionContext.html">
<a href="../commons-math-legacy-exception/apidocs/org/apache/commons/math4/legacy/exception/util/ExceptionContext.html">
ExceptionContext</a> instance stored in the exception, which the
user can further customize by adding messages and/or any object.
</p>

View File

@ -30,12 +30,12 @@
</subsection>
<subsection name="17.2 Kalman Filter" href="kalman">
<p>
<a href="../apidocs/org/apache/commons/math4/filter/KalmanFilter.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/filter/KalmanFilter.html">
KalmanFilter</a> provides a discrete-time filter to estimate
a stochastic linear process.</p>
<p>A Kalman filter is initialized with a <a href="../apidocs/org/apache/commons/math4/filter/ProcessModel.html">
ProcessModel</a> and a <a href="../apidocs/org/apache/commons/math4/filter/MeasurementModel.html">
<p>A Kalman filter is initialized with a <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/filter/ProcessModel.html">
ProcessModel</a> and a <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/filter/MeasurementModel.html">
MeasurementModel</a>, which contain the corresponding transformation and noise covariance matrices.
The parameter names used in the respective models correspond to the following names commonly used
in the mathematical literature:

View File

@ -46,15 +46,15 @@
appropriate class,
</li>
<li>
call the <a href="../apidocs/org/apache/commons/math4/fitting/AbstractCurveFitter">fit</a>
with a <code>Collection</code> of <a href="../apidocs/org/apache/commons/math4/fitting/WeightedObservedPoint.html">
call the <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/AbstractCurveFitter">fit</a>
with a <code>Collection</code> of <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/WeightedObservedPoint.html">
observed data points</a> as argument, which will return an array with the parameters that
best fit the given data points.
</li>
</ul>
The list of observed data points to be passed to <code>fit</code> can be built by incrementally
adding instances to an instance of <a href="../apidocs/org/apache/commons/math4/fitting/WeightedObservedPoints.html">WeightedObservedPoints</a>,
adding instances to an instance of <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/WeightedObservedPoints.html">WeightedObservedPoints</a>,
and then retrieve the list of <code>WeightedObservedPoint</code> by calling the <code>toList</code>
method on that container.
A weight can be associated with each observed point; it allows to take into account uncertainty
@ -81,25 +81,25 @@
Fitting of specific functions are provided through the following classes:
<ul>
<li>
<a href="../apidocs/org/apache/commons/math4/fitting/PolynomialCurveFitter.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/PolynomialCurveFitter.html">
PolynomialFitter</a> fits a
<a href="../apidocs/org/apache/commons/math4/analysis/polynomials/PolynomialFunction.Parametric.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/polynomials/PolynomialFunction.Parametric.html">
polynomial</a> function.
</li>
<li>
<a href="../apidocs/org/apache/commons/math4/fitting/HarmonicCurveFitter.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/HarmonicCurveFitter.html">
HarmonicFitter</a> fits a
<a href="../apidocs/org/apache/commons/math4/analysis/function/HarmonicOscillator.Parametric.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/function/HarmonicOscillator.Parametric.html">
harmonic</a> function.
An instance of the inner class <a href="../apidocs/org/apache/commons/math4/fitting/HarmonicCurveFitter.ParameterGuesser.html">
An instance of the inner class <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/HarmonicCurveFitter.ParameterGuesser.html">
ParameterGuesser</a> can be used to retrieve initial values for the fitting procedure.
</li>
<li>
<a href="../apidocs/org/apache/commons/math4/fitting/GaussianCurveFitter.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/GaussianCurveFitter.html">
GaussianFitter</a> fits a
<a href="../apidocs/org/apache/commons/math4/analysis/function/Gaussian.Parametric.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/function/Gaussian.Parametric.html">
Gaussian</a> function.
An instance of the inner class <a href="../apidocs/org/apache/commons/math4/fitting/GaussianCurveFitter.ParameterGuesser.html">
An instance of the inner class <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/GaussianCurveFitter.ParameterGuesser.html">
ParameterGuesser</a> can be used to retrieve initial values for the fitting procedure.
</li>
</ul>
@ -129,11 +129,11 @@ final double[] coeff = fitter.fit(obs.toList());
<subsection name="13.3 General Case" href="general">
<p>
The <a href="../apidocs/org/apache/commons/math4/fitting/AbstractCurveFitter.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/AbstractCurveFitter.html">
AbstractCurveFitter</a> class provides the basic functionality for implementing other
curve fitting classes.
Users must provide their own implementation of the curve template as a class that implements
the <a href="../apidocs/org/apache/commons/math4/analysis/ParametricUnivariateFunction.html">
the <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/ParametricUnivariateFunction.html">
ParametricUnivariateFunction</a> interface.
</p>
</subsection>

View File

@ -31,15 +31,15 @@
</subsection>
<subsection name="16.2 GA Framework">
<p>
<a href="../apidocs/org/apache/commons/math4/genetics/GeneticAlgorithm.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/genetics/GeneticAlgorithm.html">
GeneticAlgorithm</a> provides an execution framework for Genetic Algorithms (GA).
<a href="../apidocs/org/apache/commons/math4/genetics/Population.html">
Populations,</a> consisting of <a href="../apidocs/org/apache/commons/math4/genetics/Chromosome.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/genetics/Population.html">
Populations,</a> consisting of <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/genetics/Chromosome.html">
Chromosomes</a> are evolved by the <code>GeneticAlgorithm</code> until a
<a href="../apidocs/org/apache/commons/math4/genetics/StoppingCondition.html">
StoppingCondition</a> is reached. Evolution is determined by <a href="../apidocs/org/apache/commons/math4/genetics/SelectionPolicy.html">
SelectionPolicy</a>, <a href="../apidocs/org/apache/commons/math4/genetics/MutationPolicy.html">
MutationPolicy</a> and <a href="../apidocs/org/apache/commons/math4/genetics/Fitness.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/genetics/StoppingCondition.html">
StoppingCondition</a> is reached. Evolution is determined by <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/genetics/SelectionPolicy.html">
SelectionPolicy</a>, <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/genetics/MutationPolicy.html">
MutationPolicy</a> and <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/genetics/Fitness.html">
Fitness</a>.
</p>
<p>
@ -62,10 +62,10 @@
<ul><li>Apply configured <code>SelectionPolicy</code> to select a pair of parents
from <code>current</code></li>
<li>With probability =
<a href="../apidocs/org/apache/commons/math4/genetics/GeneticAlgorithm.html#getCrossoverRate()">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/genetics/GeneticAlgorithm.html#getCrossoverRate()">
getCrossoverRate()</a>, apply configured <code>CrossoverPolicy</code> to parents</li>
<li>With probability =
<a href="../apidocs/org/apache/commons/math4/genetics/GeneticAlgorithm.html#getMutationRate()">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/genetics/GeneticAlgorithm.html#getMutationRate()">
getMutationRate()</a>,
apply configured <code>MutationPolicy</code> to each of the offspring</li>
<li>Add offspring individually to nextGeneration,
@ -104,27 +104,27 @@ Chromosome bestFinal = finalPopulation.getFittestChromosome();
<table>
<tr><th>Parameter</th><th>value in example</th><th>meaning</th></tr>
<tr><td>crossoverPolicy</td>
<td><a href="../apidocs/org/apache/commons/math4/genetics/OnePointCrossover.html">OnePointCrossover</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/genetics/OnePointCrossover.html">OnePointCrossover</a></td>
<td>A random crossover point is selected and the first part from each parent is copied to the corresponding
child, and the second parts are copied crosswise.</td></tr>
<tr><td>crossoverRate</td>
<td>1</td>
<td>Always apply crossover</td></tr>
<tr><td>mutationPolicy</td>
<td><a href="../apidocs/org/apache/commons/math4/genetics/RandomKeyMutation.html">RandomKeyMutation</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/genetics/RandomKeyMutation.html">RandomKeyMutation</a></td>
<td>Changes a randomly chosen element of the array representation to a random value uniformly distributed in [0,1].</td></tr>
<tr><td>mutationRate</td>
<td>.1</td>
<td>Apply mutation with probability 0.1 - that is, 10% of the time.</td></tr>
<tr><td>selectionPolicy</td>
<td><a href="../apidocs/org/apache/commons/math4/genetics/TournamentSelection.html">TournamentSelection</a></td>
<td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/genetics/TournamentSelection.html">TournamentSelection</a></td>
<td>Each of the two selected chromosomes is selected based on an n-ary tournament -- this is done by drawing
n random chromosomes without replacement from the population, and then selecting the fittest chromosome among them.</td></tr>
</table><br/>
The algorithm starts with an <code>initial</code> population of <code>Chromosomes.</code> and executes until
the specified <a href="../apidocs/org/apache/commons/math4/genetics/StoppingCondition.html">StoppingCondition</a>
the specified <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/genetics/StoppingCondition.html">StoppingCondition</a>
is reached. In the example above, a
<a href="../apidocs/org/apache/commons/math4/genetics/FixedGenerationCount.html">FixedGenerationCount</a>
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/genetics/FixedGenerationCount.html">FixedGenerationCount</a>
stopping condition is used, which means the algorithm proceeds through a fixed number of generations.
</p>
</subsection>

View File

@ -41,9 +41,9 @@
</p>
<p>
Two engines devoted to least-squares problems are available. The first one is
based on the <a href="../apidocs/org/apache/commons/math4/fitting/leastsquares/GaussNewtonOptimizer.html">
based on the <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/leastsquares/GaussNewtonOptimizer.html">
Gauss-Newton</a> method. The second one is the <a
href="../apidocs/org/apache/commons/math4/fitting/leastsquares/LevenbergMarquardtOptimizer.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/leastsquares/LevenbergMarquardtOptimizer.html">
Levenberg-Marquardt</a> method.
</p>
</subsection>
@ -67,12 +67,12 @@
</p>
<p>
The elements of the list above can be provided as an implementation of the
<a href="../apidocs/org/apache/commons/math4/fitting/leastsquares/LeastSquaresProblem.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/leastsquares/LeastSquaresProblem.html">
LeastSquaresProblem</a> interface. However, this is cumbersome to do directly, so some helper
classes are available. The first helper is a mutable builder:
<a href="../apidocs/org/apache/commons/math4/fitting/leastsquares/LeastSquaresBuilder.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/leastsquares/LeastSquaresBuilder.html">
LeastSquaresBuilder</a>. The second helper is an utility factory:
<a href="../apidocs/org/apache/commons/math4/fitting/leastsquares/LeastSquaresFactory.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/leastsquares/LeastSquaresFactory.html">
LeastSquaresFactory</a>.
</p>
<p>
@ -109,13 +109,13 @@
be available. There are two ways to provide this:
<ul>
<li>provide one
<a href="../apidocs/org/apache/commons/math4/analysis/MultivariateVectorFunction.html">MultivariateVectorFunction</a>
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/MultivariateVectorFunction.html">MultivariateVectorFunction</a>
instance for computing the components values and one
<a href="../apidocs/org/apache/commons/math4/analysis/MultivariateMatrixFunction.html">MultivariateMatrixFunction</a>
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/MultivariateMatrixFunction.html">MultivariateMatrixFunction</a>
instance for computing the components derivatives (i.e. the Jacobian matrix) with
respect to the parameters,</li>
<li>or provide one
<a href="../apidocs/org/apache/commons/math4/fitting/leastsquares/MultivariateJacobianFunction.html">MultivariateJacobianFunction</a>
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/leastsquares/MultivariateJacobianFunction.html">MultivariateJacobianFunction</a>
instance for computing both the components values and their derivatives simultaneously.</li>
</ul>
The first alternative is best suited for models which are not computationally intensive
@ -125,16 +125,16 @@
</p>
<p>
The <code>point</code> parameter of the <code>value</code> methods in the
<a href="../apidocs/org/apache/commons/math4/analysis/MultivariateVectorFunction.html">MultivariateVectorFunction</a>,
<a href="../apidocs/org/apache/commons/math4/analysis/MultivariateMatrixFunction.html">MultivariateMatrixFunction</a>,
or <a href="../apidocs/org/apache/commons/math4/fitting/leastsquares/MultivariateJacobianFunction.html">MultivariateJacobianFunction</a>
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/MultivariateVectorFunction.html">MultivariateVectorFunction</a>,
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/MultivariateMatrixFunction.html">MultivariateMatrixFunction</a>,
or <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/leastsquares/MultivariateJacobianFunction.html">MultivariateJacobianFunction</a>
interfaces will contain the parameters p<sub>k</sub>. The values will be the model components
model<sub>i</sub> and the derivatives will be the derivatives of the model components
with respect to the parameters dmodel<sub>i</sub>/dp<sub>k</sub>.
</p>
<p>
There are no requirements on how to compute value and derivatives. The
<a href="../apidocs/org/apache/commons/math4/analysis/differentiation/DerivativeStructure.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/differentiation/DerivativeStructure.html">
DerivativeStructure</a> class may be useful to compute analytically derivatives in
difficult cases, but this class is not mandated by the API which only expects the derivatives
as a Jacobian matrix containing primitive double entries.
@ -147,7 +147,7 @@
if the model functions are themselves separated, i.e. it can be used only with the first
alternative above. Setting up the <code>lazyEvaluation</code> flag to <code>true</code> in the builder
or factory and setting up the model function as one
<a href="../apidocs/org/apache/commons/math4/fitting/leastsquares/MultivariateJacobianFunction.html">MultivariateJacobianFunction</a>
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/leastsquares/MultivariateJacobianFunction.html">MultivariateJacobianFunction</a>
instance at the same time will trigger an illegal state exception telling that the model function
misses required functionality.
</p>
@ -164,7 +164,7 @@
</p>
<p>
Both ways are achieved by setting up a
<a href="../apidocs/org/apache/commons/math4/fitting/leastsquares/ParameterValidator.html">ParameterValidator</a>
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/leastsquares/ParameterValidator.html">ParameterValidator</a>
instance. The input of the value and jacobian model functions will always be the output of
the parameter validator if one exists.
</p>
@ -217,26 +217,26 @@
</p>
<p>
Convergence checking is delegated to a dedicated interface from the <code>optim</code>
package: <a href="../apidocs/org/apache/commons/math4/optim/ConvergenceChecker.html">
package: <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optim/ConvergenceChecker.html">
ConvergenceChecker</a>, parameterized with either the specific
<a href="../apidocs/org/apache/commons/math4/fitting/leastsquares/LeastSquaresProblem.Evaluation.html">Evaluation</a>
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/leastsquares/LeastSquaresProblem.Evaluation.html">Evaluation</a>
class used for least squares problems or the general
<a href="../apidocs/org/apache/commons/math4/optim/PointVectorValuePair.html">PointVectorValuePair</a>.
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optim/PointVectorValuePair.html">PointVectorValuePair</a>.
Each time convergence is checked, both the previous
and the current evaluations of the least squares problem are provided, so the checker can
compare them and decide whereas convergence has been reached or not. The predefined convergence
checker implementations that can be useful for least squares fitting are:
<ul>
<li><a href="../apidocs/org/apache/commons/math4/fitting/leastsquares/EvaluationRmsChecker.html">EvaluationRmsChecker</a>,
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/leastsquares/EvaluationRmsChecker.html">EvaluationRmsChecker</a>,
which uses only the normalized cost (square-root of the sum of squared of the residuals,
divided by the number of measurements),</li>
<li><a href="../apidocs/org/apache/commons/math4/optim/SimpleVectorValueChecker.html">SimpleVectorValueChecker</a>,
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optim/SimpleVectorValueChecker.html">SimpleVectorValueChecker</a>,
which uses the model components themselves (<em>not</em> the residuals),</li>
<li><a href="../apidocs/org/apache/commons/math4/optim/SimplePointChecker.html">SimplePointChecker&lt;PointVectorValuePair&gt;</a>,
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optim/SimplePointChecker.html">SimplePointChecker&lt;PointVectorValuePair&gt;</a>,
which uses the parameters.</li>
</ul>
Of course, users can also provide their own implementation of the
<a href="../apidocs/org/apache/commons/math4/optim/ConvergenceChecker.html">ConvergenceChecker</a>
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optim/ConvergenceChecker.html">ConvergenceChecker</a>
interface.
</p>
</subsection>
@ -246,9 +246,9 @@
Once the least squares problem has been created, using either the builder or the factory,
it is passed to an optimization engine for solving. Two engines devoted to least-squares
problems are available. The first one is
based on the <a href="../apidocs/org/apache/commons/math4/fitting/leastsquares/GaussNewtonOptimizer.html">
based on the <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/leastsquares/GaussNewtonOptimizer.html">
Gauss-Newton</a> method. The second one is the <a
href="../apidocs/org/apache/commons/math4/fitting/leastsquares/LevenbergMarquardtOptimizer.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/leastsquares/LevenbergMarquardtOptimizer.html">
Levenberg-Marquardt</a> method. For both increased readability and in order to leverage
possible future changes in the configuration, it is recommended to use the fluent-style API to
build and configure the optimizers. This means creating a first temporary version of the optimizer
@ -286,12 +286,12 @@
<p>
The <a
href="../apidocs/org/apache/commons/math4/fitting/leastsquares/LeastSquaresOptimizer.Optimum.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/leastsquares/LeastSquaresOptimizer.Optimum.html">
LeastSquaresOptimizer.Optimum</a> class is a specialized
<a href="../apidocs/org/apache/commons/math4/fitting/leastsquares/LeastSquaresProblem.Evaluation.html">Evaluation</a>
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/leastsquares/LeastSquaresProblem.Evaluation.html">Evaluation</a>
with additional methods te retrieve the number of evaluations and number of iterations performed.
The most important methods are inherited from the
<a href="../apidocs/org/apache/commons/math4/fitting/leastsquares/LeastSquaresProblem.Evaluation.html">Evaluation</a>
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fitting/leastsquares/LeastSquaresProblem.Evaluation.html">Evaluation</a>
class and correspond to the point (i.e. the parameters), cost, Jacobian, RMS, covariance ...
</p>
</subsection>

View File

@ -35,7 +35,7 @@
</subsection>
<subsection name="3.2 Real matrices" href="real_matrices">
<p>
The <a href="../apidocs/org/apache/commons/math4/linear/RealMatrix.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/linear/RealMatrix.html">
RealMatrix</a> interface represents a matrix with real numbers as
entries. The following basic matrix operations are supported:
<ul>
@ -72,18 +72,18 @@ RealMatrix pInverse = new LUDecomposition(p).getSolver().getInverse();
</p>
<p>
The three main implementations of the interface are <a
href="../apidocs/org/apache/commons/math4/linear/Array2DRowRealMatrix.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/linear/Array2DRowRealMatrix.html">
Array2DRowRealMatrix</a> and <a
href="../apidocs/org/apache/commons/math4/linear/BlockRealMatrix.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/linear/BlockRealMatrix.html">
BlockRealMatrix</a> for dense matrices (the second one being more suited to
dimensions above 50 or 100) and <a
href="../apidocs/org/apache/commons/math4/linear/SparseRealMatrix.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/linear/SparseRealMatrix.html">
SparseRealMatrix</a> for sparse matrices.
</p>
</subsection>
<subsection name="3.3 Real vectors" href="real_vectors">
<p>
The <a href="../apidocs/org/apache/commons/math4/linear/RealVector.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/linear/RealVector.html">
RealVector</a> interface represents a vector with real numbers as
entries. The following basic matrix operations are supported:
<ul>
@ -96,7 +96,7 @@ RealMatrix pInverse = new LUDecomposition(p).getSolver().getInverse();
</ul>
</p>
<p>
The <a href="../apidocs/org/apache/commons/math4/linear/RealVectorFormat.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/linear/RealVectorFormat.html">
RealVectorFormat</a> class handles input/output of vectors in a customizable
textual format.
</p>
@ -104,7 +104,7 @@ RealMatrix pInverse = new LUDecomposition(p).getSolver().getInverse();
<subsection name="3.4 Solving linear systems" href="solve">
<p>
The <code>solve()</code> methods of the <a
href="../apidocs/org/apache/commons/math4/linear/DecompositionSolver.html">DecompositionSolver</a>
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/linear/DecompositionSolver.html">DecompositionSolver</a>
interface support solving linear systems of equations of the form AX=B, either
in linear sense or in least square sense. A <code>RealMatrix</code> instance is
used to represent the coefficient matrix of the system. Solving the system is a
@ -157,11 +157,11 @@ RealVector solution = solver.solve(constants);
<table border="1" align="center">
<tr BGCOLOR="#CCCCFF"><td colspan="3"><font size="+1">Decomposition algorithms</font></td></tr>
<tr BGCOLOR="#EEEEFF"><font size="+1"><td>Name</td><td>coefficients matrix</td><td>problem type</td></font></tr>
<tr><td><a href="../apidocs/org/apache/commons/math4/linear/LUDecomposition.html">LU</a></td><td>square</td><td>exact solution only</td></tr>
<tr><td><a href="../apidocs/org/apache/commons/math4/linear/CholeskyDecomposition.html">Cholesky</a></td><td>symmetric positive definite</td><td>exact solution only</td></tr>
<tr><td><a href="../apidocs/org/apache/commons/math4/linear/QRDecomposition.html">QR</a></td><td>any</td><td>least squares solution</td></tr>
<tr><td><a href="../apidocs/org/apache/commons/math4/linear/EigenDecomposition.html">eigen decomposition</a></td><td>square</td><td>exact solution only</td></tr>
<tr><td><a href="../apidocs/org/apache/commons/math4/linear/SingularValueDecomposition.html">SVD</a></td><td>any</td><td>least squares solution</td></tr>
<tr><td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/linear/LUDecomposition.html">LU</a></td><td>square</td><td>exact solution only</td></tr>
<tr><td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/linear/CholeskyDecomposition.html">Cholesky</a></td><td>symmetric positive definite</td><td>exact solution only</td></tr>
<tr><td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/linear/QRDecomposition.html">QR</a></td><td>any</td><td>least squares solution</td></tr>
<tr><td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/linear/EigenDecomposition.html">eigen decomposition</a></td><td>square</td><td>exact solution only</td></tr>
<tr><td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/linear/SingularValueDecomposition.html">SVD</a></td><td>any</td><td>least squares solution</td></tr>
</table>
</p>
<p>
@ -196,13 +196,13 @@ RealVector solution = solver.solve(constants);
<subsection name="3.6 Non-real fields (complex, fractions ...)" href="field">
<p>
In addition to the real field, matrices and vectors using non-real <a
href="../apidocs/org/apache/commons/math4/FieldElement.html">field elements</a> can be used.
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/FieldElement.html">field elements</a> can be used.
The fields already supported by the library are:
<ul>
<li><a href="../apidocs/org/apache/commons/math4/complex/Complex.html">Complex</a></li>
<li><a href="../apidocs/org/apache/commons/math4/fraction/Fraction.html">Fraction</a></li>
<li><a href="../apidocs/org/apache/commons/math4/fraction/BigFraction.html">BigFraction</a></li>
<li><a href="../apidocs/org/apache/commons/math4/util/BigReal.html">BigReal</a></li>
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/complex/Complex.html">Complex</a></li>
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fraction/Fraction.html">Fraction</a></li>
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/fraction/BigFraction.html">BigFraction</a></li>
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/util/BigReal.html">BigReal</a></li>
</ul>
</p>
</subsection>

View File

@ -33,30 +33,30 @@
</subsection>
<subsection name="16.2 Clustering algorithms and distance measures" href="clustering">
<p>
The <a href="../apidocs/org/apache/commons/math4/ml/clustering/Clusterer.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ml/clustering/Clusterer.html">
Clusterer</a> class represents a clustering algorithm.
The following algorithms are available:
<ul>
<li><a href="../apidocs/org/apache/commons/math4/ml/clustering/KMeansPlusPlusClusterer.html">KMeans++</a>:
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ml/clustering/KMeansPlusPlusClusterer.html">KMeans++</a>:
It is based on the well-known kMeans algorithm, but uses a different method for
choosing the initial values (or "seeds") and thus avoids cases where KMeans sometimes
results in poor clusterings. KMeans/KMeans++ clustering aims to partition n observations
into k clusters in such that each point belongs to the cluster with the nearest center.
</li>
<li><a href="../apidocs/org/apache/commons/math4/ml/clustering/FuzzyKMeansClusterer.html">Fuzzy-KMeans</a>:
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ml/clustering/FuzzyKMeansClusterer.html">Fuzzy-KMeans</a>:
A variation of the classical K-Means algorithm, with the major difference that a single
data point is not uniquely assigned to a single cluster. Instead, each point i has a set
of weights u<sub>ij</sub> which indicate the degree of membership to the cluster j. The fuzzy
variant does not require initial values for the cluster centers and is thus more robust, although
slower than the original kMeans algorithm.
</li>
<li><a href="../apidocs/org/apache/commons/math4/ml/clustering/DBSCANClusterer.html">DBSCAN</a>:
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ml/clustering/DBSCANClusterer.html">DBSCAN</a>:
Density-based spatial clustering of applications with noise (DBSCAN) finds a number of
clusters starting from the estimated density distribution of corresponding nodes. The
main advantages over KMeans/KMeans++ are that DBSCAN does not require the specification
of an initial number of clusters and can find arbitrarily shaped clusters.
</li>
<li><a href="../apidocs/org/apache/commons/math4/ml/clustering/MultiKMeansPlusPlusClusterer.html">Multi-KMeans++</a>:
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ml/clustering/MultiKMeansPlusPlusClusterer.html">Multi-KMeans++</a>:
Multi-KMeans++ is a meta algorithm that basically performs n runs using KMeans++ and then
chooses the best clustering (i.e., the one with the lowest distance variance over all clusters)
from those runs.
@ -74,11 +74,11 @@
between two points (either data points or cluster centers).
The following distance measures are available:
<ul>
<li><a href="../apidocs/org/apache/commons/math4/ml/distance/CanberraDistance.html">Canberra distance</a></li>
<li><a href="../apidocs/org/apache/commons/math4/ml/distance/ChebyshevDistance.html">ChebyshevDistance distance</a></li>
<li><a href="../apidocs/org/apache/commons/math4/ml/distance/EuclideanDistance.html">EuclideanDistance distance</a></li>
<li><a href="../apidocs/org/apache/commons/math4/ml/distance/ManhattanDistance.html">ManhattanDistance distance</a></li>
<li><a href="../apidocs/org/apache/commons/math4/ml/distance/EarthMoversDistance.html">Earth Mover's distance</a></li>
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ml/distance/CanberraDistance.html">Canberra distance</a></li>
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ml/distance/ChebyshevDistance.html">ChebyshevDistance distance</a></li>
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ml/distance/EuclideanDistance.html">EuclideanDistance distance</a></li>
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ml/distance/ManhattanDistance.html">ManhattanDistance distance</a></li>
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ml/distance/EarthMoversDistance.html">Earth Mover's distance</a></li>
</ul>
</p>
</subsection>
@ -90,7 +90,7 @@
10 different clusters based on their euclidean distance.
</p>
<p>
The cluster algorithms expect a list of <a href="../apidocs/org/apache/commons/math4/ml/cluster/Clusterable.html">Clusterable</a>
The cluster algorithms expect a list of <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ml/cluster/Clusterable.html">Clusterable</a>
as input. Typically, we don't want to pollute our domain objects with interfaces from helper APIs.
Hence, we first create a wrapper object:
<source>

View File

@ -38,7 +38,7 @@
All integrators provide dense output. This means that besides computing the state vector
at discrete times, they also provide a cheap means to get both the state and its derivative
between the time steps. They do so through classes extending the
<a href="../apidocs/org/apache/commons/math4/ode/sampling/StepInterpolator.html">StepInterpolator</a>
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/sampling/StepInterpolator.html">StepInterpolator</a>
abstract class, which are made available to the user at the end of each step.
</p>
<p>
@ -83,11 +83,11 @@
</p>
<p>
The user should describe his problem in his own classes which should implement the
<a href="../apidocs/org/apache/commons/math4/ode/FirstOrderDifferentialEquations.html">FirstOrderDifferentialEquations</a>
interface (or <a href="../apidocs/org/apache/commons/math4/ode/FirstOrderFieldDifferentialEquations.html">FirstOrderFieldDifferentialEquations</a>
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/FirstOrderDifferentialEquations.html">FirstOrderDifferentialEquations</a>
interface (or <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/FirstOrderFieldDifferentialEquations.html">FirstOrderFieldDifferentialEquations</a>
interface). Then they should pass it to the integrator they prefer among all the classes that implement
the <a href="../apidocs/org/apache/commons/math4/ode/FirstOrderIntegrator.html">FirstOrderIntegrator</a>
interface (or the <a href="../apidocs/org/apache/commons/math4/ode/FirstOrderFieldIntegrator.html">FirstOrderFieldIntegrator</a>
the <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/FirstOrderIntegrator.html">FirstOrderIntegrator</a>
interface (or the <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/FirstOrderFieldIntegrator.html">FirstOrderFieldIntegrator</a>
interface). The following example shows how to implement the simple two-dimensional problem using double primitives:
<ul>
<li>y'<sub>0</sub>(t) = &#x3c9; &#xD7; (c<sub>1</sub> - y<sub>1</sub>(t))</li>
@ -137,10 +137,10 @@ dp853.integrate(ode, 0.0, y, 16.0, y); // now y contains final state at time t=1
<code>FirstOrderIntegrator.integrate</code> method, as shown by previous example. The second one
should be used when more in-depth information is needed throughout the integration process. The user
can register an object implementing the
<a href="../apidocs/org/apache/commons/math4/ode/sampling/StepHandler.html">StepHandler</a> interface or a
<a href="../apidocs/org/apache/commons/math4/ode/sampling/StepNormalizer.html">StepNormalizer</a> object wrapping
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/sampling/StepHandler.html">StepHandler</a> interface or a
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/sampling/StepNormalizer.html">StepNormalizer</a> object wrapping
a user-specified object implementing the
<a href="../apidocs/org/apache/commons/math4/ode/sampling/FixedStepHandler.html">FixedStepHandler</a> interface
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/sampling/FixedStepHandler.html">FixedStepHandler</a> interface
into the integrator before calling the <code>FirstOrderIntegrator.integrate</code> method. The user object
will be called appropriately during the integration process, allowing the user to process intermediate
results. The default step handler does nothing. Considering again the previous example, we want to print the
@ -161,7 +161,7 @@ StepHandler stepHandler = new StepHandler() {
integrator.addStepHandler(stepHandler);
</source>
<p>
<a href="../apidocs/org/apache/commons/math4/ode/ContinuousOutputModel.html">ContinuousOutputModel</a>
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/ContinuousOutputModel.html">ContinuousOutputModel</a>
is a special-purpose step handler that is able to store all steps and to provide transparent access to
any intermediate result once the integration is over. An important feature of this class is that it
implements the <code>Serializable</code> interface. This means that a complete continuous model of the
@ -170,10 +170,10 @@ integrator.addStepHandler(stepHandler);
Only the result of the integration is stored, there is no reference to the integrated problem by itself.
</p>
<p>
Other default implementations of the <a href="../apidocs/org/apache/commons/math4/ode/sampling/StepHandler.html">StepHandler</a>
Other default implementations of the <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/sampling/StepHandler.html">StepHandler</a>
interface are available for general needs
(<a href="../apidocs/org/apache/commons/math4/ode/sampling/DummyStepHandler.html">DummyStepHandler</a>,
<a href="../apidocs/org/apache/commons/math4/ode/sampling/StepNormalizer.html">StepNormalizer</a>) and custom
(<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/sampling/DummyStepHandler.html">DummyStepHandler</a>,
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/sampling/StepNormalizer.html">StepNormalizer</a>) and custom
implementations can be developed for specific needs. As an example, if an application is to be
completely driven by the integration process, then most of the application code will be run inside a
step handler specific to this application.
@ -182,12 +182,12 @@ integrator.addStepHandler(stepHandler);
Some integrators (the simple ones) use fixed steps that are set at creation time. The more efficient
integrators use variable steps that are handled internally in order to control the integration error
of the main state with respect to a specified accuracy (these integrators extend the
<a href="../apidocs/org/apache/commons/math4/ode/AdaptiveStepsizeIntegrator.html">AdaptiveStepsizeIntegrator</a>
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/AdaptiveStepsizeIntegrator.html">AdaptiveStepsizeIntegrator</a>
abstract class). The secondary equations are explicitly ignored for step size control, in order to get reproducible
results regardless of the secondary equations being integrated or not. The step handler which is called after each
successful step shows up the variable stepsize. The <a href="../apidocs/org/apache/commons/math4/ode/sampling/StepNormalizer.html">StepNormalizer</a>
successful step shows up the variable stepsize. The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/sampling/StepNormalizer.html">StepNormalizer</a>
class can be used to convert the variable stepsize into a fixed stepsize that can be handled by classes
implementing the <a href="../apidocs/org/apache/commons/math4/ode/sampling/FixedStepHandler.html">FixedStepHandler</a>
implementing the <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/sampling/FixedStepHandler.html">FixedStepHandler</a>
interface. Adaptive stepsize integrators can automatically compute the initial stepsize by themselves,
however the user can specify it if they prefer to retain full control over the integration or if the
automatic guess is wrong.
@ -202,7 +202,7 @@ integrator.addStepHandler(stepHandler);
</p>
<p>
Discrete events detection is based on switching functions. The user provides
a simple <a href="../apidocs/org/apache/commons/math4/ode/events/EventHandler.html">g(t, y)</a>
a simple <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/events/EventHandler.html">g(t, y)</a>
function depending on the current time and state. The integrator will monitor
the value of the function throughout integration range and will trigger the
event when its sign changes. The magnitude of the value is almost irrelevant.
@ -282,24 +282,24 @@ public int eventOccurred(double t, double[] y, boolean increasing) {
<table border="1" align="center">
<tr BGCOLOR="#CCCCFF"><td colspan="2"><font size="+1">Fixed Step Integrators</font></td></tr>
<tr BGCOLOR="#EEEEFF"><font size="+1"><td>Name</td><td>Order</td></font></tr>
<tr><td><a href="../apidocs/org/apache/commons/math4/ode/nonstiff/EulerIntegrator.html">Euler</a></td><td>1</td></tr>
<tr><td><a href="../apidocs/org/apache/commons/math4/ode/nonstiff/MidpointIntegrator.html">Midpoint</a></td><td>2</td></tr>
<tr><td><a href="../apidocs/org/apache/commons/math4/ode/nonstiff/ClassicalRungeKuttaIntegrator.html">Classical Runge-Kutta</a></td><td>4</td></tr>
<tr><td><a href="../apidocs/org/apache/commons/math4/ode/nonstiff/GillIntegrator.html">Gill</a></td><td>4</td></tr>
<tr><td><a href="../apidocs/org/apache/commons/math4/ode/nonstiff/ThreeEighthesIntegrator.html">3/8</a></td><td>4</td></tr>
<tr><td><a href="../apidocs/org/apache/commons/math4/ode/nonstiff/LutherIntegrator.html">Luther</a></td><td>6</td></tr>
<tr><td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/nonstiff/EulerIntegrator.html">Euler</a></td><td>1</td></tr>
<tr><td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/nonstiff/MidpointIntegrator.html">Midpoint</a></td><td>2</td></tr>
<tr><td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/nonstiff/ClassicalRungeKuttaIntegrator.html">Classical Runge-Kutta</a></td><td>4</td></tr>
<tr><td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/nonstiff/GillIntegrator.html">Gill</a></td><td>4</td></tr>
<tr><td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/nonstiff/ThreeEighthesIntegrator.html">3/8</a></td><td>4</td></tr>
<tr><td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/nonstiff/LutherIntegrator.html">Luther</a></td><td>6</td></tr>
</table>
</p>
<p>
<table border="1" align="center">
<tr BGCOLOR="#CCCCFF"><td colspan="3"><font size="+1">Adaptive Stepsize Integrators</font></td></tr>
<tr BGCOLOR="#EEEEFF"><font size="+1"><td>Name</td><td>Integration Order</td><td>Error Estimation Order</td></font></tr>
<tr><td><a href="../apidocs/org/apache/commons/math4/ode/nonstiff/HighamHall54Integrator.html">Higham and Hall</a></td><td>5</td><td>4</td></tr>
<tr><td><a href="../apidocs/org/apache/commons/math4/ode/nonstiff/DormandPrince54Integrator.html">Dormand-Prince 5(4)</a></td><td>5</td><td>4</td></tr>
<tr><td><a href="../apidocs/org/apache/commons/math4/ode/nonstiff/DormandPrince853Integrator.html">Dormand-Prince 8(5,3)</a></td><td>8</td><td>5 and 3</td></tr>
<tr><td><a href="../apidocs/org/apache/commons/math4/ode/nonstiff/GraggBulirschStoerIntegrator.html">Gragg-Bulirsch-Stoer</a></td><td>variable (up to 18 by default)</td><td>variable</td></tr>
<tr><td><a href="../apidocs/org/apache/commons/math4/ode/nonstiff/AdamsBashforthIntegrator.html">Adams-Bashforth</a></td><td>variable</td><td>variable</td></tr>
<tr><td><a href="../apidocs/org/apache/commons/math4/ode/nonstiff/AdamsMoultonIntegrator.html">Adams-Moulton</a></td><td>variable</td><td>variable</td></tr>
<tr><td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/nonstiff/HighamHall54Integrator.html">Higham and Hall</a></td><td>5</td><td>4</td></tr>
<tr><td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/nonstiff/DormandPrince54Integrator.html">Dormand-Prince 5(4)</a></td><td>5</td><td>4</td></tr>
<tr><td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/nonstiff/DormandPrince853Integrator.html">Dormand-Prince 8(5,3)</a></td><td>8</td><td>5 and 3</td></tr>
<tr><td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/nonstiff/GraggBulirschStoerIntegrator.html">Gragg-Bulirsch-Stoer</a></td><td>variable (up to 18 by default)</td><td>variable</td></tr>
<tr><td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/nonstiff/AdamsBashforthIntegrator.html">Adams-Bashforth</a></td><td>variable</td><td>variable</td></tr>
<tr><td><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/nonstiff/AdamsMoultonIntegrator.html">Adams-Moulton</a></td><td>variable</td><td>variable</td></tr>
</table>
</p>
</subsection>
@ -311,7 +311,7 @@ public int eventOccurred(double t, double[] y, boolean increasing) {
appended to the main state before the integration starts. Then the integration will propagate the compound
state composed of both the main state and its partial derivatives. At the end of the integration, the Jacobian
matrices are extracted from the integrated secondary state. The <a
href="../apidocs/org/apache/commons/math4/ode/JacobianMatrices.html">JacobianMatrices</a> class can do most of
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/JacobianMatrices.html">JacobianMatrices</a> class can do most of
this as long as the local derivatives are provided to it. It will set up the variational equations, register
them as secondary equations into the ODE, and it will set up the initial values and retrieve the intermediate
and final values as Jacobian matrices.
@ -321,7 +321,7 @@ public int eventOccurred(double t, double[] y, boolean increasing) {
elements array. The first 6 elements will be the original state, the next 36 elements will represent the 6x6
Jacobian matrix of the final state with respect to the initial state, and the remaining 18 elements will
represent the 6x3 Jacobian matrix of the final state with respect to the 3 parameters. The <a
href="../apidocs/org/apache/commons/math4/ode/JacobianMatrices.html">JacobianMatrices</a> class does the mapping
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/JacobianMatrices.html">JacobianMatrices</a> class does the mapping
between the 60 elements compound state and the Jacobian matrices and sets up the correcsponding secondary equations.
</p>
<p>
@ -333,22 +333,22 @@ public int eventOccurred(double t, double[] y, boolean increasing) {
<p>
What remains of user responsibility is to provide the local Jacobians df(t, y, p)/dy and df(t, y, p)/dp<sub>k</sub>
corresponding the the main ODE y'=f(t, y, p). The main ODE is as usual provided by the user as a class implementing
the <a href="../apidocs/org/apache/commons/math4/ode/FirstOrderDifferentialEquations.html">FirstOrderDifferentialEquations</a>
the <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/FirstOrderDifferentialEquations.html">FirstOrderDifferentialEquations</a>
interface or a sub-interface.
</p>
<p>
If the ODE is simple enough that the user can implement df(t, y, p)/dy directly, then instead of providing an
implementation of the <a
href="../apidocs/org/apache/commons/math4/ode/FirstOrderDifferentialEquations.html">FirstOrderDifferentialEquations</a>
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/FirstOrderDifferentialEquations.html">FirstOrderDifferentialEquations</a>
interface only, the user should rather provide an implementation of the <a
href="../apidocs/org/apache/commons/math4/ode/MainStateJacobianProvider.html">MainStateJacobianProvider</a> interface,
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/MainStateJacobianProvider.html">MainStateJacobianProvider</a> interface,
which extends the previous interface by adding a method to compute df(t, y, p)/dy. The user class is used as a
constructor parameter of the <a href="../apidocs/org/apache/commons/math4/ode/JacobianMatrices.html">JacobianMatrices</a>
constructor parameter of the <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/JacobianMatrices.html">JacobianMatrices</a>
class. If the ODE is too complex or the user simply does not bother implementing df(t, y, p)/dy directly, then
the ODE can still be implemented using the simple <a
href="../apidocs/org/apache/commons/math4/ode/FirstOrderDifferentialEquations.html">FirstOrderDifferentialEquations</a>
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/FirstOrderDifferentialEquations.html">FirstOrderDifferentialEquations</a>
interface and given as such to another constructor of the <a
href="../apidocs/org/apache/commons/math4/ode/JacobianMatrices.html">JacobianMatrices</a> class, but in this case an array
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/JacobianMatrices.html">JacobianMatrices</a> class, but in this case an array
hy must also be provided that will contain the step size to use form each component of the main state vector y, and
the Jacobian f(t, y, p)/dy will be computed internally using finite differences. This will of course trigger more evaluations
of the ODE at each step and will suffer from finite differences errors, but it is much simpler to implement from a user
@ -356,10 +356,10 @@ public int eventOccurred(double t, double[] y, boolean increasing) {
</p>
<p>
The parameters are identified by a name (a simple user-defined string), which are also specified at <a
href="../apidocs/org/apache/commons/math4/ode/JacobianMatrices.html">JacobianMatrices</a> class construction. If the ODE
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/JacobianMatrices.html">JacobianMatrices</a> class construction. If the ODE
is simple enough that the user can implement df(t, y, p)/dp<sub>k</sub> directly for some of the parameters p<sub>k</sub>,
then they can provide one or more classes implementing the <a
href="../apidocs/org/apache/commons/math4/ode/ParameterJacobianProvider.html">ParameterJacobianProvider</a> interface by
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/ode/ParameterJacobianProvider.html">ParameterJacobianProvider</a> interface by
calling the JacobianMatrices.addParameterJacobianProvide method. The parameters are handled one at a time, but all the calls to
ParameterJacobianProvider.computeParameterJacobian will be grouped in one sequence after the call to MainStateJacobianProvider.computeMainStateJacobian
This feature can be used when all the derivatives share a lot of costly computation. In this case, the user

View File

@ -26,7 +26,7 @@
<body>
<section name="12 Optimization">
<p><em>The contents of this section currently describes deprecated classes.</em>
Please refer to the new <a href="../apidocs/org/apache/commons/math4/optim/package-summary.html">API
Please refer to the new <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optim/package-summary.html">API
description</a>.
</p>
<p>Least squares optimizers are not in this package anymore, they have been moved
@ -61,7 +61,7 @@
</p>
<p>
The type of goal, i.e. minimization or maximization, is defined by the enumerated
<a href="../apidocs/org/apache/commons/math4/optimization/GoalType.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/GoalType.html">
GoalType</a> which has only two values: <code>MAXIMIZE</code> and <code>MINIMIZE</code>.
</p>
<p>
@ -70,21 +70,21 @@
are only four interfaces defining the common behavior of optimizers, one for each
supported type of objective function:
<ul>
<li><a href="../apidocs/org/apache/commons/math4/optimization/univariate/UnivariateOptimizer.html">
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/univariate/UnivariateOptimizer.html">
UnivariateOptimizer</a> for <a
href="../apidocs/org/apache/commons/math4/analysis/UnivariateFunction.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/UnivariateFunction.html">
univariate real functions</a></li>
<li><a href="../apidocs/org/apache/commons/math4/optimization/MultivariateOptimizer.html">
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/MultivariateOptimizer.html">
MultivariateOptimizer</a> for <a
href="../apidocs/org/apache/commons/math4/analysis/MultivariateFunction.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/MultivariateFunction.html">
multivariate real functions</a></li>
<li><a href="../apidocs/org/apache/commons/math4/optimization/DifferentiableMultivariateOptimizer.html">
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/DifferentiableMultivariateOptimizer.html">
DifferentiableMultivariateOptimizer</a> for <a
href="../apidocs/org/apache/commons/math4/analysis/DifferentiableMultivariateFunction.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/DifferentiableMultivariateFunction.html">
differentiable multivariate real functions</a></li>
<li><a href="../apidocs/org/apache/commons/math4/optimization/DifferentiableMultivariateVectorOptimizer.html">
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/DifferentiableMultivariateVectorOptimizer.html">
DifferentiableMultivariateVectorOptimizer</a> for <a
href="../apidocs/org/apache/commons/math4/analysis/DifferentiableMultivariateVectorFunction.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/DifferentiableMultivariateVectorFunction.html">
differentiable multivariate vectorial functions</a></li>
</ul>
</p>
@ -92,14 +92,14 @@
<p>
Despite there are only four types of supported optimizers, it is possible to optimize
a transform a <a
href="../apidocs/org/apache/commons/math4/analysis/MultivariateVectorFunction.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/MultivariateVectorFunction.html">
non-differentiable multivariate vectorial function</a> by converting it to a <a
href="../apidocs/org/apache/commons/math4/analysis/MultivariateFunction.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/MultivariateFunction.html">
non-differentiable multivariate real function</a> thanks to the <a
href="../apidocs/org/apache/commons/math4/optimization/LeastSquaresConverter.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/LeastSquaresConverter.html">
LeastSquaresConverter</a> helper class. The transformed function can be optimized using
any implementation of the <a
href="../apidocs/org/apache/commons/math4/optimization/MultivariateOptimizer.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/MultivariateOptimizer.html">
MultivariateOptimizer</a> interface.
</p>
@ -113,7 +113,7 @@
</subsection>
<subsection name="12.2 Univariate Functions" href="univariate">
<p>
A <a href="../apidocs/org/apache/commons/math4/optimization/univariate/UnivariateOptimizer.html">
A <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/univariate/UnivariateOptimizer.html">
UnivariateOptimizer</a> is used to find the minimal values of a univariate real-valued
function <code>f</code>.
</p>
@ -164,16 +164,16 @@
The <code>direct</code> package provides four solvers:
<ul>
<li>the classical <a
href="../apidocs/org/apache/commons/math4/optimization/direct/NelderMeadSimplex.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/direct/NelderMeadSimplex.html">
Nelder-Mead</a> method,</li>
<li>Virginia Torczon's <a
href="../apidocs/org/apache/commons/math4/optimization/direct/MultiDirectionalSimplex.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/direct/MultiDirectionalSimplex.html">
multi-directional</a> method,</li>
<li>Nikolaus Hansen's <a
href="../apidocs/org/apache/commons/math4/optimization/direct/CMAESOptimizer.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/direct/CMAESOptimizer.html">
</a>Covariance Matrix Adaptation Evolution Strategy (CMA-ES),</li>
<li>Mike Powell's <a
href="../apidocs/org/apache/commons/math4/optimization/direct/BOBYQAOptimizer.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/direct/BOBYQAOptimizer.html">
BOBYQA</a> method.
</li>
</ul>
@ -181,9 +181,9 @@
<p>
The first two simplex-based methods do not handle simple bounds constraints by themselves.
However there are two adapters(<a
href="../apidocs/org/apache/commons/math4/optimization/direct/MultivariateFunctionMappingAdapter.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/direct/MultivariateFunctionMappingAdapter.html">
MultivariateFunctionMappingAdapter</a> and <a
href="../apidocs/org/apache/commons/math4/optimization/direct/MultivariateFunctionPenaltyAdapter.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/direct/MultivariateFunctionPenaltyAdapter.html">
MultivariateFunctionPenaltyAdapter</a>) that can be used to wrap the user function in
such a way the wrapped function is unbounded and can be used with these optimizers, despite
the fact the underlying function is still bounded and will be called only with feasible
@ -237,15 +237,15 @@
<p>
Two optimizers are available in the general package, both devoted to least-squares
problems. The first one is based on the <a
href="../apidocs/org/apache/commons/math4/optimization/general/GaussNewtonOptimizer.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/general/GaussNewtonOptimizer.html">
Gauss-Newton</a> method. The second one is the <a
href="../apidocs/org/apache/commons/math4/optimization/general/LevenbergMarquardtOptimizer.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/general/LevenbergMarquardtOptimizer.html">
Levenberg-Marquardt</a> method.
</p>
<p>
In order to solve a vectorial optimization problem, the user must provide it as
an object implementing the <a
href="../apidocs/org/apache/commons/math4/analysis/DifferentiableMultivariateVectorFunction.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/DifferentiableMultivariateVectorFunction.html">
DifferentiableMultivariateVectorFunction</a> interface. The object will be provided to
the <code>estimate</code> method of the optimizer, along with the target and weight arrays,
thus allowing the optimizer to compute the residuals at will. The last parameter to the
@ -311,7 +311,7 @@
</table>
<p>
First we need to implement the interface <a href="../apidocs/org/apache/commons/math4/analysis/DifferentiableMultivariateVectorFunction.html">DifferentiableMultivariateVectorFunction</a>.
First we need to implement the interface <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/DifferentiableMultivariateVectorFunction.html">DifferentiableMultivariateVectorFunction</a>.
This requires the implementation of the method signatures:
</p>
@ -571,17 +571,17 @@ C: 16.324008168386605
</dd></dl>
<p>
In addition to least squares solving, the <a
href="../apidocs/org/apache/commons/math4/optimization/general/NonLinearConjugateGradientOptimizer.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/general/NonLinearConjugateGradientOptimizer.html">
NonLinearConjugateGradientOptimizer</a> class provides a non-linear conjugate gradient algorithm
to optimize <a
href="../apidocs/org/apache/commons/math4/analysis/DifferentiableMultivariateFunction.html">
href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/analysis/DifferentiableMultivariateFunction.html">
DifferentiableMultivariateFunction</a>. Both the Fletcher-Reeves and the Polak-Ribi&#232;re
search direction update methods are supported. It is also possible to set up a preconditioner
or to change the line-search algorithm of the inner loop if desired (the default one is a Brent
solver).
</p>
<p>
The <a href="../apidocs/org/apache/commons/math4/optimization/direct/PowellOptimizer.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optimization/direct/PowellOptimizer.html">
PowellOptimizer</a> provides an optimization method for non-differentiable functions.
</p>
</subsection>

View File

@ -105,9 +105,9 @@
<p>
When the actual parameters provided to a method or the internal state of an object
make a computation meaningless, a
<a href="../apidocs/org/apache/commons/math4/exception/MathIllegalArgumentException.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/exception/MathIllegalArgumentException.html">
MathIllegalArgumentException</a> or
<a href="../apidocs/org/apache/commons/math4/exception/MathIllegalStateException.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/exception/MathIllegalStateException.html">
MathIllegalStateException</a> may be thrown. Exact conditions under which runtime
exceptions (and any other exceptions) are thrown are specified in the javadoc method
comments.
@ -119,7 +119,7 @@
<p>
As of version 2.2, the policy for dealing with null references is as
follows: When an argument is unexpectedly null, a
<a href="../apidocs/org/apache/commons/math4/exception/NullArgumentException.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/exception/NullArgumentException.html">
NullArgumentException</a> is raised to signal the illegal argument. Note that this
class does not inherit from the standard <code>NullPointerException</code> but is a subclass
of <code>MathIllegalArgumentException</code>.

View File

@ -30,7 +30,7 @@
<subsection name="2.1 Overview"
href="overview">
<p>
Utilities in package <a href="../apidocs/org/apache/commons/math4/legacy/random/package-summary.html">
Utilities in package <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/random/package-summary.html">
o.a.c.m.legacy.random</a> often uses an underlying "source of randomness": A pseudo-random
number generator (PRNG) that produces sequences of numbers that are uniformly distributed
within their range.
@ -48,7 +48,7 @@
</p>
<p>
When the components are correlated however, generating them is more difficult.
The <a href="../apidocs/org/apache/commons/math4/legacy/random/CorrelatedVectorFactory.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/random/CorrelatedVectorFactory.html">
CorrelatedVectorFactory</a> class provides this service.
In this case, a complete covariance matrix must be provided (instead of a
simple standard deviations vector) gathering both the variance and the
@ -114,9 +114,9 @@ RealMatrix covariance = MatrixUtils.createRealMatrix(cov);
is completely deterministic), their unique properties give them an important advantage for quasi-Monte Carlo simulations.<br/>
Currently, the following low-discrepancy sequences are supported:
<ul>
<li><a href="../apidocs/org/apache/commons/math4/legacy/random/SobolSequenceGenerator.html">
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/random/SobolSequenceGenerator.html">
Sobol sequence</a> (pre-configured up to dimension 1000)</li>
<li><a href="../apidocs/org/apache/commons/math4/legacy/random/HaltonSequenceGenerator.html">
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/random/HaltonSequenceGenerator.html">
Halton sequence</a> (pre-configured up to dimension 40)</li>
</ul>

View File

@ -61,12 +61,12 @@
</p>
<p>
The top level interface is
<a href="../apidocs/org/apache/commons/math4/stat/descriptive/UnivariateStatistic.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/descriptive/UnivariateStatistic.html">
UnivariateStatistic</a>.
This interface, implemented by all statistics, consists of
<code>evaluate()</code> methods that take double[] arrays as arguments
and return the value of the statistic. This interface is extended by
<a href="../apidocs/org/apache/commons/math4/stat/descriptive/StorelessUnivariateStatistic.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/descriptive/StorelessUnivariateStatistic.html">
StorelessUnivariateStatistic</a>, which adds <code>increment(),</code>
<code>getResult()</code> and associated methods to support
"storageless" implementations that maintain counters, sums or other
@ -75,9 +75,9 @@
</p>
<p>
Abstract implementations of the top level interfaces are provided in
<a href="../apidocs/org/apache/commons/math4/stat/descriptive/AbstractUnivariateStatistic.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/descriptive/AbstractUnivariateStatistic.html">
AbstractUnivariateStatistic</a> and
<a href="../apidocs/org/apache/commons/math4/stat/descriptive/AbstractStorelessUnivariateStatistic.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/descriptive/AbstractStorelessUnivariateStatistic.html">
AbstractStorelessUnivariateStatistic</a> respectively.
</p>
<p>
@ -87,9 +87,9 @@
compute the statistic). There are several ways to instantiate and use statistics.
Statistics can be instantiated and used directly, but it is generally more convenient
(and efficient) to access them using the provided aggregates,
<a href="../apidocs/org/apache/commons/math4/stat/descriptive/DescriptiveStatistics.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/descriptive/DescriptiveStatistics.html">
DescriptiveStatistics</a> and
<a href="../apidocs/org/apache/commons/math4/stat/descriptive/SummaryStatistics.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/descriptive/SummaryStatistics.html">
SummaryStatistics.</a>
</p>
<p>
@ -107,18 +107,18 @@
<table>
<tr><th>Aggregate</th><th>Statistics Included</th><th>Values stored?</th>
<th>"Rolling" capability?</th></tr><tr><td>
<a href="../apidocs/org/apache/commons/math4/stat/descriptive/DescriptiveStatistics.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/descriptive/DescriptiveStatistics.html">
DescriptiveStatistics</a></td><td>min, max, mean, geometric mean, n,
sum, sum of squares, standard deviation, variance, percentiles, skewness,
kurtosis, median</td><td>Yes</td><td>Yes</td></tr><tr><td>
<a href="../apidocs/org/apache/commons/math4/stat/descriptive/SummaryStatistics.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/descriptive/SummaryStatistics.html">
SummaryStatistics</a></td><td>min, max, mean, geometric mean, n,
sum, sum of squares, standard deviation, variance</td><td>No</td><td>No</td></tr>
</table>
</p>
<p>
<code>SummaryStatistics</code> can be aggregated using
<a href="../apidocs/org/apache/commons/math4/stat/descriptive/AggregateSummaryStatistics.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/descriptive/AggregateSummaryStatistics.html">
AggregateSummaryStatistics.</a> This class can be used to concurrently
gather statistics for multiple datasets as well as for a combined sample
including all of the data.
@ -132,19 +132,19 @@
<p>
Neither <code>DescriptiveStatistics</code> nor <code>SummaryStatistics</code>
is thread-safe.
<a href="../apidocs/org/apache/commons/math4/stat/descriptive/SynchronizedDescriptiveStatistics.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/descriptive/SynchronizedDescriptiveStatistics.html">
SynchronizedDescriptiveStatistics</a> and
<a href="../apidocs/org/apache/commons/math4/stat/descriptive/SynchronizedSummaryStatistics.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/descriptive/SynchronizedSummaryStatistics.html">
SynchronizedSummaryStatistics</a>, respectively, provide thread-safe
versions for applications that require concurrent access to statistical
aggregates by multiple threads.
<a href="../apidocs/org/apache/commons/math4/stat/descriptive/SynchronizedMultiVariateSummaryStatistics.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/descriptive/SynchronizedMultiVariateSummaryStatistics.html">
SynchronizedMultivariateSummaryStatistics</a> provides thread-safe
<code>MultivariateSummaryStatistics.</code>
</p>
<p>
There is also a utility class,
<a href="../apidocs/org/apache/commons/math4/stat/StatUtils.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/StatUtils.html">
StatUtils</a>, that provides static methods for computing statistics
directly from double[] arrays.
</p>
@ -243,7 +243,7 @@ DescriptiveStatistics stats = new SynchronizedDescriptiveStatistics();
The first is to use an <code>AggregateSummaryStatistics</code> instance
to accumulate overall statistics contributed by <code>SummaryStatistics</code>
instances created using
<a href="../apidocs/org/apache/commons/math4/stat/descriptive/AggregateSummaryStatistics.html#createContributingStatistics()">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/descriptive/AggregateSummaryStatistics.html#createContributingStatistics()">
AggregateSummaryStatistics.createContributingStatistics()</a>:
<source>
// Create a AggregateSummaryStatistics instance to accumulate the overall statistics
@ -264,7 +264,7 @@ double totalSampleSum = aggregate.getSum();
<code>SummaryStatistics</code> instance maintained by the aggregate and each value addition updates the
aggregate as well as the subsample. For applications that can wait to do the aggregation until all values
have been added, a static
<a href="../apidocs/org/apache/commons/math4/stat/descriptive/AggregateSummaryStatistics.html#aggregate(java.util.Collection)">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/descriptive/AggregateSummaryStatistics.html#aggregate(java.util.Collection)">
aggregate</a> method is available, as shown in the following example.
This method should be used when aggregation needs to be done across threads.
<source>
@ -292,7 +292,7 @@ double totalSampleSum = aggregatedStats.getSum();
</subsection>
<subsection name="1.3 Frequency distributions">
<p>
<a href="../apidocs/org/apache/commons/math4/stat/Frequency.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/Frequency.html">
Frequency</a>
provides a simple interface for maintaining counts and percentages of discrete
values.
@ -356,7 +356,7 @@ System.out.println(f.getCumPct("z")); // displays 1
</subsection>
<subsection name="1.4 Simple regression">
<p>
<a href="../apidocs/org/apache/commons/math4/stat/regression/SimpleRegression.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/regression/SimpleRegression.html">
SimpleRegression</a> provides ordinary least squares regression with
one independent variable estimating the linear model:
</p>
@ -392,7 +392,7 @@ System.out.println(f.getCumPct("z")); // displays 1
"compute" method that updates all statistics. Each of the getters performs
the necessary computations to return the requested statistic.</li>
<li> The intercept term may be suppressed by passing <code>false</code> to the
<a href="../apidocs/org/apache/commons/math4/stat/regression/SimpleRegression.html#SimpleRegression(boolean)">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/regression/SimpleRegression.html#SimpleRegression(boolean)">
SimpleRegression(boolean)</a> constructor. When the <code>hasIntercept</code>
property is false, the model is estimated without a constant term and
<code>getIntercept()</code> returns <code>0</code>.</li>
@ -510,9 +510,9 @@ System.out.println(regression.getInterceptStdErr() );
</subsection>
<subsection name="1.5 Multiple linear regression">
<p>
<a href="../apidocs/org/apache/commons/math4/stat/regression/OLSMultipleLinearRegression.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/regression/OLSMultipleLinearRegression.html">
OLSMultipleLinearRegression</a> and
<a href="../apidocs/org/apache/commons/math4/stat/regression/GLSMultipleLinearRegression.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/regression/GLSMultipleLinearRegression.html">
GLSMultipleLinearRegression</a> provide least squares regression to fit the linear model:
</p>
<p>
@ -524,9 +524,9 @@ System.out.println(regression.getInterceptStdErr() );
of <b>error terms</b> or <b>residuals</b>.
</p>
<p>
<a href="../apidocs/org/apache/commons/math4/stat/regression/OLSMultipleLinearRegression.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/regression/OLSMultipleLinearRegression.html">
OLSMultipleLinearRegression</a> provides Ordinary Least Squares Regression, and
<a href="../apidocs/org/apache/commons/math4/stat/regression/GLSMultipleLinearRegression.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/regression/GLSMultipleLinearRegression.html">
GLSMultipleLinearRegression</a> implements Generalized Least Squares. See the javadoc for these
classes for details on the algorithms and formulas used.
</p>
@ -534,11 +534,11 @@ System.out.println(regression.getInterceptStdErr() );
Data for OLS models can be loaded in a single double[] array, consisting of concatenated rows of data, each containing
the regressand (Y) value, followed by regressor values; or using a double[][] array with rows corresponding to
observations. GLS models also require a double[][] array representing the covariance matrix of the error terms. See
<a href="../apidocs/org/apache/commons/math4/stat/regression/AbstractMultipleLinearRegression.html#newSampleData(double[], int, int)">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/regression/AbstractMultipleLinearRegression.html#newSampleData(double[], int, int)">
AbstractMultipleLinearRegression#newSampleData(double[],int,int)</a>,
<a href="../apidocs/org/apache/commons/math4/stat/regression/OLSMultipleLinearRegression.html#newSampleData(double[], double[][])">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/regression/OLSMultipleLinearRegression.html#newSampleData(double[], double[][])">
OLSMultipleLinearRegression#newSampleData(double[], double[][])</a> and
<a href="../apidocs/org/apache/commons/math4/stat/regression/GLSMultipleLinearRegression.html#newSampleData(double[], double[][], double[][])">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/regression/GLSMultipleLinearRegression.html#newSampleData(double[], double[][], double[][])">
GLSMultipleLinearRegression#newSampleData(double[],double[][],double[][])</a> for details.
</p>
<p>
@ -616,16 +616,16 @@ regression.newSampleData(y, x, omega);
<subsection name="1.6 Rank transformations">
<p>
Some statistical algorithms require that input data be replaced by ranks.
The <a href="../apidocs/org/apache/commons/math4/stat/ranking/package-summary.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/ranking/package-summary.html">
org.apache.commons.math4.stat.ranking</a> package provides rank transformation.
<a href="../apidocs/org/apache/commons/math4/stat/ranking/RankingAlgorithm.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/ranking/RankingAlgorithm.html">
RankingAlgorithm</a> defines the interface for ranking.
<a href="../apidocs/org/apache/commons/math4/stat/ranking/NaturalRanking.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/ranking/NaturalRanking.html">
NaturalRanking</a> provides an implementation that has two configuration options.
<ul>
<li><a href="../apidocs/org/apache/commons/math4/stat/ranking/TiesStrategy.html">
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/ranking/TiesStrategy.html">
Ties strategy</a> deterimines how ties in the source data are handled by the ranking</li>
<li><a href="../apidocs/org/apache/commons/math4/stat/ranking/NaNStrategy.html">
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/ranking/NaNStrategy.html">
NaN strategy</a> determines how NaN values in the source data are handled.</li>
</ul>
</p>
@ -649,24 +649,24 @@ new NaturalRanking(NaNStrategy.REMOVED,TiesStrategy.SEQUENTIAL).rank(exampleData
values larger than any other value (including <code>Double.POSITIVE_INFINITY</code>). The
default <code>TiesStrategy</code> is <code>TiesStrategy.AVERAGE,</code> which assigns tied
values the average of the ranks applicable to the sequence of ties. See the
<a href="../apidocs/org/apache/commons/math4/stat/ranking/NaturalRanking.html">
NaturalRanking</a> for more examples and <a href="../apidocs/org/apache/commons/math4/stat/ranking/TiesStrategy.html">
TiesStrategy</a> and <a href="../apidocs/org/apache/commons/math4/stat/ranking/NaNStrategy.html">NaNStrategy</a>
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/ranking/NaturalRanking.html">
NaturalRanking</a> for more examples and <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/ranking/TiesStrategy.html">
TiesStrategy</a> and <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/ranking/NaNStrategy.html">NaNStrategy</a>
for details on these configuration options.
</p>
</subsection>
<subsection name="1.7 Covariance and correlation">
<p>
The <a href="../apidocs/org/apache/commons/math4/stat/correlation/package-summary.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/correlation/package-summary.html">
org.apache.commons.math4.stat.correlation</a> package computes covariances
and correlations for pairs of arrays or columns of a matrix.
<a href="../apidocs/org/apache/commons/math4/stat/correlation/Covariance.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/correlation/Covariance.html">
Covariance</a> computes covariances,
<a href="../apidocs/org/apache/commons/math4/stat/correlation/PearsonsCorrelation.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/correlation/PearsonsCorrelation.html">
PearsonsCorrelation</a> provides Pearson's Product-Moment correlation coefficients,
<a href="../apidocs/org/apache/commons/math4/stat/correlation/SpearmansCorrelation.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/correlation/SpearmansCorrelation.html">
SpearmansCorrelation</a> computes Spearman's rank correlation and
<a href="../apidocs/org/apache/commons/math4/stat/correlation/KendallsCorrelation.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/correlation/KendallsCorrelation.html">
KendallsCorrelation</a> computes Kendall's tau rank correlation.
</p>
<p>
@ -682,21 +682,21 @@ new NaturalRanking(NaNStrategy.REMOVED,TiesStrategy.SEQUENTIAL).rank(exampleData
defaults to <code>true.</code>
</li>
<li>
<a href="../apidocs/org/apache/commons/math4/stat/correlation/PearsonsCorrelation.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/correlation/PearsonsCorrelation.html">
PearsonsCorrelation</a> computes correlations defined by the formula <br/>
<code>cor(X, Y) = sum[(x<sub>i</sub> - E(X))(y<sub>i</sub> - E(Y))] / [(n - 1)s(X)s(Y)]</code><br/>
where <code>E(X)</code> and <code>E(Y)</code> are means of <code>X</code> and <code>Y</code>
and <code>s(X)</code>, <code>s(Y)</code> are standard deviations.
</li>
<li>
<a href="../apidocs/org/apache/commons/math4/stat/correlation/SpearmansCorrelation.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/correlation/SpearmansCorrelation.html">
SpearmansCorrelation</a> applies a rank transformation to the input data and computes Pearson's
correlation on the ranked data. The ranking algorithm is configurable. By default,
<a href="../apidocs/org/apache/commons/math4/stat/ranking/NaturalRanking.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/ranking/NaturalRanking.html">
NaturalRanking</a> with default strategies for handling ties and NaN values is used.
</li>
<li>
<a href="../apidocs/org/apache/commons/math4/stat/correlation/KendallsCorrelation.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/correlation/KendallsCorrelation.html">
KendallsCorrelation</a> computes the association between two measured quantities. A tau test
is a non-parametric hypothesis test for statistical dependence based on the tau coefficient.
</li>
@ -818,7 +818,7 @@ new KendallsCorrelation().correlation(x, y)
</subsection>
<subsection name="1.8 Statistical tests">
<p>
The <a href="../apidocs/org/apache/commons/math4/stat/inference/">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/inference/">
org.apache.commons.math4.stat.inference</a> package provides implementations for
<a href="http://www.itl.nist.gov/div898/handbook/prc/section2/prc22.htm">
Student's t</a>,
@ -838,23 +838,23 @@ new KendallsCorrelation().correlation(x, y)
<code>Chi-Square</code>, <code>G</code>, <code>One-Way ANOVA</code>, <code>Mann-Whitney U</code>
<code>Wilcoxon signed rank</code>, and <code>Kolmogorov-Smirnov</code> tests.
The respective test classes are
<a href="../apidocs/org/apache/commons/math4/stat/inference/TTest.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/inference/TTest.html">
TTest</a>,
<a href="../apidocs/org/apache/commons/math4/stat/inference/ChiSquareTest.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/inference/ChiSquareTest.html">
ChiSquareTest</a>,
<a href="../apidocs/org/apache/commons/math4/stat/inference/GTest.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/inference/GTest.html">
GTest</a>,
<a href="../apidocs/org/apache/commons/math4/stat/inference/OneWayAnova.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/inference/OneWayAnova.html">
OneWayAnova</a>,
<a href="../apidocs/org/apache/commons/math4/stat/inference/MannWhitneyUTest.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/inference/MannWhitneyUTest.html">
MannWhitneyUTest</a>,
<a href="../apidocs/org/apache/commons/math4/stat/inference/WilcoxonSignedRankTest.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/inference/WilcoxonSignedRankTest.html">
WilcoxonSignedRankTest</a>,
<a href="../apidocs/org/apache/commons/math4/stat/inference/BinomialTest.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/inference/BinomialTest.html">
BinomialTest</a> and
<a href="../apidocs/org/apache/commons/math4/stat/inference/KolmogorovSmirnovTest.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/inference/KolmogorovSmirnovTest.html">
KolmogorovSmirnovTest</a>.
The <a href="../apidocs/org/apache/commons/math4/stat/inference/TestUtils.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/inference/TestUtils.html">
TestUtils</a> class provides static methods to get test instances or
to compute test statistics directly. The examples below all use the
static methods in <code>TestUtils</code> to execute tests. To get
@ -936,7 +936,7 @@ System.out.println(TestUtils.t(mu, observed));
<code>mu.</code>
</dd>
<dd>To compare the mean of a dataset described by a
<a href="../apidocs/org/apache/commons/math4/stat/descriptive/StatisticalSummary.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/stat/descriptive/StatisticalSummary.html">
StatisticalSummary</a> to a fixed value:
<source>
double[] observed ={1d, 2d, 3d};

View File

@ -29,7 +29,7 @@
<subsection name="6.1 Overview" href="overview">
<p>
The <a href="../apidocs/org/apache/commons/math4/util/package-summary.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/util/package-summary.html">
org.apache.commons.math4.util</a> package collects a group of array utilities,
value transformers, and numerical routines used by implementation classes in
commons-math.
@ -42,7 +42,7 @@
array implementation was developed and is provided for reuse in the
<code>util</code> package. The core functionality provided is described in
the documentation for the interface,
<a href="../apidocs/org/apache/commons/math4/util/DoubleArray.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/util/DoubleArray.html">
DoubleArray</a>. This interface adds one method,
<code>addElementRolling(double)</code> to basic list accessors.
The <code>addElementRolling</code> method adds an element
@ -50,7 +50,7 @@
in the list.
</p>
<p>
The <a href="../apidocs/org/apache/commons/math4/util/ResizableDoubleArray.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/util/ResizableDoubleArray.html">
ResizableDoubleArray</a> class provides a configurable, array-backed
implementation of the <code>DoubleArray</code> interface.
When <code>addElementRolling</code> is invoked, the underlying
@ -64,7 +64,7 @@
automatically, with frequency / effect driven by the configuration
properties <code>expansionMode</code>, <code>expansionFactor</code> and
<code>contractionCriteria.</code> See
<a href="../apidocs/org/apache/commons/math4/util/ResizableDoubleArray.html">
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/util/ResizableDoubleArray.html">
ResizableDoubleArray</a>
for details.
</p>
@ -72,7 +72,7 @@
<subsection name="6.3 int/double hash map" href="int_double_hash_map">
<p>
The <a href="../apidocs/org/apache/commons/math4/util/OpenIntToDoubleHashMap.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/util/OpenIntToDoubleHashMap.html">
OpenIntToDoubleHashMap</a> class provides a specialized hash map
implementation for int/double. This implementation has a much smaller memory
overhead than standard <code>java.util.HashMap</code> class. It uses open addressing
@ -83,7 +83,7 @@
<subsection name="6.4 Continued Fractions" href="continued_fractions">
<p>
The <a href="../apidocs/org/apache/commons/math4/util/ContinuedFraction.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/util/ContinuedFraction.html">
ContinuedFraction</a> class provides a generic way to create and evaluate
continued fractions. The easiest way to create a continued fraction is
to subclass <code>ContinuedFraction</code> and override the
@ -147,7 +147,7 @@
<subsection name="6.5 Binomial coefficients, factorials, Stirling numbers and other common math functions" href="binomial_coefficients_factorials_and_other_common_math_functions">
<p>
A collection of reusable math functions is provided in the
<a href="../apidocs/org/apache/commons/math4/util/ArithmeticUtils.html">ArithmeticUtils</a>
<a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/util/ArithmeticUtils.html">ArithmeticUtils</a>
utility class. ArithmeticUtils currently includes methods to compute the following: <ul>
<li>
Binomial coefficients -- "n choose k" available as an (exact) long value,
@ -233,7 +233,7 @@
</subsection>
<subsection name="6.7 Miscellaneous" href="miscellaneous">
The <a href="../apidocs/org/apache/commons/math4/util/MultidimensionalCounter.html">
The <a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/util/MultidimensionalCounter.html">
MultidimensionalCounter</a> is a utility class that converts a set of indices
(identifying points in a multidimensional space) to a single index (e.g. identifying
a location in a one-dimensional array.