python - 如何使用python简化三角函数表达式?

标签 python wolfram-mathematica sympy

我有一个由 Sympy 计算的表达式:

-1.0*pi*(-1.0*sin(1.0*t) - 0.025*cos(1.0*t) + 4.0*cos(2.0*t))

然后我尝试了很多为简化表达而提供的选项,但它们都不太奏效。

当我使用 expand_trig() 时,它返回:

pi*(1.0*sin(1.0*t) + 0.025*cos(1.0*t) - 4.0*cos(2.0*t))

但是当我使用 Mathematica 时,它返回:

-25.0542 Cos t + 3.14159 Sin t

如何使用 Python 获得类似 Mathematica 的结果?如果我想进一步简化 Mathematica 给出的表达式,我应该怎么做?

最佳答案

SymPy 可以扩展cos(2*t) 项,但它不能用浮点系数识别它。 expand_trig(cos(2*t)) 有效(它给出 2*cos(t)**2 - 1)。我还建议使用 cos(t) 而不是 cos(1.0*t),因为 SymPy 会将它们视为不同的(例如,cos(t) - cos (1.0*t) 不会简化为 0)。我还建议使用 sympy.pi,因为它是符号化的并且可以符号化简化(例如,sin(sympy.pi) 给出 0sin(math.pi) 没有)。

正如其他人所指出的,您声称由 Mathematica 返回的表达式并不等价,如简单图所示。

关于python - 如何使用python简化三角函数表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41942696/

相关文章:

python - .eigenvals 创建一个新变量

python - Python 中的 MongoDB 通知

python - __init__ 中声明的变量似乎在类实例之间共享?

python - 在正数前附加一个加号

wolfram-mathematica - 在 Mathematica 中删除嵌套列表

datetime - Mathematica 的日期格式

wolfram-mathematica - 数学中结构的第一人称视角

python - Sympy:类型错误:无法将表达式转换为 float

sum - 带索引变量的符号求和

python - 如何在 Julia 中使用 Anaconda 中不可用且需要通过 pip 安装的 Python 包