2017-12-06 23 views
1

不完全なガンマ関数は、pgammaの場合はR、ライブラリ(gsl)の場合はgamma_inc_Q、ライブラリ(expint)の場合はgammaincで計算できます。しかし、これらの関数はすべて実際の入力のみを取ります。Rでは、複雑な入力を伴う不完全ガンマ関数ですか?

複雑な入力を行う不完全なガンマ関数の実装が必要です。具体的には、私は第1引数の整数と第2引数の複素数(積分の限界)を持っています。

この関数は複雑な入力(Wikipediaを参照)に対してよく定義されており、Mathematicaで計算しています。 Rには組み込まれていないようだが、どのライブラリでもそれを見ることはできない。

アルゴリズムを調べてCで実装し、Rインタフェースを記述するよりも、これらの計算を行う方が簡単な方法を提案できますか?

(私はそれを自分自身を実装する必要がない場合は、ここで私が見つけた、複雑な入力のための唯一のアルゴリズムです:Kostlan & Gokhman 1987)は

+1

Rの特別な関数の実装は、Mathematicaの場合と同じくらい広範囲ではありません.Gslで必要なものが見つからなければ、あなたができることは自分で既に提案したものである可能性が高いでしょう。 Rcppとやりとりをしないでください); – Batato

+0

私はRcppについてこれまで聞いていなかったが、それは本当にクールだ。私はRで外国の関数のインターフェイスと多くの痛い経験をしてきました、それを簡素化するものは歓迎です。 – user54038

+0

RStudioを使用していて、UNIXベースのOSであれば、それは全く難しいはずはありません。この[example](https://github.com/rcarcasses/schrodinger)を見て、それは助けになるかもしれません;) – Batato

答えて

0

ここでは、あなたが不完全ガンマ関数をしたいと仮定すると、実装したものです。私はWolframといくつかの値を比較し、それらが一致しています。

library(CharFun) 

incgamma <- function(s,z){ 
    z^s * exp(-z) * hypergeom1F1(z, 1, s+1)/s 
} 

多分sの評価が失敗します。

関連する問題