Sympy - 合理化表达式中的所有数值?(就像 Mathematica 的 Rationalize[])

eac*_*eau 5 python sympy fractions

是否有一种简单的方法来(尝试)合理化给定 delta 中表达式中的所有数值,就像Rationalize[]在 Mathematica 中一样?

Mathematica 中的一个例子:

In[25]:= Rationalize[0.5 x^2 - 3.333333 x, 10^-4]
Out[25]= x^2/2-(10 x)/3
Run Code Online (Sandbox Code Playgroud)

我看到了这个nsimplify()功能,但这似乎有点矫枉过正。

asm*_*rer 6

我不明白如何nsimplify结束杀戮。 nsimplify做你想要的,因为你可以传递一个 SymPy 表达式,它会合理化表达式中的术语

>>> print nsimplify(0.5*x**2 - 3.333333*x, tolerance=0.001, rational=True)
x**2/2 - 3333333*x/1000000
Run Code Online (Sandbox Code Playgroud)

(tolerance 关键字似乎不起作用,我猜这是一个错误)。