【问题标题】:Evaluating trigonometric expressions in sympy在 sympy 中评估三角函数表达式
【发布时间】:2016-09-21 09:18:16
【问题描述】:

将 python 2.7 与 PyCharm Community Edition 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)),但没有什么不同。我是否遗漏了文档的某些关键部分,或者真的没有办法做到这一点?求你的帮助:)

【问题讨论】:

    标签: python numpy trigonometry sympy


    【解决方案1】:

    使用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,因此计算是在 rad 值上执行的:

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

    使用*(通配符导入)导入不是一个好主意。想象一下,如果您同样执行from math import *,那么两个模块中的cos 函数之一将在野外出现。

    请参阅PEP 8 guideline on imports

    【讨论】:

    • 你是对的,有点跳过了关于正确导入的部分,这是最简单的方法。您是否碰巧知道是否有一种方法可以根据度数来评估表达式?
    • 您输入错误 mpmath 的导入。最终,我像这样导入了它,from mpmath import *,但仍然找不到用学位评估的方法。此外,评估 N(f.subs(x, 25)) 返回的值既不对应弧度也不对应度数
    • @borgmater 该导入适用于 sympy 1.0。你是什​​么意思找不到用度数评估的方法?该值对应于cos(25) 度数。
    • 你是对的,我尝试了 Wolfram Alpha 几次,我得到了不同的值,现在这些值是正确的。谢谢你的帮助:)
    猜你喜欢
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多