Update userguide.
Some links are still broken (due to the refactoring).
This commit is contained in:
parent
a368d71847
commit
ffcdf39f8f
|
@ -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 < 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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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<PointVectorValuePair></a>,
|
||||
<li><a href="../commons-math-docs/apidocs/org/apache/commons/math4/legacy/optim/SimplePointChecker.html">SimplePointChecker<PointVectorValuePair></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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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) = ω × (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
|
||||
|
|
|
@ -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è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>
|
||||
|
|
|
@ -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>.
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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};
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue