繁体   English   中英

带有sympy潜艇的奇怪行为

[英]Strange behaviour with sympy subs

我最近从sympy 0.7.4更新到0.7.6,现在对subs有一些非常奇怪的行为。 以下代码

from sympy.abc import phi
import sympy as sp

z=sp.Symbol('z')
t=sp.Symbol('t')
sp.pprint((phi(z,t).diff(t,2)).subs(phi(z,t).diff(z),sp.Symbol('b')(z,t)).expand())

给我输出

2

───(b(z,t))2
∂t

(b的二阶时间导数),但我期望输出

2

───(φ(z,t))2
∂t

(phi的二阶时间导数,即没有替代)

在我以前的sympy版本中,这非常正常。

这绝对是一个错误:

In [10]: phi(z,t).diff(t,2).subs(phi(z,t), b(z,t))
Out[10]: Derivative(b(z, t), t, t)

In [11]: phi(z,t).diff(t,2).subs(phi(z,t).diff(t), b(z,t))
Out[11]: Derivative(b(z, t), t)

In [12]: phi(z,t).diff(t,2).subs(phi(z,t).diff(z), b(z,t))
Out[12]: Derivative(b(z, t), t, t)

似乎当原始导数的参数与subs导数参数不匹配时,就没有考虑这些参数。 看起来已经被报道过https://github.com/sympy/sympy/issues/9135

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM