Description Usage Arguments Details Value Author(s) References See Also Examples
Given a nonlinear model expressed as a vector valued residual function
resfn
and a start vector of parameter values for that function,
attempts to find the minimum of the residual sum of squares using the
Nash variant (Nash, 1979) of the Marquardt algorithm, where the linear
sub-problem is solved by a qr method. This is a restructured version
of a function by the same name from package nlmrt
which is now
deprecated.
1 2 |
resfn |
A function that evaluates the residual vector for computing the elements of
the sum of squares function at the set of parameters |
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. The Jacobian MUST be returned as the attribute "gradient" of this function,
allowing |
start |
A named parameter vector. For our example, we could use
start=c(b1=1, b2=2.345, b3=0.123)
|
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 |
weights |
A vector of fixed weights. The objective function that will be minimized is the sum of squares where each residual is multiplied by the square root of the corresponding weight. Default (NULL) implies unit weights. |
data |
Data frame of variables used by resfn and jacfn to compute the required residuals and Jacobian. |
control |
A list of controls for the algorithm. These are:
|
... |
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'. |
nlfb
attempts to solve the nonlinear sum of squares problem by using
a variant of Marquardt's approach to stabilizing the Gauss-Newton method using
the Levenberg-Marquardt adjustment. This is explained in Nash (1979 or 1990) in
the sections that discuss Algorithm 23.
In this code, we solve the (adjusted) Marquardt equations by use of the
qr.solve()
. Rather than forming the J'J + lambda*D matrix, we augment
the J matrix with extra rows and the y vector with null elements.
A list of the following items
coefficients |
A named vector giving the parameter values at the supposed solution. |
ssquares |
The sum of squared residuals at this set of parameters. |
resid |
The residual vector at the returned parameters. |
jacobian |
The jacobian matrix (partial derivatives of residuals w.r.t. the parameters) at the returned parameters. |
feval |
The number of residual evaluations (sum of squares computations) used. |
jeval |
The number of Jacobian evaluations used. |
John C Nash <nashjc@uottawa.ca>
Nash, J. C. (1979, 1990) _Compact Numerical Methods for Computers. Linear Algebra and Function Minimisation._ Adam Hilger./Institute of Physics Publications
others!!
Function nls()
, packages optim
and optimx
.
1 | cat("See examples in nls-package.Rd\n")
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.