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.
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.
Examples
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]
A = [1.5, 1.5, 1.5]
result = COMFIT(X, Y, A, /LOGSQUARE)
The result should be the 3-element vector: [1.42494, 7.21900, 9.18794].
Syntax
Result = COMFIT( X, Y, A [, /DOUBLE | , /EXPONENTIAL | , /GEOMETRIC | , /GOMPERTZ | , /HYPERBOLIC | , /ITMAX | , /LOGISTIC | , /LOGSQUARE | , TOL=value] [, CHISQ=variable] [, ITER=variable] [, SIGMA=variable] [, STATUS=variable] [, WEIGHTS=vector] [, YERROR=variable] [, YFIT=variable] )
Return Value
Results in a vector containing the model parameters a0, a1, a2, etc.
Arguments
X
An n-element vector containing the independent variable values. X may be of type integer, floating point, or double-precision floating-point.
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.
CHISQ
Set this keyword to a named variable that will contain the value of the reduced chi-square goodness-of-fit statistic.
EXPONENTIAL
Set this keyword to compute the parameters of the exponential model.
DOUBLE
Set this keyword to force the computation to be done in double-precision arithmetic.
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.
ITER
Set this keyword equal to a named variable that will contain the number of iterations performed.
ITMAX
Set this keyword to specify the maximum number of iterations. The default value is 20.
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.
STATUS
Set this keyword to a named variable that will contain an integer indicating the status of the computation. Possible return values are:
0 |
The computation was successful.
|
1 |
The computation failed. Chi-square was increasing without bounds.
|
2 |
The computation failed to converge in ITMAX iterations.
|
TOL
Set this keyword to specify the desired convergence tolerance. The routine returns when the relative decrease in chi-squared is less than TOL in one iteration. The default value is 1 x 10-3.
WEIGHTS
Set this keyword equal to a vector of weights for Yi. This vector should be the same length as X and Y. The error for each term is weighted by WEIGHTSi when computing the fit. Frequently, WEIGHTSi = 1.0/σi2, where σ is the measurement error or standard deviation of Yi (Gaussian or instrumental weighting), or WEIGHTS = 1/Y (Poisson or statistical weighting). If WEIGHTS is not specified, WEIGHTSi is assumed to be 1.0.
YERROR
Set this keyword to a named variable that will contain the standard error between YFIT and Y.
YFIT
Set this keyword to a named variable that will contain an n-element vector of y-data corresponding to the computed model parameters.
Version History
4.0 |
Introduced |
6.4 |
Added CHISQ, DOUBLE, ITER, ITMAX, STATUS, TOL, and YERROR keywords.
|
See Also
CURVEFIT, LADFIT, LINFIT, LMFIT, POLY_FIT, SVDFIT