如何防止替换的产生

时间:2014-05-08 12:47:34

标签: sympy

Sympy有时会在我的考试中自动生成替换:

我该怎样防止这种情况?或者,我如何从表达式中删除替换?

from sympy import *
R, T = symbols('R T', cls=Function)
u = symbols('u', cls=Function)
x, y, z= symbols('x y z')

R(u(x,y)).diff(x)

给出

Derivative(u(x, y), x)*Subs(Derivative(R(_xi_1), _xi_1), (_xi_1,), (u(x, y),))

我想要

Derivative(u(x, y), x)*Derivative(R(u(x, y), (u(x, y)))

PS:http://docs.sympy.org/latest/modules/core.html#subs说“在不是符号的点处评估衍生物时,会返回一个Subs对象。”

1 个答案:

答案 0 :(得分:2)

以下内容将为您提供所需的内容

>>> s=R(u(x,y)).diff(x)
>>> s.replace(Subs, lambda a,b,c: a.xreplace(dict(zip(b,c))))

(如果应用doit方法,它将恢复为Subs实例。)