伽马函数与 R 的反函数

问题描述 投票:0回答:1

使用 R 中的

gamma()
,您可以从输入 5 得到输出 24。 如何制作可以从输入 24 获得输出 5 的反函数?

>gamma(5)
24

我找到了[invgamma]包,但我不知道它是否合适,也不知道如何使用它......

r gamma-distribution gamma-function
1个回答
0
投票

使用

uniroot
gamma(x) - a
的根,其中
a
是您的数字。

invgamma <- function(a, tol = .Machine$double.eps^0.5) {
  uniroot(\(x) gamma(x) - a, c(1, 1e2), extendInt = "upX", tol = tol)
}

invgamma(24)$root
#> [1] 5

invgamma(24)
#> $root
#> [1] 5
#> 
#> $f.root
#> [1] -5.207212e-11
#> 
#> $iter
#> [1] 19
#> 
#> $init.it
#> [1] NA
#> 
#> $estim.prec
#> [1] 7.450582e-09

创建于 2024-09-29,使用 reprex v2.1.0

© www.soinside.com 2019 - 2024. All rights reserved.