2010-12-14 8 views
2
 
from sympy import * 

x,y,s = symbols('xys') 

z = (1 - 2*x*x) 
w = (1 + 2*x*x) 
q = 2*x*x*2*y*y 

sub = {2*x*x: s} 
print w.subs(sub) 
print z.subs(sub) 

print q 
print q.subs(sub) 

私が手出力:SymPyのスカラーを使った代入は機能しませんか?

 
1 + s 
1 - 2*x**2 
4*x**2*y**2 
4*x**2*y**2 

出力は、私が期待:

 
1 + s 
1 - s 
4*x**2*y**2 
2*y**2*s 

は、私が何か間違ったことをしますか?

答えて

1

Sympyが一致するもので矛盾しているようです。たとえば、一致する置換式の記号を変更すると、zとの一致が許されます。この例をthis issueに追加することを検討します。また、Sympy mailing listを試してみます。覚えておいてください。このプロジェクトはまだバージョン番号1.0までではありません。そのため、まだまだ完璧なものではありません。

+0

私はすでに記号を変更すると、最初のものではなく2番目のケースで動作することに気付きました。スカラー値はあまりにも直接的なやり方で扱われるようです。 また、このプロジェクトは非常に早い段階にあり、象徴的な操作は容易ではないので、非常に長い間そこにいるかもしれません。 私はこれが簡単な解決策をとるには十分に簡単な問題かもしれないことを期待していました。 そして私は既にこの例をメーリングリストに送っています。 – elmo

関連する問題