6

Rationalize[]Mathematicaのように、特定のデルタ内の式のすべての数値を合理化する (しようとする) 簡単な方法はありますか?

Mathematica での例:

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

機能はわかりnsimplify()ますが、それはやり過ぎのようです。

4

3 に答える 3

6

nsimplifyオーバーキルの 仕方がわかりません。nsimplifySymPy式を渡すことができ、式の項を合理化するため、まさにあなたが望むことを行います

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

(tolerance キーワードが機能していないようです。これはバグだと思います)。

于 2012-10-09T04:04:38.930 に答える
0

Sympy を使用しているためpslq、mpmath モジュールから関数にアクセスすることもできます。これにより、有理数と 1 の間の最も適切な線形関係を見つけることができます。

>>> from mpmath import pslq, mpf
>>> from sympy import sympify
>>> l = pslq([ mpf('.3333333333333333333333', 1])
>>> -l[1]/sympify(l[0])
1/3
于 2015-11-25T16:26:05.163 に答える