## COMFIT

The COMFIT function fits the paired data { xi , yi } to one of six common types of approximating models using a gradient-expansion least-squares method. The result is a vector containing the model parameters a 0 , a 1 , a 2 , etc.

This routine is written in the IDL language. Its source code can be found in the file ``` comfit.pro``` in the ``` lib``` subdirectory of the IDL distribution.

### Calling Sequence

Result = COMFIT( X, Y, A )

### Arguments

#### X

An n -element integer, single-, or double-precision floating-point vector.

#### Y

An n -element integer, single-, or double-precision floating-point vector.

#### A

A vector of initial estimates for each model parameter. The length of this vector depends upon the type of model selected.

### Keywords

NOTE: One of the following keywords specifying a type of model must be set when using COMFIT. If you do not specify a model, IDL will display a warning message when COMFIT is called.

#### EXPONENTIAL

Set this keyword to compute the parameters of the exponential model.

#### GEOMETRIC

Set this keyword to compute the parameters of the geometric model.

#### GOMPERTZ

Set this keyword to compute the parameters of the Gompertz model.

#### HYPERBOLIC

Set this keyword to compute the parameters of the hyperbolic model.

#### LOGISTIC

Set this keyword to compute the parameters of the logistic model.

#### LOGSQUARE

Set this keyword to compute the parameters of the logsquare model.

#### SIGMA

Set this keyword to a named variable that will contain a vector of standard deviations for the computed model parameters.

#### WEIGHTS

Set this keyword equal to a vector of weights for Y i . This vector should be the same length as X and Y . The error for each term is weighted by WEIGHTS i when computing the fit. Frequently, WEIGHTS i  = 1.0/s 2 i , where s is the measurement error or standard deviation of Y i (Gaussian or instrumental weighting), or WEIGHTS = 1/Y (Poisson or statistical weighting). If WEIGHTS is not specified, WEIGHTS i is assumed to be 1.0.

#### YFIT

Set this keyword to a named variable that will contain an n -element vector of y-data corresponding to the computed model parameters.

### Example

Define two n -element vectors of paired data.

X = [ 2.27, 15.01, 34.74, 36.01, 43.65, 50.02, 53.84, 58.30, \$

62.12, 64.66, 71.66, 79.94, 85.67, 114.95]

Y = [ 5.16, 22.63, 34.36, 34.92, 37.98, 40.22, 41.46, 42.81, \$

43.91, 44.62, 46.44, 48.43, 49.70, 55.31]

Define a 3-element vector of initial estimates for the logsquare model.

A = [1.5, 1.5, 1.5]

Compute the model parameters of the logsquare model, A[0], A[1], & A[2].

result = COMFIT(X, Y, A, /LOGSQUARE)

The result should be the 3-element vector: [1.42494, 7.21900, 9.18794].