1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
.TH CURFIT 3M
.SH NAME
curfit
.SH DESCRIPTION
subroutine curfit.f
source
Bevington, pages 237-239.
purpose
make least-squares fit to a non-linear function
with a linearization of the fitting function
usage
call curfit (x, y, sigmay, npts, nterms, mode, a, deltaa,
sigmaa, flamda, yfit, chisqr)
description of parameters
x - array of data points for independent variable
y - array of data points for dependent variable
sigmay - array of standard deviations for y data points
npts - number of pairs of data points
nterms - number of parameters
mode - determines method of weighting least-squares fit
+1 (instrumental) weight(i) = 1./sigmay(i)**2
0 (no weighting) weight(i) = 1.
-1 (statistical) weight(i) = 1./y(i)
a - array of parameters
deltaa - array of increments for parameters a
sigmaa - array of standard deviations for parameters a
flamda - proportion of gradient search included
yfit - array of calculated values of y
chisqr - reduced chi square for fit
subroutines and function subprograms required
functn (x, i, a)
evaluates the fitting function for the ith term
fchisq (y, sigmay, npts, nfree, mode, yfit)
evaluates reduced chi squared for fit to data
fderiv (x, i, a, deltaa, nterms, deriv)
evaluates the derivatives of the fitting function
for the ith term with respect to each parameter
matinv (array, nterms, det)
inverts symmetric two-dimension matrix of degree nterms
and calculates its determinant
comments
valid for nterms up to 10
set flamda = 0.001 at beginning of search
|