为什么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]
Run Code Online (Sandbox Code Playgroud)
log(xy)= log(x)+ log(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()
Run Code Online (Sandbox Code Playgroud)
或者(如user6655984所示),您可以使用force提示让SymPy假设一切都是最良性的:
from sympy import log
from sympy.abc import x,y
expr = log(x*y)
expr.expand(force=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |