我想摆脱在区分用户定义的复合函数时同意做出的额外替换。代码是
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替换u(t)然后去掉额外的替换\ xi_1
⎞│
⎟│
⎠│ξ₁=U
为了澄清,我想要这个输出:
d d ⎛d ⎞
──(f(U, t)) + ──(U)⋅⎜──(f(U, t))⎟
dt dt ⎝dU ⎠
原因是;当我泰勒扩展这样的复合函数时,额外的替换会使输出不可读。有谁知道如何做到这一点?任何其他解决方案当然都受到欢迎。
答案 0 :(得分:1)
用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)
查看教程!它很好地呈现了所有这些想法。