Функция math.Expm1

Функция math.Expm1 вычисляет значение e^x - 1 (экспонента от x минус 1) с высокой точностью. Эта функция особенно полезна, когда x близок к нулю, поскольку прямое вычисление через math.Exp(x) - 1 может привести к значительной потере точности из-за вычитания близких чисел. В первый параметр мы передаем значение x, для которого нужно вычислить e^x - 1. Функция возвращает значение типа float64, представляющее собой результат вычисления.

Синтаксис

gomath.Expm1(x)

Пример

Давайте вычислим значение e^x - 1 для x = 0.5:

gopackage main

import (
  "fmt"
  "math"
)

func main() {
  res := math.Expm1(0.5)
  fmt.Println(res)
}

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

go0.6487212707001282

Пример

Давайте вычислим значение e^x - 1 для x = 0.0001 и сравним с прямым вычислением через math.Exp:

gopackage main

import (
  "fmt"
  "math"
)

func main() {
  x := 0.0001
  res1 := math.Expm1(x)
  res2 := math.Exp(x) - 1
  fmt.Printf("Expm1: %.15f\n", res1)
  fmt.Printf("Exp - 1: %.15f\n", res2)
}

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

go"Expm1: 0.000100005000166668"
"Exp - 1: 0.000100005000166668"

Пример

Давайте вычислим значение e^x - 1 для x = -0.5:

gopackage main

import (
  "fmt"
  "math"
)

func main() {
  res := math.Expm1(-0.5)
  fmt.Println(res)
}

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

go-0.3934693402873666

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

  • функцию math.Exp,
    которая вычисляет экспоненту e^x
  • функцию math.Exp2,
    которая вычисляет 2^x
  • функцию math.Log1p,
    которая является обратной к math.Expm1 и вычисляет ln(1+x)
  • функцию math.Pow,
    которая возводит число в произвольную степень