具有2个参数的指数函数的R- Optimx - 无法评估初始参数值的函数

Pin*_*oes 5 r mathematical-optimization

我觉得我错过了一些非常明显的东西,但经过一个小时的摆弄/谷歌搜索,我无法让这个工作.码:

#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)
Run Code Online (Sandbox Code Playgroud)

optimx.check出错(par,optcfg $ ufn,optcfg $ ugr,optcfg $ uhess,lower,:无法在初始参数下计算函数

我尝试了各种方法来输入参数.

G. *_*eck 8

尝试

optimx(params, function(x) firstorder(x[1], x[2]))
Run Code Online (Sandbox Code Playgroud)

  • 如果要改变C0和k,则它们必须在单个对象中.固定参数单独传递.`f < - function(x,xdata,ydata)......; optimx(start,f,xdata = xdata,ydata = ydata)`.有关另一个例子,请参阅`?optimx`的示例部分中的`genrose.f`. (3认同)