Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Symphy方程解算器/Symphy的if条件非常慢_Python_List_Numpy_Sympy - Fatal编程技术网

Python 使用Symphy方程解算器/Symphy的if条件非常慢

Python 使用Symphy方程解算器/Symphy的if条件非常慢,python,list,numpy,sympy,Python,List,Numpy,Sympy,我想用以下参数来解这个方程: gamma = 0.1 F = 0.5 w = 0 A = symbols('A') a = 1 + w**4 -w**2 + 4*(gamma**2)*w**2 b = 1 - w**2 sol = solve(a*A**2 + (9/16)*A**6 + (3/2)*b*A**4 -F**2) list_A = [] for i in range(len(sol)): if(type( solutions[i] )==float ):

我想用以下参数来解这个方程:

gamma = 0.1
F = 0.5
w = 0
A = symbols('A')

a = 1 + w**4 -w**2 + 4*(gamma**2)*w**2
b = 1 - w**2

sol = solve(a*A**2 + (9/16)*A**6 + (3/2)*b*A**4 -F**2)

list_A = []
for i in range(len(sol)):
    if(type( solutions[i] )==float ):
        print(sol[i])
        list_A = sol[i]
然而,正如所设想的,我得到了一些真实和复杂的值,我想删除复杂的值,只保留浮动。但是我实现的这个条件是无效的,因为sol[I]的类型对于复数是
sympy.core.add.add
,对于浮点数是
sympy.core.numbers.Float
。 我的问题是,如何修改我的条件,使其仅用于获取浮点值? 另外,有没有办法加快速度?如果我把它放在一个循环中,得到很多ω值,速度会非常慢。
这是我第一次使用Symphy

当它能够验证与符号假设相关的解决方案时,它将;因此,如果你告诉SymPy,
A
是真实的,那么——如果它能验证解决方案——它只会显示真实的解决方案:

>>> A = symbols('A',real=True)
>>> sol = solve(a*A**2 + (9/16)*A**6 + (3/2)*b*A**4 -F**2)
>>> sol
[-0.437286658108243, 0.437286658108243]