3 тригонометрия

Расчет длины гипотенузы

 math.hypot(2, 4) # Just a shorthand for SquareRoot(2**2 + 4**2)
# Out: 4.47213595499958

 

Преобразование градусов в радианы

Все math функции ожидать радианы так что вам нужно преобразовать градусы в радианы:

 math.radians(45)              # Convert 45 degrees to radians
# Out: 0.7853981633974483

 

Все результаты обратных тригонометических функций возвращают результат в радианах, поэтому вам может потребоваться преобразовать его обратно в градусы:

 math.degrees(math.asin(1))    # Convert the result of asin to degrees
# Out: 90.0

 

Синус, косинус, тангенс и обратные функции

 # Sine and arc sine
math.sin(math.pi / 2)
# Out: 1.0
math.sin(math.radians(90))   # Sine of 90 degrees
# Out: 1.0

math.asin(1)
# Out: 1.5707963267948966    # "= pi / 2"
math.asin(1) / math.pi
# Out: 0.5

# Cosine and arc cosine:
math.cos(math.pi / 2)
# Out: 6.123233995736766e-17 
# Almost zero but not exactly because "pi" is a float with limited precision!

math.acos(1)
# Out: 0.0

# Tangent and arc tangent:
math.tan(math.pi/2)
# Out: 1.633123935319537e+16 
# Very large but not exactly "Inf" because "pi" is a float with limited precision

 
math.atan (math.inf) # Out: 1.5707963267948966 # Это просто "pi / 2"
 math.atan(float('inf'))
# Out: 1.5707963267948966 # This is just "pi / 2"

 

Кроме math.atan есть также два-аргумента math.atan2 функция, которая вычисляет правильный квадрант и позволяет избежать ошибок деления на ноль:

 math.atan2(1, 2)   # Equivalent to "math.atan(1/2)"
# Out: 0.4636476090008061 # ≈ 26.57 degrees, 1st quadrant

math.atan2(-1, -2) # Not equal to "math.atan(-1/-2)" == "math.atan(1/2)"
# Out: -2.677945044588987 # ≈ -153.43 degrees (or 206.57 degrees), 3rd quadrant

math.atan2(1, 0)   # math.atan(1/0) would raise ZeroDivisionError
# Out: 1.5707963267948966 # This is just "pi / 2"

 

Гиперболический синус, косинус и касательная

 # Hyperbolic sine function
math.sinh(math.pi) # = 11.548739357257746
math.asinh(1)      # = 0.8813735870195429

# Hyperbolic cosine function
math.cosh(math.pi) # = 11.591953275521519
math.acosh(1)      # = 0.0

# Hyperbolic tangent function
math.tanh(math.pi) # = 0.99627207622075
math.atanh(0.5)    # = 0.5493061443340549