Cosh: примеры (JAVASCRIPT)

Гиперболический косинус Math.cosh: примеры и особенности
Раздел: Математика, Гиперболические
cosh(number): number

Основные сведения о Math.cosh

Метод Math.cosh() возвращает гиперболический косинус числа. Он является частью статического объекта Math в JavaScript. Гиперболический косинус определяется формулой: cosh(x) = (ex + e-x) / 2.

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

Функция принимает один обязательный аргумент:

  • x: число, для которого вычисляется гиперболический косинус. Если аргумент не является числом, он будет неявно преобразован в число.

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

  • Гиперболический косинус переданного числа. Это всегда положительное число, большее или равное 1.
  • Для нечисловых строк, которые нельзя преобразовать (например, "abc"), возвращается NaN.
  • Если аргумент не задан, результатом будет NaN.
  • Для очень больших по модулю аргументов (больше ~709.78) результат может стать бесконечностью (Infinity) из-за переполнения при вычислении экспоненты.

Короткие примеры использования

Базовый вызов с положительным числом:

console.log(Math.cosh(0));
1

Вызов с отрицательным числом (функция четная):

console.log(Math.cosh(-2));
3.7621956910836314

Вызов с нечисловым аргументом, который преобразуется:

console.log(Math.cosh("1"));
1.5430806348152437

Пограничные случаи:

console.log(Math.cosh(Infinity));
console.log(Math.cosh(NaN));
console.log(Math.cosh());
Infinity
NaN
NaN

Похожие функции в JavaScript

В объекте Math существуют другие гиперболические функции:

  • Math.sinh(x): вычисляет гиперболический синус.
  • Math.tanh(x): вычисляет гиперболический тангенс.
  • Math.acosh(x): вычисляет гиперболический арккосинус (обратная функция).
  • Math.asinh(x): вычисляет гиперболический арксинус.
  • Math.atanh(x): вычисляет гиперболический арктангенс.

Эти функции применяются совместно с Math.cosh() для решения полного спектра задач с гиперболическими соотношениями. Выбор зависит от конкретной математической формулы. Для проверки тождества cosh2x - sinh2x = 1 нужны обе основные функции.

Аналоги в других языках программирования

PHP: Функция cosh() принимает и возвращает число с плавающей точкой.

echo cosh(2);
3.7621956910836

Python: Функция math.cosh() доступна в модуле math.

import math
print(math.cosh(2))
3.7621956910836314

MySQL: Математическая функция COSH().

SELECT COSH(2);
3.7621956910836

C / C++: Функция cosh() объявлена в заголовочном файле math.h. Она принимает и возвращает значения типа double.

#include 
#include 
int main() {
    printf("%f\n", cosh(2.0));
    return 0;
}
3.762196

Поведение аналогов практически идентично JavaScript реализации. Различия могут заключаться в точности вычислений и обработке особых случаев, что зависит от конкретного компилятора или среды выполнения.

Типичные ошибки

Передача аргумента, который после преобразования становится NaN:

console.log(Math.cosh("текст")); // NaN
console.log(Math.cosh(undefined)); // NaN
NaN
NaN

Ожидание отрицательных значений. Гиперболический косинус всегда положителен:

// Ошибочное предположение:
// cosh(-5) должен быть отрицательным.
console.log(Math.cosh(-5) > 0);
true

Использование результата как обычного тригонометрического косинуса. Это разные функции:

// Неверно для нахождения угла:
let angle = Math.acos(Math.cosh(1)); // acos ожидает значение от -1 до 1
console.log(angle);
NaN

При больших значениях аргумента возможна потеря точности или получение Infinity:

console.log(Math.cosh(1000));
Infinity

История изменений

Метод Math.cosh() был стандартизирован в спецификации ECMAScript 2015 (ES6). До этого он не являлся частью основного стандарта JavaScript, и для его использования требовались полифилы или собственная реализация. Современные браузеры и среды выполнения Node.js поддерживают эту функцию полностью. С момента добавления в стандарт поведение функции и сигнатура не менялись.

Расширенные примеры применения

Вычисление длины цепной линии (кардиоиды) на отрезке от -a до a. Формула длины: L = 2 * sinh(a).

Пример javascript
function catenaryLength(a) {
    if (typeof a !== 'number' || a < 0) return NaN;
    return 2 * Math.sinh(a);
}
console.log(catenaryLength(1.5));
4.457118454613464

Проверка гиперболического тождества: cosh2x - sinh2x = 1.

Пример javascript
function checkIdentity(x) {
    let ch = Math.cosh(x);
    let sh = Math.sinh(x);
    return (ch * ch) - (sh * sh);
}
console.log(checkIdentity(3));
console.log(checkIdentity(0.5));
1
1

Приближенное вычисление косинуса от мнимого числа, используя формулу Эйлера: cos(ix) = cosh(x).

Пример javascript
// cos(i * 2) = cosh(2)
let x = 2;
let complexCosine = Math.cosh(x); // Действительная часть cos(i*2)
console.log(complexCosine);
3.7621956910836314

Использование в ряду Тейлора для гиперболического косинуса (для небольших x).

Пример javascript
function coshTaylor(x, terms = 10) {
    let sum = 1;
    let term = 1;
    for (let n = 1; n < terms; n++) {
        term *= (x * x) / ((2 * n) * (2 * n - 1));
        sum += term;
    }
    return sum;
}
console.log(coshTaylor(0.5));
console.log(Math.cosh(0.5)); // Сравнение
1.1276259652063807
1.1276259652063807

Генерация точек для построения графика цепной линии y = a * cosh(x / a).

Пример javascript
function generateCatenaryPoints(a, xValues) {
    return xValues.map(x => a * Math.cosh(x / a));
}
let xCoords = [-2, -1, 0, 1, 2];
console.log(generateCatenaryPoints(1, xCoords));
[3.7621956910836314, 1.5430806348152437, 1, 1.5430806348152437, 3.7621956910836314]

JS cosh function comments

En
Cosh Returns the hyperbolic cosine of a number