在sympy中评估三角函数表达式

3

我会使用Python 2.7与PyCharm社区版2016.2.3和Anaconda发行版。

我的输入类似于:

from sympy import *

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

输出结果是cos(25),是否有一种方法可以计算特定角度下的三角函数值,例如sin/cos?我尝试使用cos(degrees(x)),但没有任何不同。我是否遗漏了文档的重要部分或者确实没有办法做到这一点?感谢您的帮助 :)
1个回答

12

使用函数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

使用通配符导入*不是一个很好的想法。想象一下,如果您同样执行了from math import *,那么两个模块中的cos函数都将被公开。

请参阅PEP 8有关导入的指南


你说得对,有点忽略了正确导入的部分,这是绕过去的简单方法。你知道是否有一种根据度数值来评估表达式的方法吗? - borgmater
你输错了 mpmath 的导入。最终,我是这样导入的:from mpmath import *,但仍然找不到用度数进行计算的方法。此外,评估 N(f.subs(x, 25)) 返回一个值,既不对应弧度也不对应度数。 - borgmater
@borgmater 这个导入在 sympy 1.0 上可以工作。你说的“找不到用角度计算的方法”是什么意思?这个值对应于以度为单位的 cos(25) - Moses Koledoye
你是对的,我尝试了几次 Wolfram Alpha,得到了不同的值,现在数值是正确的。谢谢你的帮助 :) - borgmater

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接