17.3 Тригонометрия ¶
Octave предоставляет следующие тригонометрические функции, где углы задаются в радианах. Для преобразования из градусов в радианы умножьте на pi/180 или используйте функцию deg2rad. Например, sin (30 * pi/180) возвращает синус 30 градусов. В качестве альтернативы Octave предоставляет ряд тригонометрических функций, которые работают непосредственно с аргументом, заданным в градусах. Эти функции названы в честь базовой тригонометрической функции с суффиксом ‘d’. Например, sin ожидает угол в радианах, а sind ожидает угол в градусах.
Octave использует тригонометрические функции библиотеки C. Ожидается, что эти функции определены стандартом ISO/IEC 9899. Этот стандарт доступен по адресу: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf. Раздел F.9.1 посвящен тригонометрическим функциям. Поведение большинства функций относительно прямолинейно. Однако есть некоторые исключения из стандартного поведения. Многие из исключений связаны с поведением для -0. Наиболее сложным случаем является atan2. Octave точно реализует поведение, указанное в стандарте. Включая atan2(+- 0, 0) возвращает +- pi.
Следует отметить, что MATLAB использует другие определения, которые, по-видимому, не различают -0.
-
:
rad =deg2rad(deg)¶ -
Преобразует градусы в радианы.
Входной параметр deg должен быть скаляром, вектором или N-мерным массивом значений с плавающей точкой двойной или одинарной точности. deg может быть комплексным, в этом случае вещественные и мнимые компоненты преобразуются отдельно.
Выходной параметр rad имеет тот же размер и форму, что и deg, с градусами, преобразованными в радианы с использованием константы преобразования
pi/180.Пример:
deg2rad ([0, 90, 180, 270, 360]) ⇒ 0.00000 1.57080 3.14159 4.71239 6.28319
См. также: rad2deg.
-
:
deg =rad2deg(rad)¶ -
Преобразует радианы в градусы.
Входной параметр rad должен быть скаляром, вектором или N-мерным массивом значений с плавающей точкой двойной или одинарной точности. rad может быть комплексным, в этом случае вещественные и мнимые компоненты преобразуются отдельно.
Выходной параметр deg имеет тот же размер и форму, что и rad, с радианами, преобразованными в градусы с использованием константы преобразования
180/pi.Пример:
rad2deg ([0, pi/2, pi, 3/2*pi, 2*pi]) ⇒ 0 90 180 270 360
См. также: deg2rad.
-
:
y =sinh(x)¶ -
Вычисляет гиперболический синус для каждого элемента x.
-
:
y =cosh(x)¶ -
Вычисляет гиперболический косинус для каждого элемента x.
-
:
y =acosh(x)¶ -
Вычислить обратную гиперболическую косинус для каждого элемента x.
См. также: cosh.
-
:
y =atanh(x)¶ -
Вычислить обратную гиперболическую тангенс для каждого элемента x.
См. также: tanh.
-
:
angle =atan2(y, x)¶ -
Вычислить atan (y / x) для соответствующих элементов y и x.
y и x должны совпадать по размеру и ориентации. Знаки элементов y и x используются для определения квадрантов каждого результирующего значения.
Эта функция эквивалентна
arg (complex (x, y)).
Octave предоставляет следующие тригонометрические функции, где углы заданы в градусах. Эти функции создают истинные нули в соответствующих интервалах, а не небольшую ошибку округления, которая возникает при использовании радиан. Например:
cosd (90)
⇒ 0
cos (pi/2)
⇒ 6.1230e-17 -
:
y =sind(x)¶ -
Вычислить синус для каждого элемента x в градусах.
Функция более точная, чем
sinдля больших значений x и для кратных 180 градусов (x/180- целое число), гдеsindвозвращает 0, а не малое значение порядка eps.
-
:
y =cosd(x)¶ -
Вычислить косинус для каждого элемента x в градусах.
Функция более точная, чем
cosдля больших значений x и для кратных 90 градусов (x = 90 + 180*nс n - целым числом), гдеcosdвозвращает 0, а не малое значение порядка eps.
-
:
y =tand(x)¶ -
Вычислить тангенс для каждого элемента x в градусах.
Возвращает ноль для элементов, где
x/180- целое число иInfдля элементов, где(x-90)/180- целое число.
-
:
y =asind(x)¶ -
Вычислить обратный синус в градусах для каждого элемента x.
-
:
y =acosd(x)¶ -
Вычислить обратный косинус в градусах для каждого элемента x.
-
:
y =atand(x)¶ -
Вычислить обратную тангенс в градусах для каждого элемента x.
-
:
d =atan2d(y, x)¶ -
Вычислить atan (y / x) в градусах для соответствующих элементов y и x.
-
:
y =acscd(x)¶ -
Вычислить обратный косеканс в градусах для каждого элемента x.
-
:
y =acotd(x)¶ -
Вычислить обратную котангенс в градусах для каждого элемента x.
Наконец, есть две тригонометрические функции, которые вычисляют особые аргументы с повышенной точностью.
-
:
y =sinpi(x)¶ -
Вычислить синус (x * π) для каждого элемента x точно.
Обычная
sinфункция использует числа с плавающей запятой IEEE и может давать результаты, очень близкие (в пределах нескольких eps) к правильному значению, но не точные. Функцияsinpiболее точна и возвращает 0 точно для целых значений x и +1/-1 для полуцелых значений (например, …, -3/2, -1/2, 1/2, 3/2, …).Пример
сравненияsinиsinpiдля целых значений xsin ([0, 1, 2, 3] * pi) ⇒ 0 1.2246e-16 -2.4493e-16 3.6739e-16 sinpi ([0, 1, 2, 3]) ⇒ 0 0 0 0
-
:
y =cospi(x)¶ -
Вычислить косинус (x * π) для каждого элемента x точно.
Обычная
cosфункция использует числа с плавающей запятой IEEE и может давать результаты, очень близкие (в пределах нескольких eps) к правильному значению, но не точные. Функцияcospiболее точна и возвращает 0 точно для полуцелых значений x (например, …, -3/2, -1/2, 1/2, 3/2, …), и +1/-1 для целых значений.Пример
сравненияcosиcospiдля полуцелых значений xcos ([-3/2, -1/2, 1/2, 3/2] * pi) ⇒ -1.8370e-16 6.1232e-17 6.1232e-17 -1.8370e-16 cospi ([-3/2, -1/2, 1/2, 3/2]) ⇒ 0 0 0 0
© 1996–2023 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.2.0/Trigonometry.html