转换积分(ln(x-4))输出

  • 本文关键字:输出 x-4 ln 转换 sympy
  • 更新时间 :
  • 英文 :

from sympy import *
from sympy.abc import x
integrate(ln(x-4))

输出:

𝑥log(𝑥−4)−𝑥−4log(𝑥−4)

有没有办法将其转换为(x-4)*ln(x-4) - (x-4)(x-4)*ln(x-4) + 4 -x

您可以使用transform:手动替换

In [2]: I = Integral(ln(x - 4), x)
In [3]: I
Out[3]: 
⌠              
⎮ log(x - 4) dx
⌡              
In [4]: I.transform(x - 4, y)
Out[4]: 
⌠          
⎮ log(y) dy
⌡          
In [5]: I.transform(x - 4, y).doit()
Out[5]: y⋅log(y) - y
In [6]: I.transform(x - 4, y).doit().subs(y, x - 4)
Out[6]: -x + (x - 4)⋅log(x - 4) + 4

或者,您也可以使用collect:

In [7]: integrate(ln(x - 4))
Out[7]: x⋅log(x - 4) - x - 4⋅log(x - 4)
In [8]: integrate(ln(x - 4)).collect(log(x - 4))
Out[8]: -x + (x - 4)⋅log(x - 4)

这种情况错过了4,但这是意料之中的事,因为反导数只在加法常数之前唯一定义。

最新更新