Skip to main content
 首页 » 编程设计

python之使用标量的 SymPy 替换不起作用

2025年05月04日8lyj

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 

我做错了什么吗?

请您参考如下方法:

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