org.apache.commons.math.optimization.fitting

## Class GaussianFunction

- java.lang.Object
- - org.apache.commons.math.optimization.fitting.GaussianFunction

All Implemented Interfaces:
  Serializable, DifferentiableUnivariateRealFunction, UnivariateRealFunction

    public class GaussianFunction
    extends Object
    implements DifferentiableUnivariateRealFunction, Serializable

A Gaussian function. Specifically:

`f(x) = a + b*exp(-((x - c)^2 / (2*d^2)))`

Notation key:

- `x^n`: `x` raised to the power of `n`
- `exp(x)`: e`^x`

References:

- Wikipedia: Gaussian function

Since:
  2.2
Version:
  $Revision: 1037327 $ $Date: 2010-11-20 21:57:37 +0100 (sam. 20 nov. 2010) $
See Also:
  `GaussianDerivativeFunction`, `ParametricGaussianFunction`, Serialized Form

### Field Summary

Fields
`private double` `a` Parameter a of this function.
`private double` `b` Parameter b of this function.
`private double` `c` Parameter c of this function.
`private double` `d` Parameter d of this function.
`private static long` `serialVersionUID` Serializable version identifier.

### Constructor Summary

Constructors
Constructor and Description
`GaussianFunction(double[] parameters)` Constructs an instance with the specified parameters.
`GaussianFunction(double a, double b, double c, double d)` Constructs an instance with the specified parameters.

### Method Summary

Methods
`UnivariateRealFunction` `derivative()` Returns the derivative of the function
`double` `getA()` Gets `a` parameter value.
`double` `getB()` Gets `b` parameter value.
`double` `getC()` Gets `c` parameter value.
`double` `getD()` Gets `d` parameter value.
`double` `value(double x)` Compute the value for the function.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### serialVersionUID

    private static final long serialVersionUID

Serializable version identifier.

See Also:
  Constant Field Values

#### a

    private final double a

Parameter a of this function.

#### b

    private final double b

Parameter b of this function.

#### c

    private final double c

Parameter c of this function.

#### d

    private final double d

Parameter d of this function.

### Constructor Detail

#### GaussianFunction

    public GaussianFunction(double a,
                    double b,
                    double c,
                    double d)

Constructs an instance with the specified parameters.

Parameters:
  `a` - `a` parameter value
  `b` - `b` parameter value
  `c` - `c` parameter value
  `d` - `d` parameter value
Throws:
  `IllegalArgumentException` - if `d` is 0

#### GaussianFunction

    public GaussianFunction(double[] parameters)

Constructs an instance with the specified parameters.

Parameters:
  `parameters` - `a`, `b`, `c`, and `d` parameter values
Throws:
  `IllegalArgumentException` - if `parameters` is null, `parameters` length is not 4, or if `parameters[3]` is 0

### Method Detail

#### derivative

    public UnivariateRealFunction derivative()

Returns the derivative of the function

Specified by:
  `derivative` in interface `DifferentiableUnivariateRealFunction`
Returns:
  the derivative function

#### value

    public double value(double x)

Compute the value for the function.

Specified by:
  `value` in interface `UnivariateRealFunction`
Parameters:
  `x` - the point for which the function value should be computed
Returns:
  the value

#### getA

    public double getA()

Gets `a` parameter value.

Returns:
  `a` parameter value

#### getB

    public double getB()

Gets `b` parameter value.

Returns:
  `b` parameter value

#### getC

    public double getC()

Gets `c` parameter value.

Returns:
  `c` parameter value

#### getD

    public double getD()

Gets `d` parameter value.

Returns:
  `d` parameter value