HTML automatically generated with rman
Table of Contents
tablsqfit - general purpose least squares fitting program 
tablsqfit
in=table-file [parameter=value] 
tablsqfit takes a least squares
fit (minimized ChiSquared) of a set of datapoints (x(i),y(i)) where a functional
form y=f(x;a1,a2,...,an) is assumed. The functional form to be fitted has to
be specified by name at this stage. A number of options are possible. 
The
inputfile is an ascii file in a tabular format, where on every line there
must be an assigned column for the X- and Y-coordinates. An optional column
can be assigned to the errors in Y (the DY-coordinates). If no DY-column is
assigned, it is assumed that the errors in Y are all the same and equal
to 1. Lines starting with the ’#’ symbol are comment  lines. Certain models
(see fit= below) allow multiple X or Y columns. For fit=line a proper goodness-of-fit
is also  computed in a second fit an error column (dycol=) is given. 
For
most linear functions the non-linear version of this program will also work
fine, and has the added power that certain parameters can be fixed, and
error estimates are returned. See tabnllsqfit(1NEMO)
. 
The following
parameters are recognized in any order if the keyword is also given: 
- in=in-file
- (ascii) input file, a table of values from which data is taken. No default.
- xcol=col,... 
- The column(s) from which the (independant)  X-values are taken.
The first column is called 1 by definition [default: 1]. 
- ycol=col,... 
- The column(s)
from which the (dependant)  Y-values are taken [default: 2]. 
- dxcol=int 
- Optional
column from which the DX-values (errors in X) are taken.  Currently only
a straight line fit can use this option. See below. 
- dycol=int 
- Optional column
from which the DY-values (errors in Y) are taken. The inverse square of the
errors are uses as weights for those fits where these are used  [default:
none assigned]. 
- xrange=xmin:xmax 
- Range in X-values for which the fit is done.
If only one number is given, the other one is considered zero. [default:
no entry, i.e. all]. 
- fit=model 
- Model name what to fit. Currently implemented
are line, plane, poly, ellipse, peak, zero, imageshift, area,  gauss1d,
and gauss2d. [default: line]. 
- order=order 
- Highest order of the polynomial
fit (fit=poly) or  dimension of the hyper-plane fit (fit=plane). 0 would
fit a constant. 0 and 1 would have the same meaning in both the plane and
poly cases [Default: 0]. 
- out=filename 
- Optional output filename (only active
under certain options) where the data and residuals are stored. Column 1,
2 and 3 will contain the X, Y and residuals F(X)-Y respectively. A future
release will also store the errors (if it was given, see  keyword dycol
above) in the 4th column. [default: empty, no output file created]. 
- nsigma=sigma_factor
- A positive number will delete points more than sigma_factor from the fit,
and fit again. [Default: -1]. 
- estimate= 
- Optional estimate for parameters of
non-linear fits 
- nmax=max_lines 
- Maximum number of lines allocated if the
input file was being read from a pipe. If not, the routine file_lines(3NEMO)
is used to allocate space for the table. [Default: 10000]. 
- mpfit=mode 
- The
fitting mode in which mpfit(3NEMO)
 is used. 0=no errors. 1=only errors in
X used  (dxcol=), 2=only errors in Y used (dycol=), 3=errors in both X
and Y used. See also linreg(1NEMO)
. 
- tab=t|f 
- Output results in simple tabular
format. Default: false. 
  
Here is an example of creating an on-the-fly
table with a straight line, with some added noise and random weights between
1 and 2:
% nemoinp 1:100 | tabmath - - "%1+rang(0,10),ranu(1,2)" seed=123 | tablsqfit
-
      a  =    0.974146       uncertainty:  0.039389 
      b  =    1.755022       uncertainty:  2.291149 
      x0 =   -1.801599       uncertainty:  2.353083
      y0 =    1.755022       uncertainty:  2.291149
      chi-squared:    12668.983284 
      goodness-of-fit:    1.000000 (no Y errors supplied [dycol=])
      r:  0.92923
      prob:  3.65557e-44
      z:  1.65272
The fitted line is written either as y=ax+b or alternatively with their
(x0,y0) intercepts as x/x0 + y/y0=1. 
tabhist(1NEMO)
, tabmath(1NEMO)
,
gaussfit(1NEMO)
, linreg(1NEMO)
, tabnllsqfit(1NEMO)
 Numerical Recipies in
C, Ch.14 
mpfit: http://www.physics.wisc.edu/~craigm/idl/cmpfit.html
 (author:
Craig B. Markwardt) 
http://arxiv.org/abs/1008.4686:
 Data analysis recipes:
Fitting a model to data P (Hogg, Bovy & Lang 2010) 
Author
Peter Teuben 
~/src/kernel/tab    tablsqfit.c
 5-Aug-87    V1.0 created                         PJT
18-May-88    V1.4 various new options            PJT
31-May-88    V2.0 ’float’-> ’double’ for NumRec    PJT
14-nov-91    V2.4 ellips fit and various others     PJT
13-Mar-92    V2.5 added imageshift option        PJT
15-nov-93    V2.6 added nmax=                    PJT
13-jun-94    V2.7 code overhaul to add line/poly    PJT
8-jun-95     V2.8 added option fit=peak          PJT
26-jan-98    V2.9 added goodness-of-fit for fit=line     PJT
4-feb-98    V2.9a compute r (corr.coeff.) for line fit    PJT
14-aug-00    V3.0 added tab=                                PJT
8-aug-01    V3.1c added area, using natof, error in ellipse    PJT
24-feb-03    V3.4: added fit=zero    PJT
21-nov-05    V3.4b: added fit=gauss1d,gauss2d    PJT
9-dec-09    V4.0: added xcol= and mpfit=    PJT
 
Table of Contents