aboutsummaryrefslogtreecommitdiff
path: root/math/nlfit/README
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /math/nlfit/README
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'math/nlfit/README')
-rw-r--r--math/nlfit/README81
1 files changed, 81 insertions, 0 deletions
diff --git a/math/nlfit/README b/math/nlfit/README
new file mode 100644
index 00000000..c47732af
--- /dev/null
+++ b/math/nlfit/README
@@ -0,0 +1,81 @@
+ THE NLFIT PACKAGE
+
+This subdirectory contains the routines in the non-linear least squares
+fitting package NLFIT. NLFIT uses the Levenberg-Marquardt method to
+to solve for the parameters of a user specified non-linear equation.
+The user must supply two routines. The first routine evaluates the function
+in terms of its parameters. The second routine evaluates the function and its
+derivatives in terms of its parameters. The user must also supply initial
+guesses for the parameters and parameter increments, the list of
+parameters to be varied during the fitting processa, a fitting
+tolerance and the maximum number of iterations.
+
+The principal entry points into the NLFIT are listed below.
+
+ nlinit - Initialize the fitting routines
+ nlstati - Get the value of an integer NLFIT parameter
+ nlstat - Get the value of floating point NLFIT parameter
+ nlpget - Get the values of the fitted parameters
+ nlfree - Free memory allocated by nlinit
+ nlfit - Fit the function
+ nleval - Evaluate the curve at a given point
+ nlvector - Evaluate the curve at an array of points
+ nlerrors - Compute the fits statistics and errors in the parameters
+
+The calling sequences for the above routines are listed below. The [ird]
+stand for integer, real and double precision versions of each routine
+respectively.
+
+ nlinit[rd] (nl, address(fnc), address(dfnc), params, dparams,
+ nparams, plist, nfparams, tol, itmax)
+ ival = nlstati (nl, param)
+ [rd]val = nlstat[rd] (nl, param)
+ nlpget[rd] (nl, params, nparams)
+ nlfree[rd] (nl)
+ nlfit[rd] (nl, x, z, w, npts, nvars, wtflag, ier)
+ [rd]val = nleval[rd] (nl, x, nvars)
+ nlvector[rd] (nl, x, zfit, npts, nvars)
+ nlerrors[rd] (nl, z, zfit, wts, npts, variance, chisqr, errors)
+
+The user supplied functions fnc and dfnc have the following calling
+sequences.
+
+ fnc (x, nvars, params, nparams, zfit)
+ dfnc (x, nvars, params, dparams, nparams, zfit, derivs)
+
+ The address of the user supplied function can be determined with a
+call to locpr as in
+
+ address = locpr (fnc)
+
+The user definitions for the NLFIT package can be found in the file
+lib$math/nlfit.h and can be made available to user applications programs
+with the statement "include <math/nlfit.h>".
+
+The permitted values for the param argument in nlstat[ird] are the following.
+
+define NLNPARAMS integer # Number of parameters
+define NLNFPARAMS integer # Number of fitted parameters
+define NLITMAX integer # Maximum number of iterations
+define NLITER integer # Current number of iterations
+define NLNPTS integer # Number of points
+define NLSUMSQ real/double # Current reduced chi-squared
+define NLOLDSQ real/double # Previous reduced chi-squared
+define NLLAMBDA real/double # Value of lambda factor
+define NLTOL real/double # Fitting tolerance in %chi-squared
+define NLSCATTER real/double # Mean scatter in the fit
+
+The permitted values of the wtflag argument in nlfit[rd] are the following.
+
+define WTS_USER # User enters weights
+define WTS_UNIFORM # Equal weights
+define WTS_CHISQ # Chi-squared weights
+define WTS_SCATTER # Weights include scatter term
+
+The permitted error values returned from nlfit[rd] are the following.
+
+define DONE 0 # Solution converged
+define SINGULAR 1 # Singular matrix
+define NO_DEG_FREEDOM 2 # Too few points
+define NOT_DONE 3 # Solution did not converge
+