【发布时间】:2014-01-18 01:07:14
【问题描述】:
我最近遇到了无法解决的 SympPy 问题;我是图书馆的初学者,我花了很长时间在网上寻找解决方案,但没有找到,这就是我来这里的原因。
问题是:我有一个来自 javascript Web 应用程序的输出,它给了我表达式 (x**2)**(1/3) 而不是 x**(2/3)。 “没问题”,我想,“SymPy 会解析那个”......但不是。如果我比较,我会得到这个结果:
>>> sympify("(x**2)**(1/3)") == sympify("x**(2/3)")
False
我进行了一些测试,但我只得到简化表达式中的指数。示例:
>>> (x**(1/3))**2 == x**(2/3)
True
更奇怪的是,如果我将两个指数取反,我会得到正确的结果:
>>> sympify("(x**(1/3))**2") == sympify("x**(2/3)")
True
我尝试使用simplify 和extend,但它也不起作用。获得好结果的唯一方法是使用eval,但这需要首先创建一个符号“x”,这是我无法做到的,因为我无法确切知道哪些符号将用于表达式。
所以问题来了:这是 SymPy 中的错误,还是我做错了什么?
如果这个问题众所周知并且我自己找不到任何相关信息,请原谅。
【问题讨论】: