DEoptim package - отсутствует аргумент без значения по умолчанию - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь использовать DEoptim, чтобы найти глобальный минимум z в -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")

1 Ответ

1 голос
/ 19 апреля 2020

DEoptim не ожидает, что вы передадите ей 2 отдельных аргумента вашей функции (x и y), но вы все равно можете найти несколько переменных.

Вам необходимо передать вектор, а не две отдельные переменные с пакетом DEoptim, как с функцией optim.

Я проверил это с помощью функций из связанного решения, и это сработало:

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 
*************************************
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...