我想摆脱 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 dt ⎝dξ₁ ⎠│ξ₁=u(t)
我猜它这样做是因为你无法区分 wrt u(t),所以这没关系。我接下来要做的是将 u(t) 替换为另一个变量,比如 U,然后去掉额外的替换 \xi_1
⎞│
⎟│
⎠│ξ₁=U
为了澄清,我想要这个输出:
d d ⎛d ⎞
──(f(U, t)) + ──(U)⋅⎜──(f(U, t))⎟
dt dt ⎝dU ⎠
原因是; 当我泰勒展开这样的复合函数时,额外的替换使输出不可读。有谁知道如何做到这一点?当然欢迎任何其他解决方案。