Class ParametricGaussianFunction
- java.lang.Object
 - 
- org.apache.commons.math.optimization.fitting.ParametricGaussianFunction
 
 
- 
- All Implemented Interfaces:
 java.io.Serializable,ParametricRealFunction
public class ParametricGaussianFunction extends java.lang.Object implements ParametricRealFunction, java.io.Serializable
A Gaussian function. Specifically:f(x) = a + b*exp(-((x - c)^2 / (2*d^2)))
The parameters have the following meaning:
- a is a constant offset that shifts f(x) up or down
 - b is the height of the peak
 - c is the position of the center of the peak
 - d is related to the FWHM by FWHM = 2*sqrt(2*ln(2))*d
 
- x^n: x raised to the power of n
 - exp(x): e^x
 - sqrt(x): the square root of x
 - ln(x): the natural logarithm of x
 
- Since:
 - 2.2
 - See Also:
 - Serialized Form
 
 
- 
- 
Constructor Summary
Constructors Constructor Description ParametricGaussianFunction()Constructs an instance. 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double[]gradient(double x, double[] parameters)Computes the gradient vector for a four variable version of the function where the parameters, a, b, c, and d, are considered the variables, not x.doublevalue(double x, double[] parameters)Computes value of function f(x) for the specified x and parameters a, b, c, and d. 
 - 
 
- 
- 
Method Detail
- 
value
public double value(double x, double[] parameters) throws ZeroExceptionComputes value of function f(x) for the specified x and parameters a, b, c, and d.- Specified by:
 valuein interfaceParametricRealFunction- Parameters:
 x- x valueparameters- values of a, b, c, and d- Returns:
 - value of f(x) evaluated at x with the specified parameters
 - Throws:
 java.lang.IllegalArgumentException- ifparametersis invalid as determined byvalidateParameters(double[])ZeroException- ifparametersvalues are invalid as determined byvalidateParameters(double[])
 
- 
gradient
public double[] gradient(double x, double[] parameters) throws ZeroExceptionComputes the gradient vector for a four variable version of the function where the parameters, a, b, c, and d, are considered the variables, not x. That is, instead of computing the gradient vector for the function f(x) (which would just be the derivative of f(x) with respect to x since it's a one-dimensional function), computes the gradient vector for the function f(a, b, c, d) = a + b*exp(-((x - c)^2 / (2*d^2))) treating the specified x as a constant.The components of the computed gradient vector are the partial derivatives of f(a, b, c, d) with respect to each variable. That is, the partial derivative of f(a, b, c, d) with respect to a, the partial derivative of f(a, b, c, d) with respect to b, the partial derivative of f(a, b, c, d) with respect to c, and the partial derivative of f(a, b, c, d) with respect to d.
- Specified by:
 gradientin interfaceParametricRealFunction- Parameters:
 x- x value to be used as constant in f(a, b, c, d)parameters- values of a, b, c, and d for computation of gradient vector of f(a, b, c, d)- Returns:
 - gradient vector of f(a, b, c, d)
 - Throws:
 java.lang.IllegalArgumentException- ifparametersis invalid as determined byvalidateParameters(double[])ZeroException- ifparametersvalues are invalid as determined byvalidateParameters(double[])
 
 - 
 
 -