Функции библиотеки C -log()

Стандартная библиотека C - <math.h>

Описание

Функции библиотеки Cdouble log(double x)returnxНатуральный логарифм (логарифм по основанию e).

log()является стандартной библиотекой C<math.h>Функция, вычисляющая натуральный логарифм (по основанию e) числа с плавающей запятой. Это часто используемая математическая функция, широко применяемая в таких областях, как научные вычисления, финансы и инженерия.

Объявление

Ниже приведено объявление функции log().

#include <math.h>

double log(double x);
float logf(float x);
long double logl(long double x);

Параметр

  • x: входное число с плавающей запятой, которое должно быть положительным (больше 0).

Возвращаемое значение

  • returnxнатуральный логарифм от, еслиxЕсли оно отрицательное или равно нулю, это вызовет ошибку области определения математической функции или ошибку диапазона.

Обработка ошибок

  • ifxявляется отрицательным,log()функция вернет NaN и установитerrnoявляетсяEDOM。
  • ifxравен нулю,log()функция вернет-HUGE_VAL(отрицательная бесконечность), и установитerrnoявляетсяERANGE。

Пример

Следующий пример демонстрирует использование функции log().

Пример

#include <stdio.h>
#include <math.h>

int main ()
{
   double x, ret;
   x = 2.7;

   /* Вычислить log(2.7) */
   ret = log(x);
   printf("log(%lf) = %lf", x, ret);
   
   return(0);
}

Давайте скомпилируем и запустим приведённую выше программу, которая выдаст следующий результат:

log(2.700000) = 0.993252

Обработка логарифмов нескольких значений

Следующий пример демонстрирует, как обрабатывать логарифм нескольких значений:

Пример

#include <stdio.h>
#include <math.h>
#include <errno.h>

int main() {
    double values[] = {1.0, 2.718281828, 10.0, -1.0, 0.0};
    int num_values = sizeof(values) / sizeof(values[0]);

    for (int i = 0; i < num_values; i++) {
        double x = values[i];
        errno = 0;  // Сбросить errno
        double result = log(x);

        if (errno == EDOM) {
            printf⟦⟧"Ошибка области определения: log(%f) не определён"("Domain error: log(%f) is not defined\n", x);
        } if if (errno == ERANGE) {
            printf("Ошибка диапазона: log(%f) приводит к переполнению или исчезновению порядка"\n", x);
        } else {
            printf("log(%f) = %f\n", x, result);
        }
    }

    return 0;
}

Пояснение кода

  • Определите массив, содержащий несколько чисел с плавающей запятойvalues。
  • ИспользованиеforПройдите в цикле по каждому значению и вызовитеlog(x)выполнить вычисление.
  • сбросerrnoв 0 и проверить возможные ошибки.
  • Вывести результат вычисления логарифма для каждого значения или сообщение об ошибке.

Давайте скомпилируем и запустим приведённую выше программу, которая выдаст следующий результат:

log(1.000000) = 0.000000
log(2.718282) = 1.000000
log(10.000000) = 2.302585
log(-1.000000) = nan
log(0.000000) = -inf

Сценарий использования

log()Функция имеет широкий спектр применений во многих областях, включая, помимо прочего:

  • Вычислить экспоненциальный рост или спад.
  • Обрабатывать логарифмические вероятности в теории вероятностей и статистике.
  • Решать математические задачи с логарифмическими уравнениями.
  • Вычислять логарифмические доходности в финансах.

Итог

log()Функция используется для вычисления натурального логарифма чисел с плавающей запятой и является важным инструментом для обработки логарифмических операций. При правильном использованииlog(), логарифмические операции могут быть реализованы в научных вычислениях, финансах и инженерных приложениях, а возможные ошибочные условия могут быть должным образом обработаны.

Стандартная библиотека C - <math.h>

Другие расширения