[R] nls(): Levenberg-Marquardt, Gauss-Newton, plinear - PI curve fitting

From: Christfried Kunath <mailpuls_at_gmx.net>
Date: Tue 21 Jun 2005 - 19:57:39 EST


Hello,

i have a problem with the function nls().

This are my data in "k":

        V1 V2
[1,] 0 0.367
[2,] 85 0.296
[3,] 122 0.260
[4,] 192 0.244
[5,] 275 0.175
[6,] 421 0.140
[7,] 603 0.093
[8,] 831 0.068
[9,] 1140 0.043
 

With the nls()-function i want to fit following formula whereas a,b, and c are variables: y~1/(a*x^2+b*x+c)

With the standardalgorithm "Newton-Gauss" the fitted curve contain an peak near the second x,y-point.
This peak is not correct for my purpose. The fitted curve should descend from the maximum y to the minimum y given in my data.

The algorithm "plinear" give me following error:

   phi function(x,y) {
k.nls<-nls(y~1/(a*(x^2)+b*x+c),start=c(a=0.0005,b=0.02,c=1.5),alg="plinear")

       coef(k.nls)
   }

   phi(k[,1],k[,2])

   Error in qr.solve(QR.B, cc) : singular matrix `a' in solve

I have found in the mailinglist
"
https://stat.ethz.ch/pipermail/r-help/2001-July/012196.html" that is if t he data are artificial. But the data are from my measurment.

The commercial software "Origin V.6.1" solved this problem with the Levenberg-Marquardt algorithm how i want. The reference results are: a = 9.6899E-6, b = 0.00689, c = 2.72982

What are the right way or algorithm for me to solve this problem and what means this error with alg="plinear"?

Thanks in advance.

-- 
Weitersagen: GMX DSL-Flatrates mit Tempo-Garantie!
Ab 4,99 Euro/Monat: http://www.gmx.net/de/go/dsl

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Received on Tue Jun 21 20:03:20 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:32:55 EST