在SageMath 9.1中控制差异化的“水平”

问题描述

Sage似乎想使用链式规则尽可能评估衍生产品。一个简单的例子是:

var('theta')
f = function('f')(theta)
g = function('g')(theta)

h = f*g
diff(h,theta)

显示

g(theta)*diff(f(theta),theta) + f(theta)*diff(g(theta),theta)

我的问题是,有没有办法控制Sage将衍生产品走多远?例如,在上面的示例中,我将如何显示Sage:

diff(f(theta)*g(theta))

我正在研究流体力学中的一些相当深入的推导,并且不能像上面讨论的那样完全评估导数将对此有所帮助。提前致谢。希望对此有所帮助。

解决方法

这将被称为“持有”衍生品。

已经考虑将这种可能性添加到 Sage。

跟踪进度:

并且票证甚至链接到带有实现此代码的分支。

虽然这方面的进展停滞不前,并且分支还没有合并, 你可以使用分支的代码。