Функция math.Gamma
Функция math.Gamma вычисляет значение гамма-функции для заданного числа.
Гамма-функция является расширением факториала на действительные и комплексные числа.
Для положительных целых чисел n выполняется соотношение Gamma(n) = (n-1)!.
В первый параметр функция принимает число типа float64, для которого нужно вычислить
гамма-функцию. Функция возвращает значение типа float64.
Синтаксис
math.Gamma(x)
Пример
Давайте вычислим гамма-функцию для положительных целых чисел и сравним с факториалом:
package main
import (
"fmt"
"math"
)
func main() {
res1 := math.Gamma(4)
res2 := math.Gamma(5)
res3 := math.Gamma(6)
fmt.Println("Gamma(4) =", res1)
fmt.Println("Gamma(5) =", res2)
fmt.Println("Gamma(6) =", res3)
}
Результат выполнения кода:
"Gamma(4) = 6"
"Gamma(5) = 24"
"Gamma(6) = 120"
Как видно из примера, Gamma(4) = 3! = 6,
Gamma(5) = 4! = 24,
Gamma(6) = 5! = 120.
Пример
Давайте вычислим гамма-функцию для дробных чисел:
package main
import (
"fmt"
"math"
)
func main() {
res1 := math.Gamma(0.5)
res2 := math.Gamma(1.5)
res3 := math.Gamma(2.5)
fmt.Println("Gamma(0.5) =", res1)
fmt.Println("Gamma(1.5) =", res2)
fmt.Println("Gamma(2.5) =", res3)
}
Результат выполнения кода:
"Gamma(0.5) = 1.772453850905516"
"Gamma(1.5) = 0.886226925452758"
"Gamma(2.5) = 1.329340388179137"
Для x = 0.5 гамма-функция возвращает √π,
что подтверждается результатом вычислений.
Пример
Давайте рассмотрим поведение функции при x = 0 и отрицательных значениях,
где гамма-функция имеет полюса:
package main
import (
"fmt"
"math"
)
func main() {
res1 := math.Gamma(0)
res2 := math.Gamma(-1)
res3 := math.Gamma(-2)
fmt.Println("Gamma(0) =", res1)
fmt.Println("Gamma(-1) =", res2)
fmt.Println("Gamma(-2) =", res3)
}
Результат выполнения кода:
"Gamma(0) = +Inf"
"Gamma(-1) = -Inf"
"Gamma(-2) = +Inf"
Для целых неположительных чисел гамма-функция стремится к бесконечности (положительной или отрицательной в зависимости от четности числа).
Смотрите также
-
функцию
math.Lgamma,
которая вычисляет натуральный логарифм гамма-функции -
функцию
math.Exp,
которая вычисляет экспоненту числа -
функцию
math.Log,
которая вычисляет натуральный логарифм числа -
функцию
math.Pow,
которая возводит число в заданную степень