我有一个函数,它带有8个参数,其中5个(a,b,c,d,e
)是常量,而其他三个(u1, u2, u3
)则要找出。
a <- 10.1
b <- 2.45
c <- 0.35
d <- 2
e <- 3.5
out <- function(a,b,c,d,e,u1,u2,u3){
temp <- 2*a*b^2 + (u1*u2/d) - c*e^2 + u3*e
return(temp)}
我需要从预定义的分布中找到u1, u2
和u3
的值,以使temp
的值最大化
分布是:
u1 <- rnorm(100,2,1)
u2 <- rnorm(100, 1, 1.96)
u3 <- rnorm(100, 1, 2.48)
答案 0 :(得分:1)
我敢肯定R中有一个很好的方法来找到[NSView setLayer:]
,u1
和u2
的确切值,这将使您的u3
方程式最大化,但是对于如果您已经在上面设置了这种情况(基于三个分布中的随机样本),则可以执行以下操作:
temp
这仅针对a <- 10.1
b <- 2.45
c <- 0.35
d <- 2
e <- 3.5
out <- function(a,b,c,d,e,u1,u2,u3){
temp <- 2*a*b^2 + (u1*u2/d) - c*e^2 + u3*e
return(temp)}
u1 <- rnorm(100,2,1)
u2 <- rnorm(100, 1, 1.96)
u3 <- rnorm(100, 1, 2.48)
res <- out(a,b,c,d,e,u1,u2,u3)
i <- which(res == max(res), arr.ind=TRUE)
,temp
和u1
的100个随机值中的每个u2
进行求值,并找出哪个绘制得出{{1 }}:
u3
为获得更高的准确性,您可以将样本大小增加到1,000、10,000等。