2014-03-04 53 views
5

我覺得我錯過了非常明顯的事情,但經過一小時的擺弄/谷歌搜索之後,我無法得到它的工作。代碼:帶有2個參數的指數函數R- Optimx - 無法在初始參數值下評估函數

#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) 

錯誤optimx.check(參數,optcfg $ UFN,optcfg $ UGR,optcfg $ uhess,低,: 不能在初始參數計算功能

我嘗試了各種辦法輸入參數。

回答

8

嘗試

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

它的工作原理!多謝了。所以,關鍵是要得到一個參數來optimx? – Pinemangoes

+0

是的,這是正確的。 –

+0

如果我想用2個參數指定要使用的x和y數據來擴展函數,該怎麼辦?所以'一階(C0,K,XDATA,YDATA){'。我仍然可以使用optimx來針對固定的'xdata,ydata'對C0和k參數進行優化嗎? – Pinemangoes