【问题标题】:DEoptim package - Argument is missing with no defaultDEoptim 包 - 缺少参数,没有默认值
【发布时间】:2020-05-01 06:35:33
【问题描述】:

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

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

【问题讨论】:

    标签: r optimization


    【解决方案1】:

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

    您需要使用 DEoptim 包、as with optim 函数传入一个向量而不是 2 个单独的变量。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-17
      • 1970-01-01
      • 2016-06-08
      • 2017-12-09
      • 2020-07-04
      相关资源
      最近更新 更多