Cosh: примеры (JAVASCRIPT)
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)); // NaNNaN 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).
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.
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).
// cos(i * 2) = cosh(2)
let x = 2;
let complexCosine = Math.cosh(x); // Действительная часть cos(i*2)
console.log(complexCosine);3.7621956910836314
Использование в ряду Тейлора для гиперболического косинуса (для небольших x).
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).
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]