【发布时间】:2018-04-05 22:07:51
【问题描述】:
我已经成功使用 Latex2SymPy 处理各种 LaTeX 输入已有一段时间了,但我在一些功能上遇到了麻烦。例如:
from latex2sympy.process_latex import process_sympy
from sympy import *
inputLatex = '\\sin{-x}\\sin{-x}'
trigsimp(process_sympy(inputLatex))
罪(x)**2
效果很好:trigsimp 很好地处理了简化。现在,如果我尝试:
inputLatex = '\\sin{-x}'
trigsimp(process_sympy(inputLatex))
罪(-x)
尽管这显然是正确的,但我希望 trigsimp() 给我 -sin(x) 作为答案。事实上,如果我直接从 sympy 表达式运行 trigsimp:
trigsimp(sin(-x))
-sin(x)
这是我所期望的。即使在没有 trigsimp() 命令的情况下运行 sin(-x) 也会返回 -sin(x)。我检查了我的 process_sympy('\\sin{-x}') 调用的对象类型,它是'sin'。
我认为这可能与 x 转换为 Symbol 类型的方式有关,但我随后尝试将 pi 放入 sin 函数中。
inputLatex = '\\sin{\\pi}'
trigsimp(process_sympy(inputLatex))
罪(pi)
如果我直接运行 sin(pi),无论有无 trigsimp(),我都会得到 0 作为答案。
你们中的任何人都可以解释一下吗?
【问题讨论】:
-
你尝试过没有对罪的反斜杠吗?我有一种感觉,\\sin 并没有被识别为正弦函数,而是被称为 sin 的新符号。您可以通过运行复制此行为,例如测试 = sympy.symbols('sin');测试(3);测试(-3); sympy.trigsimp(test(-3))
-
我使用 type() 检查了对象。 Latex2Sympy 正确处理它,将 LaTeX 转换为 Sympy 格式,并正确识别正弦函数(输入“sin”)。它只是不评估这一点。至于反斜杠,我需要它们,因为它是 LaTeX 格式。我也试过其他的简化函数,比如fu(),exptrigsimp(),同样的问题也出现了。
-
嗨我无法运行上面的代码,你能指导一下你使用的是哪个python版本以及你是如何设置latex2sympy的
标签: sympy symbolic-math