如何在Postgres中运行与Excel的GAMMALN函数等效的函数?

时间:2019-11-15 20:14:37

标签: postgresql math

Excel具有GAMMALN函数,该函数返回伽马函数Γ(x)的自然对数。

GAMMALN(4)返回gamma函数在4时的自然对数,得出
1.7917595。

Postgres似乎没有我可以告诉的GAMMALN等效函数。我该如何计算呢?

2 个答案:

答案 0 :(得分:1)

我会尝试:

答案 1 :(得分:0)

由于Postgres没有它,因此您似乎需要重新实现log-gamma函数。会有多少麻烦取决于您希望它有多普遍。如果您只需要整数的log-gamma,则可以使用定义

log(gamma(n)) = log((n - 1) times (n - 2) times (n - 3) times ... times 1)

,因此为log(n - 1) + log(n - 2) + log(n - 3) + ... + 0。我假设有人可以用SQL表示这一点,尽管我不知道如何进行求和。

对于非整数用户,您可以选择。随意的网络搜索会找到this article about implementing log-gamma in C#,您可以从中获得一些想法和参考。如果不需要很高的精度,可以接受的一种简单方法是做降序积log(x - 1) + log(x - 2) + log(x - 3) + ...,然后为最终的log(gamma(x - floor(x) + 1))找到一个简单的近似值(也许只是一个查找表)(我的意思是,它是gamma(x-floor(x)+1)的简单近似值,然后取该值的对数。

看看Abramowitz&Stegun及其后来的版本,即数学函数数字图书馆。两者都在网络上。

祝你好运,玩得开心,看来是一个有趣的问题。