Python 为什么log(xy)=log(x)和#x202F+ ;日志(y)在SymPy中不起作用?
为什么不在SymPy工作 我试过这个:Python 为什么log(xy)=log(x)和#x202F+ ;日志(y)在SymPy中不起作用?,python,sympy,Python,Sympy,为什么不在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] 对数(xy)=对数(x)+对数(y)并不总是保持不变。更具体地说,如果x和y都为负值或在复数域中,这可能会导致
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]
对数(xy)=对数(x)+对数(y)并不总是保持不变。更具体地说,如果x和y都为负值或在复数域中,这可能会导致问题。您给出的Wolfram Alpha链接还声明“假设x和y为正的替代形式”
要在SymPy中查看此关系,必须将符号x
和y
标记为正,例如:
from sympy import symbols,log
x,y = symbols("x,y",positive=True)
expr = log(x*y)
expr.expand()
或者(如所暗示的),您可以使用强制
提示,让SymPy假设一切都是最大良性的:
from sympy import log
from sympy.abc import x,y
expr = log(x*y)
expr.expand(force=True)