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
Используя 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. Обратите внимание, что другие реализации или среды могут по-другому обрабатывать отрицательные нули.
Если вы ищете способ вычислить синус числа в радианах, то вы попали по адресу. Мы обсудим метод 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
.
Содержание:
- Функция
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-мерных точек. Раньше поддерживался только двумерный случай.
The math library in python has a plethora of trigonometric functions which are enough for performing various trigonometric calculations in just minimal lines of code. These functions can be used after importing the math module or by referencing the math library with the dot operator as follows:
math.function_name(parameter)
# or import the math module
import math
There are 2 helper methods that help convert values from radians to degrees and vice-versa so that you can check the value in any format you want.
degrees(value)
: This method converts the value passed to it from radians to degrees.
radians(value)
: This method converts the value passed to it from degrees to radians.
Quick Fact: All the trigonometric functions in Python assume that the input angle is in terms of radians
.
Also, as we study mathematics, pi/2
90 degrees and pi/3
is 60 degrees, the math module in python provides a pi
constant that represents pi
which can be used with the trigonometric function.
Most Common Trigonometric Functions in Python
Trigonometric functions | Description |
math.cos() | It returns the cosine of the number (in radians). |
math.sin() | It returns the sine of the number (in radians). |
math.tan() | It returns the tangent of the number in radians. |
math.acos() | It returns the arc cosine of the number in radians. |
math.asin() | It returns the arc sine of the number in radians. |
math.atan() | It returns the arc tangent of the number in radians. |
Time for an Example:
In the code example below, we have used the degrees()
and radians()
methods,
import math
print(math.degrees((math.pi/2)))
print(math.radians(60))
Output:
90.0 1.0471975511965976
Now let’s see the various trigonometric functions in action, one by one.
sin(x)
Function
This function returns the sine of the value which is passed (x here). The input x
should be an angle mentioned in terms of radians (pi/2, pi/3/ pi/6, etc).
cos(x)
Function
This function returns the cosine of the value passed (x here). The input x
is an angle represented in radians.
tan(x)
Function
This function returns the tangent of the value passed to it, i.e sine/cosine of an angle. The input here is an angle in terms of radians.
Code example for sin
, cos
, and tan
:
Below we have a simple code example for the 3 trigonometric functions defined above,
import math
print(math.sin(math.pi/3)) #pi/3 radians is converted to 60 degrees
print(math.tan(math.pi/3))
print(math.cos(math.pi/6))
Output:
0.8660254037844386 1.7320508075688767 0.8660254037844387
asin(x)
Function
This function returns the inverse of the sine, which is also known as the arc sine of a complex number. The input is in terms of radians and should be within the range -1 to 1. It returns a floating-point number as output.
acos(x)
Function
This function returns the cosine inverse of the parameter x
in radians. This is also known as the arc cosine of a complex number. The value of x
should be within the range of -1 and 1. It returns a floating-point number as output.
atan(x)
Function
This function returns the inverse of the tangent, in radians. It is known as the arc tangent of the complex number. The parameter’s value lies within -1 and 1. It can also be represented as (math.sin(math.pi / 4)) / (math.cos(math.pi / 4))
. It returns a floating-point number as output.
Code example for asin
, acos
, and atan
with angles in radians:
import math
print(math.asin(1))
print(math.acos(0))
print(math.atan(1))
Output:
1.5707963267948966 1.5707963267948966 0.7853981633974483
The below example depicts how the asin
, acos
and atan
functions can be used with complex numbers, which have the format x+iy
.
import cmath
x = 1.0
y = 1.0
z = complex(x,y)
print ("The arc sine is: ",cmath.asin(z))
print ("The arc cosine is: ",cmath.acos(z))
print ("The arc tangent is: ",cmath.atan(z))
Output:
The arc sine is : (0.6662394324925153+1.0612750619050357j) The arc cosine is : (0.9045568943023814-1.0612750619050357j) The arc tangent is : (1.0172219678978514+0.40235947810852507j)
sinh(x)
Function
This method returns the hyperbolic sine of the angle of the complex number that is passed.
cosh(x)
Function
This method returns the hyperbolic cosine of the angle of the complex number that is passed.
tanh(x)
Function
This method returns the hyperbolic tangent of the angle of the complex number that is passed.
Code example for sinh
, cosh
, and tanh
with complex numbers:
import cmath
x = 1.0
y = 1.0
z = complex(x,y)
print ("The hyperbolic sine is : ",cmath.sinh(z))
print ("The hyperbolic cosine is : ",cmath.cosh(z))
print ("The hyperbolic tangent is : ",cmath.tanh(z))
Output:
The hyperbolic sine is : (0.6349639147847361+1.2984575814159773j) The hyperbolic cosine is : (0.8337300251311491+0.9888977057628651j) The hyperbolic tangent is : (1.0839233273386946+0.2717525853195118j)
asinh(x)
Function
It returns the inverse of the hyperbolic sine of an angle/complex number.
acosh(x)
Function
It returns the inverse of the hyperbolic cosine of an angle/complex number.
atanh(x)
Function
It returns the inverse of the hyperbolic tangent of an angle/complex number.
Code example for asinh
, acosh
, and atanh
methods with complex numbers:
import cmath
x = 1.0
y = 1.0
z = complex(x,y)
print ("The inverse hyperbolic sine is : ",cmath.asinh(z))
print ("The inverse hyperbolic cosine is : ",cmath.acosh(z))
print ("The inverse hyperbolic tangent is : ",cmath.atanh(z))
Output:
The inverse hyperbolic sine is : (1.0612750619050357+0.6662394324925153j) The inverse hyperbolic cosine is : (1.0612750619050357+0.9045568943023813j) The inverse hyperbolic tangent is : (0.40235947810852507+1.0172219678978514j)
atan2(y, x)
Function
This translates to atan2(y/x)
wherein both y and x are numeric values. It returns a value that lies between –pi
and pi
. This represents the angle between the positive x-axis and the coordinates (x,y).
print(math.atan2(1.2,1.3))
Output:
0.7454194762741583
hypot(x,y)
Function
This function returns the hypotenuse, i.e the Euclidean norm. This means it returns the distance between the origin and the points (x,y). This indicates the length of the vector in the 2-D space. The Euclidean norm is also known as the ‘magnitude’ of the vector. This is the numerical value of the vector (since vectors have magnitude and direction).
If more than 2 arguments are passed, it gracefully returns a TypeError
.
print(math.hypot(2,2))
Output:
2.8284271247461903
NOTE: When these values are compared to the numeric values of the angles, there might be a few decimal place differences, which can be safely ignored. For example, tan(pi/3)
converts to tan 60 and which is equivalent to sqrt(3)
. If the tan
function is used, the output is 1.7320508075688767 whereas sqrt(3)
gives 1.7320508075688772.
Is it this simple? What about exceptions and errors?
Well, you are absolutely right. There are two kinds of exceptions that could potentially occur due to the wrong usage of these methods:
TypeError: This kind of error occurs when a value that is not a number is passed as a parameter to one of the trigonometric methods.
ValueError: This error occurs when an invalid value/parameter is passed to the method.
An example demonstrating both exceptions:
import math
# It is being passed as a string rather than a number,
# hence the error.
print(math.sin('2'))
# Inverse of the sine angle can be found for parameters
# which are in radians only and inverse of sine of an integer
# is mathematically undefined, leading to the error
print(math.asin(5))
Output:
TypeError: must be real number, not str ValueError: math domain error
Conclusion
We learned about how various trigonometric methods could be used by importing the math module in python. Remember to always pass the parameter in radians
or convert the degrees
into radians
and then pass it as a parameter.
Frequently Asked Questions (FAQs) :
1. Does Python have trigonometric functions?
Python has a wide range of Trigonometric functions like math.cos(), math.sine() that can be used to calculate the Trigonometry terms like these. Read the complete article to know how you can use Trigonometric functions in Python.
2. What are cos functions in Python?
math.cos() function in Python can give the cosine of a number.
3. How do you define tan in Python?
tan() function is used to to calculate the tangent of a number.
You May Also Like
-
The ‘setdefault’ Function in Python
-
The ‘time.sleep’ Function in Python
-
Python Math Library functions – exp(), expm1(), pow(), and sqrt()
-
Python Math Functions- fsum(), modf(), and trunc()