2017-08-10 5 views
2

collect_constのSympy(バージョン1.1.1)のドキュメントでは、Numbers=Falseオプションを使用すると、「FloatまたはRationalは収集されません」と表示されます。これは有理数は通常collect_constによって収集されていると思いますが、彼らはしていないようです:sympy collect_constで有権者を収集

>>> from sympy import * 
>>> x, y, z = symbols('x y z') 
>>> collect_const(2*x - 2*y - 2*z, 2) 
2*(x - y - z) 
>>> collect_const(x/2 - y/2 - z/2, 1/2) 
x/2 - y/2 - z/2 

アムは、私が何かが足りませんか?

ありがとうございます。

答えて

1

少しバグだと思います。引数Numbersは、算術演算子「/」ではうまく機能していないようです。あなたの例から:

>>> from sympy import * 
>>> x, y, z = symbols('x y z') 
>>> collect_const(x/2 - y/2 - z/2, 1/2, Numbers=False) 
x/2 - y/2 - z/2 
>>> collect_const(x/2 - y/2 - z/2, 1/2, Numbers=True) 
x/2 - y/2 - z/2 

表現には影響していないようです。しかし、我々は、「/ 2」に変更した場合、「0.5 *」結果はかなり異なっている:とにかく

>>> collect_const(.5*x - .5*y - .5*z, 1/2, Numbers=False) 
.5*x - .5*y - .5*z 
>>> collect_const(.5*x - .5*y - .5*z, 1/2, Numbers=True) 
.5*(x - y - z) 

、私はGithubIssueを作成しました。

関連する問題