在Excel中解决类似于Goal Seeker的R函数

Sve*_*ven 6 r solver

我看到了一个类似的问题,但我不知道,该怎么做.也许你可以帮忙.

在R中回复求解函数或目标

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

我想要的是为y求解,所以z和x(33.4)是已知的.我已经看到了solve和optim函数,但是我无法获得预期的结果.

谢谢!

Mau*_*ers 8

我们可以用uniroot找到的根ES(y, z) - xy给定的值z = 707.1x = 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)
Run Code Online (Sandbox Code Playgroud)

该解决方案y是然后

res$root
#[1] 906.9494
Run Code Online (Sandbox Code Playgroud)

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

ES(res$root, 707.1)
#[1] 33.4
Run Code Online (Sandbox Code Playgroud)