如何在R中优化双变量函数

时间:2018-03-22 19:15:15

标签: r optimization minimization frequency-distribution

我一直在尝试优化以下功能,但没有成功:

parametros <- data.frame(ap=c(11.1,7.07,6.3,4.75,4,3.35), 
fx=c(41.2012,39.3732,25.2912,10.3455,1.2253,0.4017))
xm<-11.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(s,t){sum(suma(s,t))}

作为“func()”函数我试图最小化“s”和“t”。

显然,函数“optim()”不适用于多个变量。

非常感谢!

1 个答案:

答案 0 :(得分:2)

optim适用于多个变量,但您要优化的函数必须将向量作为参数,而不是一对数字:

func <- function(st){
  s <- st[1]
  t <- st[2]
  sum(suma(s,t))
}

optim(c(0,0), func) # 0 and 0 initial values of s and t