我想拟合一条曲线,模型如下图。
在这个模型中,有四个参数(alpha,beta,gamma和Rd)要优化,现在I和P(I)的数据已经有了,并且使用了package in的函数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个元素适用于第i个参数。所以我设置了向量lower和upper来代表 alpha、beta、gamma 和 Rd。我想问我的错在哪里以及如何调整?