Python Sympy不会用符号除以其平方根来简化表达式
我在简化方面有问题。请参阅下面的代码。 当我用某物替换Python Sympy不会用符号除以其平方根来简化表达式,python,sympy,symbolic-math,Python,Sympy,Symbolic Math,我在简化方面有问题。请参阅下面的代码。 当我用某物替换sqrt下的表达式时,它变得“牢不可破”。例如,在代码的最后一行中,我将表达式乘以f0,并简化了结果f0和分母中的sqrt(f0**2)没有简化,即使f0声明为非负。我做错了什么?如何替换表达式而不产生这种效果 代码(): 当f0为0时,取消f0/sqrt(f0**2)是不合法的。为确保允许此取消,请将f0声明为正,而不仅仅是非负 此外,从sympy.abc导入pi,使pi成为一个没有特定含义的通用符号;特别是,目前还不知道它是积极的。Sym
sqrt
下的表达式时,它变得“牢不可破”。例如,在代码的最后一行中,我将表达式乘以f0
,并简化了结果<分子中的code>f0和分母中的sqrt(f0**2)
没有简化,即使f0
声明为非负
。我做错了什么?如何替换表达式而不产生这种效果
代码():
当f0为0时,取消f0/sqrt(f0**2)
是不合法的。为确保允许此取消,请将f0声明为正,而不仅仅是非负
此外,从sympy.abc导入pi
,使pi成为一个没有特定含义的通用符号;特别是,目前还不知道它是积极的。Symphy已经内置了pi
(数学常数),并且知道它是一个正数。因此,从sympy.abc
中删除导入可以改进简化
from sympy import *
L0, Csum0, f0 = symbols("L0 C_{{\\Sigma}0} f0", positive=True)
equation = sqrt(L0)
substitute = solve(Eq(1/(2*pi*sqrt(L0)*sqrt(Csum0)), f0), L0, dict=1)[0]
equation = equation.subs(substitute)
simplify(equation*f0)
返回
1/(2*pi*sqrt(C_{{\Sigma}0}))
1/(2*pi*sqrt(C_{{\Sigma}0}))