Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
476 views
in Technique[技术] by (71.8m points)

mathematical optimization - R- Optimx for exponential function with 2 parameters - cannot evaluate function at initial parameter values

I feel like I missed something very obvious but after an hour of fiddling/googling I cannot get this to work. Code:

#Generate data from exponential model

xdata<-seq_len(100)
ydata<-2*exp(-2*(xdata+rnorm(100)))

#Fit exponential model to data
firstorder<-function(C0,k){
 ynew<-C0*exp(-k*xdata)
 RMSE<-sum((ynew-ydata)^2,na.rm=TRUE)
 return(RMSE)
}

#Initial parameter values
params<-c(1,1)

#Optimize
optimx(params,firstorder)

Error in optimx.check(par, optcfg$ufn, optcfg$ugr, optcfg$uhess, lower, : Cannot evaluate function at initial parameters

I tried a variety of ways to input the parameters.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Try

optimx(params, function(x) firstorder(x[1], x[2]))

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...