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
不希望您将两个单独的参数传递给函数(x
和y
(,但您仍然可以求解多个变量。
与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 *************************************