使用标量替换SymPy不起作用?

时间:2010-12-14 14:59:24

标签: python substitution sympy

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)

我得到的输出:

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 个答案:

答案 0 :(得分:1)

Sympy似乎与它匹配的内容不一致。例如,更改匹配替换表达式上的符号允许z匹配。我会考虑将此示例添加到this issue。我也会尝试Sympy mailing list。请记住,这个项目甚至不是版本号1.0,所以事情并不是完美的(或者可能与任何软件一样)。