r-DEoptim包-缺少参数,没有默认值



Im试图使用DEoptim在-1<x<1,-1<y<1,但我得到了Error in FUN(newX[, i], ...) : argument "y" is missing, with no default,我不知道我应该为任务"y"做什么

install.packages("Rmpfr")
install.packages("DEoptim")
library(gmp)
library(Rmpfr)
library(parallel) # https://cran.r-project.org/web/packages/DEoptim/vignettes/DEoptim.pdf
library(DEoptim)
z = function(x,y) {
(exp(sin(60.0*x)) + sin(50.0*exp(y)) + sin(80.0*sin(x)) + sin(sin(70.0*y)) - sin(10.0*(x+y)) + (x*x+y*y)/4.0)
}
optimized_Minimum <- DEoptim(z, lower = c(-1,-1), upper = c(1,1),
control=list(storepopfrom=1, trace=FALSE))
# optimized_Minimum <- optim(z, lower = c(-1,-1), upper = c(1,1), method = "Brent")

DEoptim不希望您将两个单独的参数传递给函数(xy(,但您仍然可以求解多个变量。

optim函数一样,DEoptim包需要传入一个向量,而不是两个单独的变量。

我用链接解决方案的功能测试了这一点,它起到了作用:

fxcalc <- function(s,t){(1-(1-(parametros$ap/xm)^(s))^t)*100}
suma   <- function(s,t){(parametros$fx-fxcalc(s,t))^2}
func <- function(st){
s  <- st[1]
t  <- st[2]
sum(suma(s,t))
}
optimized_Minimum <- DEoptim(func, lower = c(-1,-1), upper = c(1,1),
control=list(storepopfrom=1, trace=FALSE))
summary(optimized_Minimum)
***** summary of DEoptim object ***** 
best member   :  1 1 
best value    :  0 
after         :  200 generations 
fn evaluated  :  402 times 
*************************************

最新更新