解决R中的功能类似于Excel中的Goal Seeker

时间:2018-07-18 13:12:03

标签: r solver

我已经看到了类似的问题,但是我不知道该怎么做。也许你可以帮忙。

Back solving a function or goal seek in R

ES <- function(y, z){-y * (1-pnorm(y/z)) + z * dnorm(y/z)} # = x
ES(906.19, 707.1) #33.47587

我想要求解y,所以z和x(33.4)是已知的。我已经看到了求解和优化功能,但是无法获得预期的结果。

谢谢!

1 个答案:

答案 0 :(得分:7)

在给定值unirootES(y, z) - x的情况下,我们可以使用yz = 707.1查找x = 33.4的根。

ES <- function(y, z) -y * (1 - pnorm(y / z)) + z * dnorm(y / z)
res <- uniroot(function(x, y, z) ES(y, z) - x, c(0, 1000), z = 707.1, x = 33.4)

那么y的解决方案就是

res$root
#[1] 906.9494

我们确认E(y, z) = x

ES(res$root, 707.1)
#[1] 33.4