在sympy中似乎沒有對應的cosd
,sind
(即餘弦和正弦參數的度數)。有沒有簡單的方法來實現這些功能?cosd和smp同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)
這是不是偉大的可讀性(由於3D座標變化,我有複雜的表達)。有什麼辦法可以創建一個sympy.cosd
函數來評估cos(pi/180 * x)
,但打印cosd(x)
?
很多數學公式看起來很漂亮,但[萌芽當以度數工作時,會出現「pi/180'疣」(https://qedinsight.wordpress.com/2011/03/14/why-radian-measure-makes-life-easier-in-mathematics-and-physics/)。最好以弧度工作,並完全避免度數 - 如果您絕對必須,最終轉換爲度數。 – unutbu
公平不夠,感謝您的鏈接。那麼如何完成更換?如果我有一個表達式'y = sympy.cos(x)','y.subs(sympy.cos,sympy.cosd)'不能與sympy.cosd的上述定義一起工作(因爲它不是sympy函數但只是一個通常的lambda函數)。 'y.subs(x,pi/180 * x)'在這裏起作用,但是如果cos中的表達式是複雜的(如各種參數的多項式表達式),那麼搜索哪些參數必須用pi來代替可能並不方便/ 180',哪一個不行。 – Nihl
設'''''''''''''','phi'等是以弧度表示量的符號。保留這些符號的列表:'角度= [x,theta,phi]'。然後,在最後,使用'y.subs([(角度,角度* pi/180)角度角]]來將符號的含義改變爲度數。 – unutbu