В R неполная гамма-функция со сложным вводом?

Неполные гамма-функции могут быть вычислены в R с помощью pgamma, или с помощью gamma_inc_Q из библиотеки (gsl), или с помощью gammainc из библиотеки (expint). Однако все эти функции требуют только реального ввода.

Мне нужна реализация неполной гамма-функции, которая будет принимать сложный ввод. В частности, у меня есть целое число для первого аргумента и комплексное число для второго аргумента (предел в интеграле).

Эта функция четко определена для сложных входных данных (см. Википедия), и я вычислял ее в Mathematica. Кажется, он не встроен в R, и я не вижу его ни в каких библиотеках.

Итак, может ли кто-нибудь предложить более короткий путь для выполнения этих вычислений, чем поиск алгоритма, его реализация в C и написание интерфейса R?

(Если мне нужно реализовать это самостоятельно, вот единственный алгоритм для сложных входных данных, который я нашел: Kostlan & Gokhman 1987)

1 ответ

Вот реализация, предполагающая, что вам нужна нижняя неполная гамма-функция. Я сравнил пару значений с Вольфрамом, и они совпадают.

library(CharFun)

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

Возможно, оценка не удается для большого s,

Другие вопросы по тегам