使用 R 中的
gamma()
,您可以从输入 5 得到输出 24。
如何制作可以从输入 24 获得输出 5 的反函数?
>gamma(5)
24
我找到了[invgamma]包,但我不知道它是否合适,也不知道如何使用它......
使用
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