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对象。”
答案 0 :(得分:2)
以下内容将为您提供所需的内容
>>> s=R(u(x,y)).diff(x)
>>> s.replace(Subs, lambda a,b,c: a.xreplace(dict(zip(b,c))))
(如果应用doit方法,它将恢复为Subs实例。)