public class GaussianFittingFunction extends java.lang.Object implements FittingFunction
Based loosely on fgauss in the book "Numerical Recipies".
We did not bother to implement all 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 and probably a slight loss in precision. This could of course have been
handled by an appropriate wrapper instead.
Due to their license, we cannot use their code, but we have to implement the mathematics ourselves. We hope the loss in precision isn't big.
They are also arranged differently: the book uses
amplitude, position, width
whereas we use
mean, stddev, scaling
.
But we're obviously using essentially the same mathematics.
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)
Modifier and Type | Field and Description |
---|---|
static GaussianFittingFunction |
STATIC
Static instance
|
Constructor and Description |
---|
GaussianFittingFunction() |
Modifier and Type | Method and Description |
---|---|
FittingFunctionResult |
eval(double x,
double[] params)
Compute the mixture of Gaussians at the given position
|
public static final GaussianFittingFunction STATIC
public FittingFunctionResult eval(double x, double[] params)
eval
in interface FittingFunction
x
- Current coordinateparams
- Function parameters parametersCopyright © 2019 ELKI Development Team. License information.