You misused nls(). Observe:
x<- 1:101
y2 <- 5*exp(x/20) + runif(101)/100 # nls will NOT converge for perfect data.
nls(y2 ~ exp(A*x), start=list(A=.1))
Nonlinear regression model
model: y2 ~ exp(A * x)
data: parent.frame()
A
0.06709
residual sum-of-squares: 136703
Number of iterations to convergence: 7
Achieved convergence tolerance: 2.694e-06
Which is a lousy fit. Compare with
nls(y2~B*exp(A*x), start=list(A=.1,B=.3))
Nonlinear regression model
model: y2 ~ B * exp(A * x)
data: parent.frame()
A B
0.050 5.001
residual sum-of-squares: 0.001398
Number of iterations to convergence: 13
Achieved convergence tolerance: 5.073e-08
So either form works, but only one will give you a result that fits your
original data.
<quote>
Henri Mone <henriMone <at> gmail.com> writes:
> I want to fit to my data an exponential function with following
> functional form:
> y=exp(a*x)
>
> I used the function "nls" but this gives me exponential fits with
> following functional form:
> y=l*exp(a*x)
>
> With "l" being an scaling factor. What do I need to change in my R code?
>
> t.dataFitModel=nls(t.dataForFitY ~exp(a*t.dataForFitX),
> data=t.dataForFit, start=list(a = 0.01242922), trace=TRUE, algorithm =
> "plinear")
Use an algorithm other than "plinear", I think (admittedly this is
not at all clear from ?nls -- you would really have to go to the
references to find out).
--
Sent from my Cray XK6
"Pendeo-navem mei anguillae plena est."
______________________________________________
R-help@r-project.org mailing list
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.