Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Symphy打印区分用户定义的复合函数;如何切换替换_Python_Sympy - Fatal编程技术网

Python Symphy打印区分用户定义的复合函数;如何切换替换

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

我想去掉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)
我想这是因为你不能区分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)
检查教程!它很好地表达了所有这些想法