繁体   English   中英

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

[英]DEoptim package - Argument is missing with no default

我试图使用 DEoptim 在 -1 < x < 1, -1 < y < 1 中找到 z 的全局最小值,但我Error in FUN(newX[, i], ...): argument "y" is missing, with no default遇到错误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不希望您将 2 个单独的 arguments 传递给您的 function ( xy ),但您仍然可以解决多个变量。

您需要使用DEoptim package 传递一个向量而不是 2 个单独的变量, 就像optim function 一样。

我使用链接解决方案中的功能对此进行了测试,并且有效:

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 *************************************

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM