РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
319 of 1593 menu

Функция math.Log1p

Функция math.Log1p вычисляет натуральный логарифм от суммы единицы и переданного числа x. Она эквивалентна выражению math.Log(1 + x), но обеспечивает более высокую точность, когда x близко к нулю. В таких случаях прямое вычисление может приводить к потере значащих цифр из-за ошибок округления при сложении. Функция принимает один параметр x типа float64 и возвращает значение того же типа. Особенности: при x = -1 функция возвращает -Inf, а при x < -1NaN.

Синтаксис

math.Log1p(x)

Пример

Давайте вычислим натуральный логарифм от 1.1, используя выражение 1 + 0.1:

package main import ( "fmt" "math" ) func main() { res := math.Log1p(0.1) fmt.Println(res) }

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

"0.09531017980432493"

Пример

Сравним точность math.Log1p и прямого вычисления math.Log(1 + x) для очень малого значения x = 1e-16:

package main import ( "fmt" "math" ) func main() { x := 1e-16 resLog1p := math.Log1p(x) resLog := math.Log(1 + x) fmt.Println("Log1p:", resLog1p) fmt.Println("Log: ", resLog) }

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

"Log1p: 9.999999999999998e-17" "Log: 0"

Пример

Рассмотрим работу функции с граничными значениями, передав -1 и -2:

package main import ( "fmt" "math" ) func main() { resMinusOne := math.Log1p(-1) resMinusTwo := math.Log1p(-2) fmt.Println("Log1p(-1):", resMinusOne) fmt.Println("Log1p(-2):", resMinusTwo) }

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

"Log1p(-1): -Inf" "Log1p(-2): NaN"

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

  • функцию math.Log,
    которая вычисляет натуральный логарифм числа
  • функцию math.Log10,
    которая вычисляет десятичный логарифм числа
  • функцию math.Log2,
    которая вычисляет двоичный логарифм числа
  • функцию math.Expm1,
    которая вычисляет экспоненту минус единицу, обратную к math.Log1p
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить