DEoptim:如何优化多个参数?

时间:2017-04-21 15:42:27

标签: r parameters deoptimization

我想拟合一条曲线,模型如下图所示。

enter image description here

在这个模型中,有四个参数(alpha,beta,gamma和Rd)要优化,现在I和P(I)的数据已经存在,DEoptim()的函数DEoptim使用R中的包,这是我的代码。

library(DEoptim)
I <-c(1.200,49.600,99.200,148.500,199.300,399.375,598.200,799.500,1099.600,1398.100,1698.600,1844.333)
pn <-c(-0.0495485,0.4166522,0.8954644,1.4592700,1.9931400,2.9114072,3.0808183,3.2427603,3.3916783,3.6078660,4.1020850,4.0947913)

fn.piao <- function(alpha,beta,gamma,Rd){
   pn <- (alpha-alpha*beta*par)/(1+gamma*par)-Rd      
}

lower <- c(0,0,0,0)
upper <- c(1,1,1,100)
DE.control <- list(itermax=500,NP=100)

DE.piao <- DEoptim(lower,upper,fn=fn.piao,par=par,control=DE.control)

但是R显示如下错误

  

DEoptim中的错误(lower,upper,fn = fn.piao,par = par,control =   DE.control):对象不是矩阵

在论文(KM Mullen2011)中,它说 i lower 元素和 upper 适用于 i th参数。所以我设置矢量 lower upper 来表示alpha,beta,gamma和Rd.i想知道我的错在哪里以及如何调整?

0 个答案:

没有答案