Cosd и Sind с симпати
Кажется, нет эквивалента для cosd
, sind
в sympy (то есть косинус и синус для аргументов в градусах). Есть ли простой способ реализовать эти функции?
Для NumPy я сделал:
numpy.cosd = lambda x : numpy.cos( numpy.deg2rad(x) )
Что-то вроде:
sympy.cosd = lambda x : sympy.cos( sympy.pi/180*x )
работает для оценки, но выражение печатается как:
cos(pi*x/180)
что не очень хорошо для читабельности (у меня сложное выражение из-за изменения трехмерных координат). Есть ли способ создать sympy.cosd
функция, которая оценивает cos(pi/180 * x)
но печатает cosd(x)
?
2 ответа
sympy
имеет радиан, в mpmath
модуль.
sympy.cosd = lambda x : sympy.cos( sympy.mpmath.radians(x) )
Чтобы держать символы в такте при использовании градусов, я сделал что-то вроде:
import sympy as sp
def tand(x):
return sp.tan(x * sp.pi / 180)
def sind(x):
return sp.sin(x * sp.pi / 180)
def cosd(x):
return sp.cos(x * sp.pi / 180)
Пример результатов
In [5]: tand(60)
Out[5]: sqrt(3)