2016-09-21 56 views
2

使用python 2.7和PyCharm Community Edition 2016.2.3 + Anaconda分佈。在sympy中評估三角函數表達式

我具有類似於輸入:

from sympy import * 

x = symbols('x') 
f = cos(x) 
print (f.subs(x, 25)) 

輸出是cos(25),。有沒有一種方法可以在某個角度評估諸如sin/cos之類的三角身份?我試過cos(degrees(x)),但沒有什麼不同。我是否缺少一些文檔的關鍵部分,或者真的沒有辦法做到這一點?泰對你有所幫助:)

回答

3

使用function N執行數值計算

>>> from sympy import N, symbols, cos 
>>> x = symbols('x') 
>>> f = cos(x) 
>>> f.subs(x, 25) 
cos(25) 
>>> N(f.subs(x, 25)) # evaluate after substitution 
0.991202811863474 

要在度計算,轉換角度爲弧度,使用mpmath.radians,所以在進行計算弧度值:

>>> import mpmath 
>>> f.subs(x, mpmath.radians(25)) 
0.906307787036650 

IMPOR與*(通配符導入)不是一個好主意。想象一下,如果你同樣做from math import *會發生什麼情況,那麼這兩個模塊的cos函數之一將會出現。

請參閱PEP 8 guideline on imports

+0

你是對的,有點跳過適當的進口部分,這是簡單的方法。你碰巧知道是否有方法根據度數值來評估表達式? – borgmater

+0

@borgmater更新了答案 –

+0

您錯誤輸入了'mpmath'。最後,我像這樣從'mpmath import *'導入它,但仍然找不到用度來評估的方法。此外,評估'N(f.subs(x,25))'返回一個不對應於弧度和度數的值 – borgmater