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?
发布于 2022-08-10 22:05:19
您可以使用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,但这是预期的,因为反导数只有唯一的定义,直到一个加性常数。
https://stackoverflow.com/questions/73312977
复制相似问题