de.lmu.ifi.dbs.elki.math.linearalgebra.fitting
Class GaussianFittingFunction
java.lang.Object
de.lmu.ifi.dbs.elki.math.linearalgebra.fitting.GaussianFittingFunction
- All Implemented Interfaces:
- FittingFunction
public class GaussianFittingFunction
- extends Object
- implements FittingFunction
Gaussian function for parameter fitting
Based mostly on fgauss in "Numerical Recpies in C".
However we've removed some small optimizations at the benefit of having
easier to use parameters. Instead of position, amplitude and width used
in the book, we use the traditional Gaussian parameters mean, standard deviation
and a linear scaling factor (which is mostly useful when combining multiple distributions)
The cost are some additional computations such as a square root.
This could of course have been handled by an appropriate wrapper instead.
They are also arranged differently: the book uses
amplitude, position, width
whereas we use
mean, stddev, scaling
The function also can use a mixture of gaussians, just use an appropriate number
of parameters (which obviously needs to be a multiple of 3)
- Author:
- Erich Schubert
Field Summary |
(package private) static double |
Sqrt2PI
precomputed constant value of Sqrt(2*PI) |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Sqrt2PI
static final double Sqrt2PI
- precomputed constant value of Sqrt(2*PI)
GaussianFittingFunction
public GaussianFittingFunction()
eval
public FittingFunctionResult eval(double x,
double[] params)
- compute the mixture of Gaussians at the given position
- Specified by:
eval
in interface FittingFunction
- Parameters:
x
- Current coordinateparams
- Function parameters parameters
- Returns:
- Array consisting of y value and parameter gradients