2017-12-06 1 views
1

Unvollständige Gammafunktionen können in R mit pgamma oder mit gamma_inc_Q aus der Bibliothek (gsl) oder mit gammainc aus der Bibliothek (expint) berechnet werden. Alle diese Funktionen nehmen jedoch nur echte Eingaben vor.In R, unvollständige Gammafunktion mit komplexer Eingabe?

Ich brauche eine Implementierung der unvollständigen Gamma-Funktion, die komplexe Eingabe benötigt. Insbesondere habe ich eine Ganzzahl für das erste Argument und eine komplexe Zahl für das zweite Argument (das Limit im Integral).

Diese Funktion ist gut für komplexe Eingänge definiert (siehe Wikipedia), und ich habe es in Mathematica berechnet. Es scheint jedoch nicht in R eingebaut zu sein, und ich sehe es in keiner Bibliothek.

Kann also jemand einen kürzeren Pfad zu diesen Berechnungen vorschlagen, als einen Algorithmus nachzuschlagen, ihn in C zu implementieren und eine R-Schnittstelle zu schreiben?

(Wenn ich es selbst zu tun haben, zu implementieren, hier ist der einzige Algorithmus für komplexe Eingaben, die ich gefunden habe: Kostlan & Gokhman 1987)

+1

R Implementierungen von speziellen Funktionen sind nicht so umfangreich wie der Fall Mathematica, ich denke, wenn Sie nicht gefunden haben, was Sie wollen in GSL ist wahrscheinlich das Beste, was Sie tun können, was Sie bereits selbst vorgeschlagen haben. Sei nicht schüchtern mit Rcpp zu interagieren;) – Batato

+0

Ich hatte vorher noch nie von Rcpp gehört, das sieht wirklich cool aus. Ich habe viele schmerzhafte Erfahrungen mit Fremdfunktionsschnittstellen in R gemacht, alles zu vereinfachen ist willkommen. – user54038

+0

Wenn Sie RStudio und in einem Unix-basierten Betriebssystem verwenden, sollte es überhaupt nicht schwer sein. Sieh dir das an [Beispiel] (https://github.com/rcarcasses/schrodinger), es kann hilfreich sein;) – Batato

Antwort

0

Hier ist eine Implementierung, vorausgesetzt, Sie wollen die untere unvollständige Gamma-Funktion. Ich habe einige Werte mit Wolfram verglichen und sie passen zusammen.

Vielleicht schlägt die Auswertung für eine große s.