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 = tanh (x) ¶
-
Вычисляет гиперболический тангенс для каждого элемента x.
- : y = acosh (x) ¶
-
Вычисляет обратный гиперболический косинус для каждого элемента x.
См. также: cosh.
- : 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 = asecd (x) ¶
-
Вычислить обратный секанс в градусах для каждого элемента x.
- : y = acscd (x) ¶
-
Вычислить обратный косеканс в градусах для каждого элемента x.
- : y = acotd (x) ¶
-
Вычислить обратный котангенс в градусах для каждого элемента x.
Наконец, есть две тригонометрические функции, которые вычисляют специальные аргументы с повышенной точностью.
- : y = sinpi (x) ¶
-
Вычислить синус (x * pi) для каждого элемента 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 * pi) для каждого элемента 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/v8.1.0/Trigonometry.html