Usage
nlfb(start, resfn, jacfn=NULL, trace=FALSE, lower=-Inf, upper=Inf, maskidx=NULL, control, ...)
Arguments
resfn
A function that evaluates the residual vector for computing the elements of
the sum of squares function at the set of parameters start
.
jacfn
A function that evaluates the Jacobian of the sum of squares function, that
is, the matrix of partial derivatives of the residuals with respect to each
of the parameters. If NULL (default), uses an approximation.
?? put in character form as in optimx??
start
A named parameter vector. For our example, we could use
start=c(b1=1, b2=2.345, b3=0.123)
nls()
takes a list, and that is permitted here also.
trace
Logical TRUE if we want intermediate progress to be reported. Default is FALSE.
lower
Lower bounds on the parameters. If a single number, this will be applied to all
parameters. Default -Inf.
upper
Upper bounds on the parameters. If a single number, this will be applied to all
parameters. Default Inf.
maskidx
Vector if indices of the parameters to be masked. These parameters will NOT be altered
by the algorithm. Note that the mechanism here is different from that in nlxb
which uses the names of the parameters. control
A list of controls for the algorithm. These are:
watch
- Monitor progress if TRUE. Default is FALSE.
phi
- Default is phi=1, which adds phi*Identity to Jacobian inner product.
lamda
- Initial Marquardt adjustment (Default 0.0001). Odd spelling is deliberate.
offset
- Shift to test for floating-point equality. Default is 100.
laminc
- Factor to use to increase lamda. Default is 10.
lamdec
- Factor to use to decrease lamda is lamdec/laminc. Default lamdec=4.
femax
- Maximum function (sum of squares) evaluations. Default is 10000,
which is extremely aggressive.
jemax
- Maximum number of Jacobian evaluations. Default is 5000.
ndstep
- Stepsize to use to computer numerical Jacobian approximatin. Default
is 1e-7.
rofftest
- Default is TRUE. Use a termination test of the relative offset
orthogonality type. Useful for nonlinear regression problems.
smallsstest
- Default is TRUE. Exit the function if the sum of squares falls
below (100 * .Machine$double.eps)^4 times the initial sumsquares. This is a test
for a ``small'' sum of squares, but there are problems which are very extreme
for which this control needs to be set FALSE.
...
Any data needed for computation of the residual vector from the expression
rhsexpression - lhsvar. Note that this is the negative of the usual residual,
but the sum of squares is the same. It is not clear how the dot variables should
be used, since data should be in 'data'.