【问题标题】:Can SymPy recognize the derivative of a product?SymPy 可以识别产品的衍生物吗?
【发布时间】:2018-12-08 11:34:50
【问题描述】:

在下面的程序中,SymPy 似乎不理解被积函数是乘积的导数。有没有办法让它返回u*v

import sympy
x = sympy.symbols('x', real=True)
u = sympy.Function('u')
v = sympy.Function('v')
print((u(x) * v(x)).diff(x).integrate(x))

打印:

> Integral(u(x)*Derivative(v(x), x) + v(x)*Derivative(u(x), x), x)

【问题讨论】:

  • 我尝试了(u*v).diff(x).integrate(x) 并得到了相同的输出。
  • 答案是否定的。
  • @user6655984 如果无法使用内置 SymPy 函数,我也有兴趣扩展 integrate 函数以使其成为可能...

标签: sympy symbolic-math derivative calculus


【解决方案1】:

sympy.Derivative(u(x)*v(x), x).integrate(x)

注意(u(x)*v(x)).integrate(x).diff(x) 被简化为u(x)*v(x)

【讨论】:

  • 谢谢,但sympy.Derivative(u(x)*v(x), x) 没有扩展导数,所以这不是我真正想要的......
  • Derivative(u(x)*v(x), x).doit() 将派生扩展为u(x)*Derivative(v(x), x) + v(x)*Derivative(u(x), x)
【解决方案2】:

这还没有实现。 this SymPy issue 上的评论显示了一种使用 dsolve 计算它的方法。

In [4]: solve(dsolve(diff(f(x)*g(x), x) - h(x).diff(x), f(x)), h(x))
Out[4]: [-C₁ + f(x)⋅g(x)]

【讨论】:

    猜你喜欢
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 2021-02-21
    相关资源
    最近更新 更多