簡體   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