Функции библиотеки 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).
Возвращаемое значение
- return
xнатуральный логарифм от, еслиxЕсли оно отрицательное или равно нулю, это вызовет ошибку области определения математической функции или ошибку диапазона.
Обработка ошибок
- if
xявляется отрицательным,log()функция вернет NaN и установитerrnoявляетсяEDOM。 - if
xравен нулю,log()функция вернет-HUGE_VAL(отрицательная бесконечность), и установитerrnoявляетсяERANGE。
Пример
Следующий пример демонстрирует использование функции log().
Пример
#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 <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(), логарифмические операции могут быть реализованы в научных вычислениях, финансах и инженерных приложениях, а возможные ошибочные условия могут быть должным образом обработаны.