在R中,具有复杂输入的不完全伽马函数?

时间:2017-12-06 00:31:36

标签: r gamma-function

不完整的伽玛函数可以在R中用pgamma计算,或者用库(gsl)中的gamma_inc_Q计算,或者用库中的gammainc计算(expint)。但是,所有这些功能都只需要真正的输入。

我需要实现不完整的伽马函数,这将需要复杂的输入。具体来说,我有第一个参数的整数,第二个参数的复数(积分中的限制)。

这个函数是为复杂输入定义的(见Wikipedia),我一直在Mathematica中计算它。它似乎没有内置到R中,我在任何库中都没有看到它。

那么,有谁可以建议一个更短的路径来进行这些计算,而不是查找算法,在C中实现它,以及编写R接口?

(如果我必须自己实现,这是我找到的复杂输入的唯一算法:Kostlan & Gokhman 1987

1 个答案:

答案 0 :(得分:0)

这是一个实现,假设你想要 lower 不完整的gamma函数。我已将Wolfram的几个值进行了比较,但它们匹配。

        public override void WillSendRequestForAuthenticationChallenge(NSUrlConnection connection, NSUrlAuthenticationChallenge challenge)
    {
        Console.WriteLine(challenge.ProtectionSpace);

        if (challenge.PreviousFailureCount == 0 )
        {

            NSUrlCredential cred = new NSUrlCredential(this.myUserName, this.myPass, NSUrlCredentialPersistence.None);
            challenge.Sender.UseCredential(cred, challenge);
        }

    }

对于较大的library(CharFun) incgamma <- function(s,z){ z^s * exp(-z) * hypergeom1F1(z, 1, s+1) / s } ,评估可能会失败。