Что делает этот калькулятор
Этот инструмент строит таблицу и линейный график обратной гамма-функции \(1/\Gamma(a)\) для последовательности значений аргумента a. Вы сами задаёте начало последовательности, размер шага и количество точек (строк). На выходе вы получаете аккуратную таблицу из двух столбцов — a и \(1/\Gamma(a)\) — и построенную кривую. Это чистая математика: результат одинаков в любой точке мира и не зависит от страны или каких-либо местных правил.
Как пользоваться
Введите начальное значение a (первый аргумент), шаг (приращение), который прибавляется к a в каждой следующей строке, и число итераций (сколько строк нужно сгенерировать). Например, при начале = -3, шаге = 0,1 и 101 строке получится последовательность a = -3, -2,9, -2,8, ..., вплоть до a = 7,0.
Разбор формулы
Гамма-функция обобщает факториал: \(\Gamma(n+1) = n!\) и \(\Gamma(1/2) = \sqrt{\pi}\). При \(\operatorname{Re}(a) > 0\) она задаётся интегралом $$\Gamma(a) = \int_{0}^{\infty} t^{a-1} e^{-t}\, dt,$$ а на остальные значения продолжается с помощью рекуррентного соотношения \(\Gamma(a) = \Gamma(a+1)/a\) и формулы отражения \(\Gamma(a)\Gamma(1-a) = \pi/\sin(\pi a)\). Мы вычисляем \(\Gamma(a)\) приближением Ланцоша (\(g = 7\)) и применяем формулу отражения при \(a < 0{,}5\). Результат — это просто \(1/\Gamma(a)\). В отличие от самой \(\Gamma(a)\), обратная функция \(1/\Gamma(a)\) является целой и не имеет полюсов: там, где \(\Gamma\) обращается в бесконечность (при a = 0, -1, -2, ...), обратная функция равна ровно 0.
Разобранный пример
При значениях по умолчанию несколько строк выглядят так: a = -3 даёт \(1/\Gamma(-3) = 0\) (неположительное целое — полюс \(\Gamma\)); a = -2,5 даёт около \(-1{,}0579\); a = 0,5 даёт \(1/\sqrt{\pi} \approx 0{,}5642\); a = 1 и a = 2 обе дают 1; a = 5 даёт \(1/24 \approx 0{,}04167\); а a = 7 даёт \(1/720 \approx 0{,}001389\). Кривая достигает максимума около \(a \approx 1{,}46\), где \(\Gamma(a)\) принимает минимальное значение (\(\approx 0{,}8856\)), что даёт максимум \(1/\Gamma \approx 1{,}129\).
Частые вопросы
Почему \(1/\Gamma(a)\) равна нулю в точках 0 и при отрицательных целых? Потому что в этих точках у \(\Gamma(a)\) простые полюсы, поэтому обратная величина обращается в ноль. Мы распознаём неположительные целые числа и возвращаем ровно 0.
А что при очень больших a? \(\Gamma(a)\) растёт чрезвычайно быстро и приводит к переполнению; в этом случае мы возвращаем \(1/\Gamma = 0\) вместо NaN.
Насколько это точно? Приближение Ланцоша с \(g=7\) обеспечивает точность примерно до 15 значащих цифр на всей вещественной оси — этого с избытком хватает для построения таблиц и графиков.