Python Symphy打印区分用户定义的复合函数;如何切换替换
我想去掉sympy在区分用户定义的复合函数时所做的额外替换。代码是Python Symphy打印区分用户定义的复合函数;如何切换替换,python,sympy,Python,Sympy,我想去掉sympy在区分用户定义的复合函数时所做的额外替换。代码是 t = Symbol('t') u = Function('u') f = Function('f') U = Symbol('U') pprint(diff(f(u(t),t),t)) 输出为: d d ⎛ d ⎞│ ──(f(u(t), t)) + ──(u(t))⋅⎜───(f(ξ₁, t))⎟│ dt
t = Symbol('t')
u = Function('u')
f = Function('f')
U = Symbol('U')
pprint(diff(f(u(t),t),t))
输出为:
d d ⎛ d ⎞│
──(f(u(t), t)) + ──(u(t))⋅⎜───(f(ξ₁, t))⎟│
dt dt ⎝dξ₁ ⎠│ξ₁=u(t)
我想这是因为你不能区分w.r.t,所以这没关系。接下来我要做的是用另一个变量替换u(t),比如u,然后去掉额外的替换\xi\u 1
⎞│
⎟│
⎠│ξ₁=U
为了澄清,我需要以下输出:
d d ⎛d ⎞
──(f(U, t)) + ──(U)⋅⎜──(f(U, t))⎟
dt dt ⎝dU ⎠
原因是,;当我泰勒展开这样一个复合函数时,额外的替换使输出不可读。有人知道怎么做吗?当然欢迎任何其他解决方案。替换是使用
subs
完成的。如果未对某项内容进行评估,可以使用doit
方法强制执行
>>> diff(f(u(t),t),t).subs(u(t),U)
Derivative(U,t)∗Subs(Derivative(f(xi1,t),xi1),(xi1,),(U,))+Derivative(f(U,t),t)
>>> _.doit()
Derivative(f(U,t),t)
检查教程!它很好地表达了所有这些想法