Как найти синус угла в питоне

Improve Article

Save Article

Like Article

  • Read
  • Discuss
  • 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.570393993.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() — это кортеж из двух значений:

    1. Дробная часть аргумента;
    2. Целая часть аргумента;

    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.

    Trigonometry functions in Python

    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 radiansand 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()

    Понравилась статья? Поделить с друзьями:
  • Как найти дельту силы трения
  • Как найти силу тяги бруска
  • Как найти бардовскую песню по словам
  • Как найти установленную игру в xbox pc
  • Как найти объем фигуры в кубиках равен