为什么log(xy)=log(x)+ log(y)在SymPy中不起作用?

2024-05-13 10:11:56 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么log(xy) = log(x) + log(y)在SymPy中不起作用?你知道吗

我试过这个:

from sympy import *
var('x y')
print(simplify(log(x*y)))
print(expand(log(x*y)))
print(collect(log(x*y),x))
print(solve(log(x*y),x))
# log(x*y)
# log(x*y)
# log(x*y)
# [1/y]

Tags: fromimportlogvarsimplifyexpandcollectprint
1条回答
网友
1楼 · 发布于 2024-05-13 10:11:56

log(xy)=log(x)+log(y)并不总是保持不变。更具体地说,如果xy都是负的或在复域中,这可能会导致问题。你给出的Wolfram Alpha链接也表示“假设x和y为正的替代形式”

要在同形中看到这种关系,必须将符号xy标记为正,例如:

from sympy import symbols,log
x,y = symbols("x,y",positive=True)
expr = log(x*y)
expr.expand()

或者(正如user6655984所暗示的那样),您可以使用force提示让SymPy假设一切都是最大良性的:

from sympy import log
from sympy.abc import x,y
expr = log(x*y)
expr.expand(force=True)

相关问题 更多 >