首页 > 解决方案 > 在 R 中求解一个类似于 Excel 中的 Goal Seeker 的函数

问题描述

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

在 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) 是已知的。我已经看到了解决和优化功能,但我无法获得预期的结果。

谢谢!

标签: rsolver

解决方案


我们可以使用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)

的解决方案y

res$root
#[1] 906.9494

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

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

推荐阅读