[R] Error using nls function

J C Nash pro|jcn@@h @end|ng |rom gm@||@com
Sat Mar 27 21:03:14 CET 2021

Use nlsr::nlxb() to get analytic derivatives. Though your problem is pretty rubbishy --
look at the singular values. (You'll need to learn some details of nlxb() results to

Note to change the x to t in the formula.


> f1 <- y ~  a+b*sin(2*pi*t)+c*cos(2*pi*t)
> res1 <- nls(f1, data=data.frame(t,y), start=list(a=1,b=0, c=1))
Error in nlsModel(formula, mf, start, wts) :
  singular gradient matrix at initial parameter estimates
> library(nlsr)
> res1n <- nlxb(f1, data=data.frame(t,y), start=list(a=1,b=0, c=1))
> res1n
nlsr object: x
residual sumsquares =  28.644  on  12 observations
    after  3    Jacobian and  4 function evaluations
  name            coeff          SE       tstat      pval      gradient    JSingval
a                11.2235            NA         NA         NA  -2.473e-12       4.899
b           -1.55541e-09            NA         NA         NA   1.595e-14   8.399e-15
c                11.2235            NA         NA         NA  -2.473e-12   5.053e-16

More information about the R-help mailing list