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
.
Содержание:
- Функция
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
- Список функций
-
Теоретико-числовые функции и функции представления
-
Степенные и логарифмические функции
-
Тригонометрические функции
-
Угловые преобразования
-
Гиперболические функции
-
Специальные функции
Python библиотека math
содержит наиболее применяемые математические функции и константы. Все вычисления происходят на множестве вещественных чисел.
Если вам нужен соответствующий аппарат для комплексного исчисления, модуль math
не подойдёт. Используйте вместо него cmath
. Там вы найдёте комплексные версии большинства популярных math
-функций.
Синтаксис и подключение
Чтобы подключить модуль, необходимо в начале программы прописать следующую инструкцию:
import math
Теперь с помощью точечной нотации можно обращаться к константам и вызывать функции этой библиотеки. Например, так:
math.log()
Константы модуля Math
math.pi
Представление математической константы π = 3.141592…. «Пи» — это отношение длины окружности к её диаметру.
print(math.pi)
> 3.141592653589793
math.e
Число Эйлера или просто e
. Иррациональное число, которое приблизительно равно 2,71828.
print(math.e)
> 2.718281828459045
math.tau
Число τ — это отношение длины окружности к её радиусу. Т.е
import math
> print(math.tau)
print(math.tau == 2 * math.pi)
> True
math.inf
Положительная бесконечность.
print(math.inf)
> inf
Для оперирования отрицательной бесконечно большой величиной, используйте -math.inf
Константа math.inf
эквивалента выражению float("inf")
.
math.nan
NaN
означает — «не число».
print(math.nan)
> nan
Аналогичная запись: float("nan")
.
Список функций
Теоретико-числовые функции и функции представления
math.ceil()
Функция округляет аргумент до большего целого числа.
print(math.ceil(3.0001))
> 4
math.comb(n, k)
Число сочетаний из n
по k
. Показывает сколькими способами можно выбрать k
объектов из набора, где находится n
объектов. Формула:
Решим задачу: На столе лежат шесть рубинов. Сколько существует способов выбрать два из них?
print(math.comb(6,2))
> 15
💭 Можете подставить числа в формулу, и самостоятельно проверить правильность решения.
math.copysign()
Функция принимает два аргумента. Возвращает первый аргумент, но со знаком второго.
print(math.copysign(-6, 2))
> 6.0
math.fabs()
Функция возвращает абсолютное значение аргумента:
print(math.fabs(-42))
> 42.0
math.factorial()
Вычисление факториала. Входящее значение должно быть целочисленным и неотрицательным.
print(math.factorial(5))
> 120
math.floor()
Антагонист функции ceil()
. Округляет число до ближайшего целого, но в меньшую сторону.
print(math.floor(3.99))
> 3
math.fmod(a, b)
Считает остаток от деления a
на b
. Является аналогом оператора «%
» с точностью до типа возвращаемого значения.
print(math.fmod(75, 4))
> 3.0
math.frexp(num)
Возвращает кортеж из мантиссы и экспоненты аргумента. Формула:
, где M
— мантисса, E
— экспонента.
print(math.frexp(10))
> (0.625, 4)
# проверим
print(pow(2, 4) * 0.625)
> 10.0
math.fsum()
Вычисляет сумму элементов итерируемого объекта. Например, вот так она работает для списка:
summable_list = [1, 2, 3, 4, 5]
print(math.fsum(summable_list))
> 15.0
math.gcd(a, b)
Возвращает наибольший общий делитель a
и b
. НОД — это самое большое число, на которое a
и b
делятся без остатка.
a = 5
b = 15
print(math.gcd(a, b))
> 5
math.isclose(x, y)
Функция возвращает True
, если значения чисел x
и y
близки друг к другу, и False
в ином случае. Помимо пары чисел принимает ещё два необязательных именованных аргумента:
rel_tol
— максимально допустимая разница между числами в процентах;abs_tol
— минимально допустимая разница.
x = 10
y = 11
print(math.isclose(x, y))
> False
print(math.isclose(x, y, rel_tol=1))
> True
math.isfinite()
Проверяет, является ли аргумент NaN
, False
или же бесконечностью. True
, если не является, False
— в противном случае.
norm = 3
inf = float('inf')
print(math.isfinite(norm))
> True
print(math.isfinite(inf))
> False
math.isinf()
True
, если аргумент — положительная/отрицательная бесконечность. False
— в любом другом случае.
not_inf = 42
inf = math.inf
print(math.isinf(not_inf))
> False
print(math.isinf(inf))
> True
math.isnan()
Возврат True
, если аргумент — не число (nan
). Иначе — False
.
not_nan = 0
nan = math.nan
print(math.isnan(not_nan))
> False
print(math.isnan(nan))
> True
math.isqrt()
Возвращает целочисленный квадратный корень аргумента, округлённый вниз.
print(math.isqrt(44))
> 6
math.ldexp(x, i)
Функция возвращает значение по формуле:
возвращаемое значение = x * (2 ** i)
print(math.ldexp(3, 2))
> 12.0
math.modf()
Результат работы modf()
— это кортеж из двух значений:
- Дробная часть аргумента;
- Целая часть аргумента;
print(math.modf(3.14))
> (0.14000000000000012, 3.0)
math.perm(n, k)
Возвращает число размещений из n
по k
. Формула:
Задача: Посчитать количество вариантов распределения трёх билетов на концерт Стаса Михайлова для пяти фанатов.
print(math.perm(5, 3))
> 60
Целых 60 способов! Главное — не запутаться в них, и не пропустить концерт любимого исполнителя!
math.prod()
Принимает итерируемый объект. Возвращает произведение элементов.
multiple_list = [2, 3, 4]
print(math.prod(multiple_list))
> 24
math.remainder(m, n)
Возвращает результат по формуле:
Результат = m – x * n,
где x
— ближайшее целое к выражению m/n
число.
print(math.remainder(55, 6))
> 1.0
print(math.remainder(4, 6))
> -2.0
math.trunc()
trunc()
вернёт вам целую часть переданного в неё аргумента.
print(math.trunc(4.6))
> 4
Степенные и логарифмические функции
math.exp(x)
Возвращает e
в степени x
. Более точный аналог pow(math.e, x)
.
print(math.exp(3))
> 20.085536923187668
math.expm1(x)
Вычисляет значение выражения exp(x) - 1
и возвращает результат.
print(math.expm1(3))
> 19.085536923187668
print(math.expm1(3) == (math.exp(3) - 1))
> True
math.log()
Функция работает, как с одним, так и с двумя параметрами.
1 аргумент: вернёт значение натурального логарифма (основание e
):
print(math.log(math.e))
> 1.0
2 аргумента: вернёт значение логарифма по основанию, заданному во втором аргументе:
print(math.log(16, 4))
> 2.0
☝️ Помните, это читается, как простой вопрос: «в какую степень нужно возвести число 4
, чтобы получить 16
«. Ответ, очевидно, 2
. Функция log()
с нами согласна.
math.log1p()
Это натуральный логарифм от аргумента (1 + x)
:
print(math.log(5) == math.log1p(4))
> True
math.log2()
Логарифм по основанию 2
. Работает точнее, чем math.log(x, 2)
.
math.log10()
Логарифм по основанию 10
. Работает точнее, чем math.log(x, 10)
.
math.pow(a, b)
Функция выполняет возведение числа a
в степень b
и возвращает затем вещественный результат.
print(math.pow(2,4))
> 16.0
Подробнее о возведении в степень в Python:
math.sqrt()
Возврат квадратного корня из аргумента
print(math.sqrt(16))
> 4.0
Про квадратные корни в Python:
Тригонометрические функции
math.acos()
Функция возвращает арккосинус в радианах:
print(math.acos(-1))
> 3.141592653589793
math.asin()
Возврат арксинуса (угол в радианах):
# π/2
print(math.asin(1))
> 1.5707963267948966
math.atan()
Арктангенс:
# π/4
print(math.atan(1))
> 0.7853981633974483
math.atan2(y, x)
Функция принимает на вход два аргумента и возвращает арктангенс y/x
. Значение будет в радианах. atan2()
учитывает четверть, в которой находится точка (x, y)
.
print(math.atan2(-12, 13))
> -0.7454194762741583
math.cos()
Косинус угла, который следует указывать в радианах:
print(math.cos(math.pi))
> -1.0
math.dist(p, q)
Функция возвращает значение евклидова расстояния между точками p
и q
. У точек должны совпадать измерения. В прямоугольной системе координат dist(p, q)
эквивалентна следующей формуле:
# аналогично sqrt(8)
print(math.dist((0, 0), (2, 2)))
> 2.8284271247461903
math.hypot(x, y)
Возвращает длину вектора от начала координат до точки, заданной координатами. Иначе — функция вычисляет гипотенузу треугольника c катетами x
и y
.
print(math.hypot(3, 4))
> 5.0
math.sin()
Функция вернёт синус угла. Угол следует задавать в радианах:
print(math.sin(0))
> 0.0
math.tan()
Тангенс угла. Аргумент указываем в радианах.
print(math.tan(math.radians(315)))
> -1.0000000000000004
Угловые преобразования
math.degrees()
Функция переводит радианное значение угла в градусы.
print(math.degrees(math.pi))
> 180.0
math.radians()
Наоборот: из градусов — в радианы.
# функция отрабатывает прямо, как по табличке синусов =)
print(math.radians(30))
> 0.5235987755982988
print(math.pi / 6)
> 0.5235987755982988
Гиперболические функции
Гиперболические функции являются аналогами тригонометрических и тесно с ними связаны. Но тригонометрические функции основаны на окружностях, а гиперболические, соответственно, на гиперболах.
Для Python все они принимают один аргумент — точку, в которой вычисляется значение функции.
math.acosh()
Обратный гиперболический косинус:
print(math.acosh(1))
> 0.0
math.asinh()
Обратный гиперболический синус:
print(math.asinh(0))
> 0.0
math.atanh()
Обратный гиперболический тангенс:
print(math.atanh(0))
> 0.0
math.cosh()
Гиперболический косинус:
print(math.cosh(1.2))
> 1.8106555673243747
math.sinh()
Гиперболический синус:
print(math.sinh(2.5))
> 6.0502044810397875
math.tanh()
Гиперболический тангенс:
print(math.tanh(6))
> 0.9999877116507956
Специальные функции
math.erf(x)
Возвращает в x
функцию ошибки Гаусса.
math.erfc(x)
Возвращает в x
комплементарную функцию ошибки.
math.gamma()
Возвращает значение гамма-функции в точке x
.
print(math.gamma(4))
> 6.0
math.lgamma()
Аналогично возвращается натуральный логарифм модуля значения гамма-функции в точке x
.
print(math.log(math.gamma(4)))
> 1.791759469228055
print(math.lgamma(4))
> 1.7917594692280554
—
Используя 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. Обратите внимание, что другие реализации или среды могут по-другому обрабатывать отрицательные нули.
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()