- Абсолютное значение числа
- Максимальное и минимальное из двух чисел
- Функции округления
- Деление чисел по модулю
- Степени и корни
- Показательные и логарифмические функции
- Тригонометрические функции
- Гиперболические функции
- Проверка вещественных чисел на нормальность
- Генерация случайных чисел
- Управление порядком байтов в целых числах
Показательные и логарифмические функции
Вычисление показательных и логарифмических функций доступно в MQL5 с помощью соответствующего раздела API.
Отсутствие среди API двоичного логарифма, который часто требуется в информатике и комбинаторике, не является проблемой, поскольку его легко вычислить, на выбор, через имеющиеся функции натурального или десятичного логарифма.
log2(x) = log(x) / log(2) = log(x) / M_LN2
|
Здесь log и log10 — имеющиеся функции логарифмов (по основанию e и 10, соответственно), M_LN2 — встроенная константа, равная log(2).
В следующей таблице перечислены все константы, могущие быть полезными при логарифмических вычислениях.
Константа |
Описание |
Значение |
---|---|---|
M_E |
e |
2.71828182845904523536 |
M_LOG2E |
log2(e) |
1.44269504088896340736 |
M_LOG10E |
log10(e) |
0.434294481903251827651 |
M_LN2 |
ln(2) |
0.693147180559945309417 |
M_LN10 |
ln(10) |
2.30258509299404568402 |
Примеры описываемых далее функций собраны в файле MathExp.mq5.
double MathExp(double value) ≡ double exp(double value)
Функция возвращает экспоненту, то есть число e (доступно как предопределенная константа M_E), возведенное в указанную степень value. При переполнении функция возвращает inf (разновидность NaN для бесконечности).
PRT(MathExp(0.5)); // 1.648721270700128
|
double MathLog(double value) ≡ double log(double value)
Функция возвращает натуральный логарифм переданного числа. Если значение value отрицательно, функция возвращает -nan(ind) (NaN "неопределенное значение"). Если value равно 0, функция возвращает inf (NaN "бесконечность").
PRT(MathLog(M_E)); // 1.0
|
В последней строке использована реализация двоичного логарифма через MathLog:
double Log2(double value)
|
double MathLog10(double value) ≡ double log10(double value)
Функция возвращает десятичный логарифм числа.
PRT(MathLog10(10.0)); // 1.0
|
double MathExpm1(double value) ≡ double expm1(double value)
Функция возвращает значение выражения (MathExp(value) - 1). В экономических расчетах функция используется для вычисления эффективного процента (дохода или платежа) в единицу времени в схеме сложных процентов, когда количество периодов стремится к бесконечности.
PRT(MathExpm1(0.1)); // 0.1051709180756476 |
double MathLog1p(double value) ≡ double log1p(double value)
Функция возвращает значение выражения MathLog(1 + value), то есть производит обратное действие к функции MathExpm1.
PRT(MathLog1p(0.1)); // 0.09531017980432487 |