Функция math.Gamma

Функция math.Gamma вычисляет значение гамма-функции для заданного числа. Гамма-функция является расширением факториала на действительные и комплексные числа. Для положительных целых чисел n выполняется соотношение Gamma(n) = (n-1)!. В первый параметр функция принимает число типа float64, для которого нужно вычислить гамма-функцию. Функция возвращает значение типа float64.

Синтаксис

gomath.Gamma(x)

Пример

Давайте вычислим гамма-функцию для положительных целых чисел и сравним с факториалом:

gopackage 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)
}

Результат выполнения кода:

go"Gamma(4) = 6"
"Gamma(5) = 24"
"Gamma(6) = 120"

Как видно из примера, Gamma(4) = 3! = 6, Gamma(5) = 4! = 24, Gamma(6) = 5! = 120.

Пример

Давайте вычислим гамма-функцию для дробных чисел:

gopackage 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)
}

Результат выполнения кода:

go"Gamma(0.5) = 1.772453850905516"
"Gamma(1.5) = 0.886226925452758"
"Gamma(2.5) = 1.329340388179137"

Для x = 0.5 гамма-функция возвращает √π, что подтверждается результатом вычислений.

Пример

Давайте рассмотрим поведение функции при x = 0 и отрицательных значениях, где гамма-функция имеет полюса:

gopackage 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)
}

Результат выполнения кода:

go"Gamma(0) = +Inf"
"Gamma(-1) = -Inf"
"Gamma(-2) = +Inf"

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

Смотрите также

  • функцию math.Lgamma,
    которая вычисляет натуральный логарифм гамма-функции
  • функцию math.Exp,
    которая вычисляет экспоненту числа
  • функцию math.Log,
    которая вычисляет натуральный логарифм числа
  • функцию math.Pow,
    которая возводит число в заданную степень