【发布时间】:2019-01-03 12:42:48
【问题描述】:
我有如下优化功能,和这个类似: R. Run optimization function in data frame:
main <- function(p1, p2, n1, n2, pE) {
# FIND MINIMUM a
func <- function(a) {
Mopt <- (p1-a*pE)/(1-a)
f_n <- (Mopt-p2)^2-Mopt*(1-Mopt)/(n1-1) - p2*(1-p2)/(n2-1)
f_d <- Mopt*(1-p2)+p2*(1-Mopt)
f_v <- f_n/f_d
}
opt <- optimize(func, seq(0, 1,by=0.01), maximum=FALSE)$minimum
}
这里,“main”的参数是数据框中的列。该函数返回获得最小 f_v 值所需的最小值“a”。我想给函数加上一些条件,或者说,强制某个对象获取某个范围内的值,从而得到最小的f_v。例如,Mopt 必须遵循:
0 < Mopt < 1
和 (1 - a) 必须遵循:
(1 - a) > 0.
我不确定如何在优化的上下文中执行此操作。
【问题讨论】:
-
如果约束被破坏,在
func内返回Inf?
标签: r dataframe optimization