Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article
In Python, math module contains a number of mathematical operations, which can be performed with ease using the module. math.sin()
function returns the sine of value passed as argument. The value passed in this function should be in radians.
Syntax: math.sin(x)
Parameter:
x : value to be passed to sin()Returns: Returns the sine of value passed as argument
Code #1:
import
math
a
=
math.pi
/
6
print
(
"The value of sine of pi / 6 is : "
, end
=
"")
print
(math.sin(a))
Output:
The value of sine of pi/6 is : 0.49999999999999994
Code #2:
import
math
import
matplotlib.pyplot as plt
in_array
=
[
-
3.14159265
,
-
2.57039399
,
-
0.28559933
,
0.28559933
,
2.57039399
,
3.14159265
]
out_array
=
[]
for
i
in
range
(
len
(in_array)):
out_array.append(math.sin(in_array[i]))
i
+
=
1
print
(
"in_array : "
, in_array)
print
(
"nout_array : "
, out_array)
plt.plot(in_array, out_array, color
=
'red'
, marker
=
"o"
)
plt.title(
"math.sin()"
)
plt.xlabel(
"X"
)
plt.ylabel(
"Y"
)
plt.show()
Output:
in_array : [-3.14159265, -2.57039399, -0.28559933, 0.28559933, 2.57039399, 3.14159265]
out_array : [-3.5897930298416118e-09, -0.5406408168673427, -0.2817325547837714, 0.2817325547837714, 0.5406408168673427, 3.5897930298416118e-09]
Last Updated :
20 Mar, 2019
Like Article
Save Article
Содержание
- 1. Особенности применения тригонометрических функций. Преобразование радиан в градусы и наоборот
- 2. Средства языка Python для конвертирования из градусов в радианы и наоборот. Функции math.degrees(x) и math.radians(x)
- 3. Ограничения на использование тригонометрических функций
- 4. Функция math.acos(x). Арккосинус угла
- 5. Функция math.asin(x). Арксинус
- 6. Функция math.atan(x). Арктангенс
- 7. Функция math.atan2(x, y). Арктангенс от x/y
- 8. Функция math.cos(x). Косинус угла
- 9. Функция math.sin(x)
- 10. Функция math.hypot(x, y). Евклидовая норма (Euclidean norm)
- 11. Функция math.tan(x). Тангенс угла x
- Связанные темы
Поиск на других ресурсах:
1. Особенности применения тригонометрических функций. Преобразование радиан в градусы и наоборот
Чтобы использовать тригонометрические функции в программе, нужно подключить модуль math
import math
Все тригонометрические функции оперируют радианами. Зависимость между радианами и градусами определяется по формуле:
1 радиан = 180°/π = 57.2958°
Если известен угол в градусах, то для корректной работы тригонометрических функций, этот угол нужно преобразовать в радианы.
Например. Задан угол, имеющий n градусов. Найти арккосинус этого угла. В этом случае формула вычисления результата будет следующей:
... n_rad = n*3.1415/180 # получить угол в радианах ac = math.acos(n_rad) # вычислить арккосинус ...
Чтобы получить более точное значение результата, в программе можно использовать константу math.pi, которая определяет число π. В этом случае текст программы будет иметь следующий вид
n_rad = n*math.pi/180 # получить угол в радианах ac = math.acos(n_rad) # вычислить арккосинус
⇑
2. Средства языка Python для конвертирования из градусов в радианы и наоборот. Функции math.degrees(x) и math.radians(x)
В языке Python существуют функции преобразования из градусов в радианы и, наоборот, из радиан в градусы.
Функция math.degrees(x) конвертирует значение параметра x из радиан в градусы.
Функция math.radians(x) конвертирует значение параметра x из градусов в радианы.
Пример.
# Функция math.degrees(x) import math x = 1 # x - угол в радианах y = math.degrees(x) # y = 57.29577951308232 - угол в градусах x = math.pi # x = 3.1415... y = math.degrees(x) # y = 180.0 # Функция math.radians(x) x = 180.0/math.pi y = math.radians(x) # y = 1.0 x = 45 # x - угол в градусах y = math.radians(x) # y = 0.7853981633974483
⇑
3. Ограничения на использование тригонометрических функций
При использовании тригонометрических функций следует учитывать соответствующие ограничения, которые следуют из самой сущности этих функций. Например, не существует арксинуса из числа, которое больше 1.
Если при вызове функции задать неправильный аргумент, то интерпретатор выдаст соответствующее сообщение об ошибке
ValueError: math domain error
⇑
4. Функция math.acos(x). Арккосинус угла
Функция acos(x) возвращает арккосинус угла x. Аргумент x задается в радианах и может быть как целым числом, так и вещественным числом.
Пример.
# Функция math.acos(x) import math n = float(input('n = ')) # ввести n n_rad = n*math.pi/180 # получить угол в радианах ac = math.acos(n_rad) # вычислить арккосинус print('n_rad = ', n_rad) print('ac = ', ac)
Результат работы программы
n = 35 n_rad = 0.6108652381980153 ac = 0.913643357298706
⇑
5. Функция math.asin(x). Арксинус
Функция math.asin(x) вычисляет арксинус угла от аргумента x. Значение аргумента x задается в радианах.
Пример.
# Функция math.asin(x) import math n = 10 # n - угол в градусах # конвертировать из градусов в радианы n_rad = n*math.pi/180 # n_rad = 0.17453292519943295 # вычислить арксинус asn = math.asin(n_rad) # asn = 0.17543139267904395
⇑
6. Функция math.atan(x). Арктангенс
Функция math.atan(x) возвращает арктангенс аргумента x, значение которого задается в радианах. При использовании функции важно помнить допустимые значения x, которые можно задавать при вычислении арктангенса.
Пример.
# Функция math.atan(x) import math n = 60 # n - угол в градусах # конвертировать из градусов в радианы n_rad = n*math.pi/180 # n_rad = 1.0471975511965976 # вычислить арктангенс atn = math.atan(n_rad) # atn = 0.808448792630022
⇑
7. Функция math.atan2(x, y). Арктангенс от x/y
Функция math.atan2(x, y) вычисляет арктангенс угла от деления x на y. Функция возвращает результат от —π до π. Аргументы x, y определяют координаты точки, через которую проходит отрезок от начала координат. В отличие от функции atan(x), данная функция правильно вычисляет квадрант, влияющий на знак результата.
Пример.
# Функция math.atan2(x,y) import math x = -2 y = -1 res = math.atan2(x, y) # res = -2.0344439357957027
⇑
8. Функция math.cos(x). Косинус угла
Функция math.cos(x) вычисляет косинус угла для аргумента x. Значение аргумента x задается в радианах.
Пример.
# Функция math.cos(x) import math x = 0 y = math.cos(x) # y = 1.0 x = math.pi y = math.cos(x) # y = -1.0 x = 2 # 2 радианы y = math.cos(x) # y = -0.4161468365471424
⇑
9. Функция math.sin(x)
Функция math.sin(x) возвращает синус угла от аргумента x, заданного в радианах.
Пример.
# Функция math.sin(x) import math x = math.pi y = math.sin(x) # y = 1.2246467991473532e-16 x = 0 y = math.sin(x) # y = 0.0 x = 2 # 2 радиана y = math.sin(x)
⇑
10. Функция math.hypot(x, y). Евклидовая норма (Euclidean norm)
Функция возвращает Евклидовую норму, которая равна длине вектора от начала координат до точки x, y и определяется по формуле
Пример.
# Функция math.hypot(x, y) import math x = 1.0 y = 1.0 z = math.hypot(x, y) # z = 1.4142135623730951 x = 3.0 y = 4.0 z = math.hypot(x, y) # z = 5.0
⇑
11. Функция math.tan(x). Тангенс угла x
Функция math.tan(x) возвращает тангенс от аргумента x. Аргумент x задается в радианах.
Пример.
# Функция math.tan(x, y) import math x = 1.0 y = math.tan(x) # y = 1.5574077246549023 x = 0.0 y = math.tan(x) # y = 0.0
⇑
Связанные темы
- Теоретико-числовые функции и функции представления
- Степенные и логарифмические функции
- Гиперболические функции
- Специальные функции и константы
⇑
В этом разделе представлены тригонометрические функции модуля math
.
Содержание:
- Функция
math.sin()
; - Функция
math.cos()
; - Функция
math.tan()
; - Функция
math.asin()
; - Функция
math.acos()
; - Функция
math.atan()
; - Функция
math.atan2()
; - Функция
math.hypot()
.
math.sin(x)
:
Функция math.sin()
возвращает синус угла x
значение которого задано в радианах.
>>> from math import * >>> sin(pi/2) # 1.0 >>> sin(pi/4) # 0.7071067811865475)
math.cos(x)
:
Функция math.cos()
возвращает косинус угла x
значение которого задано в радианах.
>>> from math import * >>> cos(pi/3) # 0.5000000000000001 >>> cos(pi) # -1.0
math.tan(x)
:
Функция math.tan()
возвращает тангенс угла x
значение которого задано в радианах.
>>>from math import * >>> tan(pi/3) # 1.7320508075688767 >>> tan(pi/4) # 0.9999999999999999
При определенных значениях углов тангенс должен быть равен либо −∞
либо +∞
, скажем tan(3π/2)=+∞
, a tan(−π/2)=−∞
, но вместо этого мы получаем либо очень большие либо очень маленькие значения типа float
:
>>> tan(-pi/2) # -1.633123935319537e+16 >>> tan(3*pi/2) # должно быть Inf, но # 5443746451065123.0
math.asin(x)
:
Функция math.asin()
возвращает арксинус значения x
, т. е. такое значение угла y
, выраженного в радианах при котором sin(y) = x
.
>>> from math import * >>> asin(sin(pi/6)) # 0.5235987755982988 >>> pi/6 # 0.5235987755982988
math.acos(x)
:
Функция math.acos()
возвращает арккосинус значения x
, т. е. возвращает такое значение угла y
, выраженного в радианах, при котором cos(y) = x
.
>>> from math import * >>> acos(cos(pi/6)) 0.5235987755982987 >>> pi/6 0.5235987755982988
math.atan(x)
:
Функция math.atan()
возвращает арктангенс значения x
, т. е. возвращает такое значение угла y
, выраженного в радианах, при котором tan(y) = x
.
>>> from math import * >>> atan(tan(pi/6)) # 0.5235987755982988 >>> pi/6 # 0.5235987755982988
math.atan2(y, x)
:
Функция math.atan2()
возвращает арктангенс значения y/x
, т. е. возвращает такое значение угла z
, выраженного в радианах, при котором tan(z) = x
. Результат находится между -pi
и pi
.
>>> from math import * >>> y = 1 >>> x = 2 >>> atan2(y, x) # 0.4636476090008061 >>> atan(y/x) # 0.4636476090008061 >>> tan(0.4636476090008061) # 0.49999999999999994
Данная функция, в отличие от функции math.atan()
, способна вычислить правильный квадрант в котором должно находиться значение результата. Это возможно благодаря тому, что функция принимает два аргумента (x, y)
координаты точки, которая является концом отрезка начатого в начале координат. Сам по себе, угол между этим отрезком и положительным направлением оси X не несет информации о том где располагается конец этого отрезка, что приводит к одинаковому значению арктангенса, для разных отрезков, но функция math.atan2()
позволяет избежать этого, что бывает очень важно в целом ряде задач. Например, atan(1)
и atan2(1, 1)
оба имеют значение pi/4, но atan2(-1, -1)
равно -3 * pi / 4
.
math.hypot(*coordinates)
:
Функция math.hypot()
возвращает евклидову норму, sqrt(sum(x**2 for x in coordinates))
. Это длина вектора от начала координат до точки, заданной координатами.
Для двумерной точки (x, y)
это эквивалентно вычислению гипотенузы прямоугольного треугольника с использованием теоремы Пифагора sqrt(x*x + y*y)
.
Изменено в Python 3.8: Добавлена поддержка n-мерных точек. Раньше поддерживался только двумерный случай.
Если вы ищете способ вычислить синус числа в радианах, то вы попали по адресу. Мы обсудим метод math.sin() в Python, который можно использовать для этой цели. Мы также приведем несколько примеров, чтобы показать вам, как он работает.
Метод
sin() – возвращает синус x в радианах.
Синус числа в радианах определяется как отношение длины стороны, противоположной углу в треугольнике с прямым углом, к длине гипотенузы. Метод sin() возвращает синус числа, где число — угол, выраженный в радианах.
Если взять треугольник с прямым углом и измерить один из его углов в радианах, то с помощью sin() можно вычислить длину стороны, противоположной этому углу. Это делает sin() очень полезным инструментом как для математиков, так и для ученых.
Например, если бы мы хотели вычислить высоту здания по его тени, мы могли бы использовать sin(), чтобы помочь нам. Измерив угол возвышения (угол между землей и вершиной здания), а затем измерив тень, отбрасываемую зданием, мы можем использовать sin() для расчета высоты здания.
Синтаксис
Ниже приведен синтаксис метода sin() в Python:
sin(x)
Примечание. Эта функция недоступна напрямую, поэтому нам нужно импортировать математический модуль, а затем нам нужно вызвать эту функцию, используя математический статический объект.
Параметры
x – должно быть числовое значение.
Возвращаемое значение
Функция возвращает числовое значение от -1 до 1, представляющее синус параметра x.
Пример
В следующем примере показано использование метода sin() в Python.
#!/usr/bin/python
import math
print "sin(3): ", math.sin(3)
print "sin(-3): ", math.sin(-3)
print "sin(0): ", math.sin(0)
print "sin(math.pi): ", math.sin(math.pi)
print "sin(math.pi/2): ", math.sin(math.pi/2)
Когда приведённый выше код выполнится, он даст следующий результат:
sin(3): 0.14112000806
sin(-3): -0.14112000806
sin(0): 0.0
sin(math.pi): 1.22464679915e-16
sin(math.pi/2): 1.0
Используя math, стандартный модуль Python для математических функций, вы можете вычислять тригонометрические функции (sin, cos, tan) и обратные тригонометрические функции (arcsin, arccos, arctan).
- Trigonometric functions — Mathematical functions — Python 3.10.4 Documentation
Следующее содержание объясняется здесь с примерами кодов.
- Pi (3.1415926…):
math.pi
- Преобразование углов (радианы, градусы):
math.degrees()
,math.radians()
- Синус, обратный синус:
math.sin()
,math.asin()
- косинус, обратный косинус:
math.cos()
,math.acos()
- Тангенс, обратный тангенс:
math.tan()
,math.atan()
,math.atan2()
- Различия ниже:
math.atan()
,math.atan2()
Table of Contents
- Pi (3.1415926…): math.pi
- Преобразование углов (радианы, градусы): math.degrees(), math.radians()
- Синус, обратный синус: math.sin(), math.asin()
- косинус, обратный косинус: math.cos(), math.acos()
- Тангенс, обратный тангенс: math.tan(), math.atan(), math.atan2()
- Разница между math.atan() и math.atan2()
Pi (3.1415926…): math.pi
Pi предоставляется в качестве константы в математическом модуле. Она выражается следующим образом.math.pi
import math
print(math.pi)
# 3.141592653589793
Преобразование углов (радианы, градусы): math.degrees(), math.radians()
Тригонометрические и обратные тригонометрические функции в математическом модуле используют радиан в качестве единицы измерения угла.
- Радиан — Википедия
Используйте math.degrees() и math.radians() для преобразования между радианами (метод градуса дуги) и градусами (метод градуса).
Math.degrees() преобразует радианы в градусы, а math.radians() преобразует градусы в радианы.
print(math.degrees(math.pi))
# 180.0
print(math.radians(180))
# 3.141592653589793
Синус, обратный синус: math.sin(), math.asin()
Функция для нахождения синуса (sin) — math.sin(), а функция для нахождения обратного синуса (arcsin) — math.asin().
Вот пример нахождения синуса 30 градусов с использованием функции math.radians() для преобразования градусов в радианы.
sin30 = math.sin(math.radians(30))
print(sin30)
# 0.49999999999999994
Синус 30 градусов равен 0,5, но здесь есть ошибка, потому что пи, иррациональное число, не может быть вычислено точно.
Если вы хотите округлить до соответствующего количества цифр, используйте функцию round() или метод format() или функцию format().
Обратите внимание, что возвращаемое значение round() — это число (int или float), а возвращаемое значение format() — это строка. Если вы хотите использовать его для последующих вычислений, используйте round().
print(round(sin30, 3))
print(type(round(sin30, 3)))
# 0.5
# <class 'float'>
print('{:.3}'.format(sin30))
print(type('{:.3}'.format(sin30)))
# 0.5
# <class 'str'>
print(format(sin30, '.3'))
print(type(format(sin30, '.3')))
# 0.5
# <class 'str'>
Функция round() указывает количество десятичных знаков в качестве второго аргумента. Обратите внимание, что это не совсем округление. Подробнее см. в следующей статье.
- СООТВЕТСТВУЮЩИЕ:Округление десятичных и целых чисел в Python:
round()
,Decimal.quantize()
Метод format() и функция format() задают количество десятичных знаков в строке спецификации форматирования. Подробнее см. в следующей статье.
- СООТВЕТСТВУЮЩИЕ:Преобразование формата в Python, формат (0-заполнение, экспоненциальная нотация, шестнадцатеричная и т.д.)
Если вы хотите сравнить, вы также можете использовать math.isclose().
print(math.isclose(sin30, 0.5))
# True
Аналогично, вот пример нахождения обратного синуса 0,5. math.asin() возвращает радианы, которые преобразуются в градусы с помощью math.degrees().
asin05 = math.degrees(math.asin(0.5))
print(asin05)
# 29.999999999999996
print(round(asin05, 3))
# 30.0
косинус, обратный косинус: math.cos(), math.acos()
Функция для нахождения косинуса (cos) — math.cos(), а функция для нахождения обратного косинуса (arc cosine, arccos) — math.acos().
Вот пример нахождения косинуса 60 градусов и обратного косинуса 0,5.
print(math.cos(math.radians(60)))
# 0.5000000000000001
print(math.degrees(math.acos(0.5)))
# 59.99999999999999
Если вы хотите округлить до соответствующего разряда, вы можете использовать round() или format(), как в случае с синусом.
Тангенс, обратный тангенс: math.tan(), math.atan(), math.atan2()
Функция для нахождения тангенса (tan) — math.tan(), а функция для нахождения обратного тангенса (arctan) — math.atan() или math.atan2().
Math.atan2() будет описана позже.
Пример нахождения тангенса 45 градусов и обратного тангенса 1 градуса показан ниже.
print(math.tan(math.radians(45)))
# 0.9999999999999999
print(math.degrees(math.atan(1)))
# 45.0
Разница между math.atan() и math.atan2()
И math.atan(), и math.atan2() — это функции, возвращающие обратный тангенс, но они отличаются количеством аргументов и диапазоном возвращаемых значений.
math.atan(x) имеет один аргумент и возвращает arctan(x) в радианах. Возвращаемое значение будет находиться между -pi 2 и pi 2 (от -90 до 90 градусов).
print(math.degrees(math.atan(0)))
# 0.0
print(math.degrees(math.atan(1)))
# 45.0
print(math.degrees(math.atan(-1)))
# -45.0
print(math.degrees(math.atan(math.inf)))
# 90.0
print(math.degrees(math.atan(-math.inf)))
# -90.0
В приведенном выше примере math.inf представляет бесконечность.
math.atan2(y, x) имеет два аргумента и возвращает arctan(y x) в радианах. Этот угол — угол (склонение), который вектор от начала координат (x, y) составляет с положительным направлением оси x в полярной координатной плоскости, а возвращаемое значение находится в диапазоне от -pi до pi (от -180 до 180 градусов).
Поскольку углы во втором и третьем квадрантах также могут быть получены правильно, math.atan2() более подходит, чем math.atan() при рассмотрении полярной координатной плоскости.
Обратите внимание, что порядок аргументов — y, x, а не x, y.
print(math.degrees(math.atan2(0, 1)))
# 0.0
print(math.degrees(math.atan2(1, 1)))
# 45.0
print(math.degrees(math.atan2(1, 0)))
# 90.0
print(math.degrees(math.atan2(1, -1)))
# 135.0
print(math.degrees(math.atan2(0, -1)))
# 180.0
print(math.degrees(math.atan2(-1, -1)))
# -135.0
print(math.degrees(math.atan2(-1, 0)))
# -90.0
print(math.degrees(math.atan2(-1, 1)))
# -45.0
Как и в приведенном выше примере, отрицательное направление оси x (y равен нулю и x отрицателен) равно pi (180 градусов), но когда y равен отрицательному нулю, это -pi (-180 градусов). Будьте осторожны, если вы хотите строго обращаться со знаком.
print(math.degrees(math.atan2(-0.0, -1)))
# -180.0
Отрицательные нули являются результатом следующих операций
print(-1 / math.inf)
# -0.0
print(-1.0 * 0.0)
# -0.0
Целые числа не рассматриваются как отрицательные нули.
print(-0.0)
# -0.0
print(-0)
# 0
Даже если x и y равны нулю, результат зависит от знака.
print(math.degrees(math.atan2(0.0, 0.0)))
# 0.0
print(math.degrees(math.atan2(-0.0, 0.0)))
# -0.0
print(math.degrees(math.atan2(-0.0, -0.0)))
# -180.0
print(math.degrees(math.atan2(0.0, -0.0)))
# 180.0
Есть и другие примеры, где знак результата меняется в зависимости от отрицательных нулей, например, math.atan2(), а также math.sin(), math.asin(), math.tan() и math.atan().
print(math.sin(0.0))
# 0.0
print(math.sin(-0.0))
# -0.0
print(math.asin(0.0))
# 0.0
print(math.asin(-0.0))
# -0.0
print(math.tan(0.0))
# 0.0
print(math.tan(-0.0))
# -0.0
print(math.atan(0.0))
# 0.0
print(math.atan(-0.0))
# -0.0
print(math.atan2(0.0, 1.0))
# 0.0
print(math.atan2(-0.0, 1.0))
# -0.0
Обратите внимание, что приведенные примеры — это результаты выполнения программы в CPython. Обратите внимание, что другие реализации или среды могут по-другому обрабатывать отрицательные нули.