[R] nls function

David Winsemius dwinsemius at comcast.net
Tue Apr 10 22:19:22 CEST 2012


On Apr 10, 2012, at 4:03 PM, nerak13 wrote:

> Hi,
>
> I've got the following data:
>
> x<-c(1,3,5,7)
> y<-c(37.98,11.68,3.65,3.93)
> penetrationks28<-dataframe(x=x,y=y)
>
> now I need to fit a non linear function so I did:
>
> fit <- nls(y ~ I(a+b*exp(1)^(-c * x)), data = penetrationks28, start =
> list(a=0,b = 1,c=1), trace = T)
>
> The error message I get is:
> Error in nls(y ~ I(a + b * exp(1)^(-c * x)), data = penetrationks28,  
> start =
> list(a = 0,  :
>  singular gradient
>
> I've tried to change the startervalues but it always gives the same  
> error
>
> I've also tried the following adjustment hoping that the c value  
> would be
> negative:
>
> fit <- nls(y ~ I(a+b*exp(1)^(c * x)), data = penetrationks28, start  
> = list(a
> = 1,b = 1,c=1), trace = T)
>
> but then the error message is:
> Error in nls(y ~ I(a + b * exp(1)^(c * x)), data = penetrationks28,  
> start =
> list(a = 1,  :
>  number of iterations exceeded maximum of 50
>
> What can I do ?
>

?nls

"Warning:
Do not use nls on artificial "zero-residual" data."

Get more data. (with 3 coefficients and 4 data points you have created  
a zero-residual situation even if it's not "artificial".)

-- 
David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list