公式根:参数未简化



我正在使用Python与Sympy。

我需要解下面的方程,找到四个根(是未知的):

deter= 0.6*omega**4*cos(omega*t)**2 - 229.0*omega**2*cos(omega*t)**2 + 5880.0*cos(omega*t)**2

我尝试使用solve:

eqcarr=solve(deter,omega,exclude=[t])

我得到这样的输出:

[-18.8143990830350, -5.26165884593044, 5.26165884593044, 18.8143990830350, 1.5707963267949/t, 4.71238898038469/t]

我只需要前4个值,不需要带t系数的值。我期望cos(*t)**2在解中被化简,但这没有发生

根据文档solve将不求解任何在exclude中传递的自由符号。

"排除=[](默认)"不要试图解出exclude中的任何自由符号;如果给出了表达式,其中的自由符号就会给出表达式自动提取

不是用来过滤溶液的

你可以这样解决你的问题:

In [10]: from sympy import *
In [11]: from sympy.abc import omega, t
In [12]: deter= 0.6*omega**4*cos(omega*t)**2 - 229.0*omega**2*cos(omega*t)**2 + 5880.0*cos(omega*t)**2
In [13]: eqcarr=solve(deter,omega,exclude=[t])
In [14]: filtered = [i for i in eqcarr if not i.has(t)]
In [15]: filtered
Out[15]: [-18.8143990830350, -5.26165884593044, 5.26165884593044, 18.8143990830350]

最新更新