2016-09-21 54 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