如何在Sympy中做功能组合?

use*_*607 3 python sympy computer-algebra-systems

我想做类似的事情h = f(g(x))并且能够区分h,比如h.diff(x).对于这样的一个函数h = cos(x)实际上是可能的,并且文档清楚地说明了.

但对于功能组合,它并不是那么清楚.如果您已经这样做了,请告诉我一个示例或将我链接到相关文档.

(如果Sympy不能这样做,你知道其他任何包这样做,即使它是非python)

谢谢.

max*_*moo 8

看起来函数组合的工作方式与您期望的一样:

import sympy
h = sympy.cos('x')
g = sympy.sin(h)
g
Out[245]: sin(cos(x))
Run Code Online (Sandbox Code Playgroud)

或者如果你愿意的话

from sympy.abc import x,y
g = sympy.sin('y')
f = g.subs({'y':h})
Run Code Online (Sandbox Code Playgroud)

然后你可以调用diff来获得你的衍生物.

g.diff()
Out[246]: -sin(x)*cos(cos(x))
Run Code Online (Sandbox Code Playgroud)