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
interpret.)

Note to change the x to t in the formula.

JN

> 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
>

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to