gsl_nls_large | R Documentation |
Determine the nonlinear least-squares estimates of the parameters of a large
nonlinear model system using the gsl_multilarge_nlinear
module present in
the GNU Scientific Library (GSL).
gsl_nls_large(fn, ...) ## S3 method for class 'formula' gsl_nls_large( fn, data = parent.frame(), start, algorithm = c("lm", "lmaccel", "dogleg", "ddogleg", "subspace2D", "cgst"), control = gsl_nls_control(), jac, fvv, trace = FALSE, subset, weights, na.action, model = FALSE, ... ) ## S3 method for class 'function' gsl_nls_large( fn, y, start, algorithm = c("lm", "lmaccel", "dogleg", "ddogleg", "subspace2D", "cgst"), control = gsl_nls_control(), jac, fvv, trace = FALSE, weights, ... )
fn |
a nonlinear model defined either as a two-sided formula including variables and parameters, or as a function returning a numeric vector, with first argument the vector of parameters to be estimated. See the individual method descriptions below. |
data |
an optional data frame in which to evaluate the variables in |
y |
numeric response vector if |
start |
a named list or named numeric vector of starting estimates. |
algorithm |
character string specifying the algorithm to use. The following choices are supported:
|
control |
an optional list of control parameters to tune the least squares iterations.
See |
jac |
a function returning the |
fvv |
a function returning an |
trace |
logical value indicating if a trace of the iteration progress should be printed.
Default is |
subset |
an optional vector specifying a subset of observations to be used in the fitting process.
This argument is only used if |
weights |
an optional numeric vector of (fixed) weights. When present, the objective function is weighted least squares. |
na.action |
a function which indicates what should happen when the data contain |
model |
a logical value. If |
... |
additional arguments passed to the calls of |
If fn
is a formula
returns a list object of class nls
.
If fn
is a function
returns a list object of class gsl_nls
.
See the individual method descriptions for the structures of the returned lists and the generic functions
applicable to objects of both classes.
formula
: If fn
is a formula
, the returned list object is of classes gsl_nls
and nls
.
Therefore, all generic functions applicable to objects of class nls
, such as anova
, coef
, confint
,
deviance
, df.residual
, fitted
, formula
, logLik
, nobs
, predict
, print
, profile
,
residuals
, summary
, vcov
and weights
are also applicable to the returned list object.
In addition, a method confintd
is available for inference of derived parameters.
function
: If fn
is a function
, the first argument must be the vector of parameters and
the function should return a numeric vector containing the nonlinear model evaluations at
the provided parameter and predictor or covariate vectors. In addition, the argument y
needs to contain the numeric vector of observed responses, equal in length to the numeric
vector returned by fn
. The returned list object is (only) of class gsl_nls
.
Although the returned object is not of class nls
, the following generic functions remain
applicable for an object of class gsl_nls
: anova
, coef
, confint
, deviance
,
df.residual
, fitted
, formula
, logLik
, nobs
, predict
, print
,
residuals
, summary
, vcov
and weights
. In addition, a method confintd
is available for inference of derived parameters.
M. Galassi et al., GNU Scientific Library Reference Manual (3rd Ed.), ISBN 0954612078.
gsl_nls
https://www.gnu.org/software/gsl/doc/html/nls.html
# Large NLS example # (https://www.gnu.org/software/gsl/doc/html/nls.html#large-nonlinear-least-squares-example) ## number of parameters p <- 250 ## model function f <- function(theta) { c(sqrt(1e-5) * (theta - 1), sum(theta^2) - 0.25) } ## jacobian function jac <- function(theta) { rbind(diag(sqrt(1e-5), nrow = length(theta)), 2 * t(theta)) } ## dense Levenberg-Marquardt gsl_nls_large( fn = f, ## model y = rep(0, p + 1), ## (dummy) responses start = 1:p, ## start values algorithm = "lm", ## algorithm jac = jac, ## jacobian control = list(maxiter = 250) ) ## dense Steihaug-Toint conjugate gradient gsl_nls_large( fn = f, ## model y = rep(0, p + 1), ## (dummy) responses start = 1:p, ## start values jac = jac, ## jacobian algorithm = "cgst" ## algorithm ) ## sparse Jacobian function jacsp <- function(theta) { rbind(Matrix::Diagonal(x = sqrt(1e-5), n = length(theta)), 2 * t(theta)) } ## sparse Levenberg-Marquardt gsl_nls_large( fn = f, ## model y = rep(0, p + 1), ## (dummy) responses start = 1:p, ## start values algorithm = "lm", ## algorithm jac = jacsp, ## sparse jacobian control = list(maxiter = 250) ) ## sparse Steihaug-Toint conjugate gradient gsl_nls_large( fn = f, ## model y = rep(0, p + 1), ## (dummy) responses start = 1:p, ## start values jac = jacsp, ## sparse jacobian algorithm = "cgst" ## algorithm )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.