如何避免复数并得到浮点数?

时间:2019-02-06 21:40:13

标签: python

这是我们的第一个作业,我们要解决一个问题。我们尝试为曲线草图创建代码,但是我们的问题是必须将一些结果放入另一个函数中才能实现目标。我们只是获得用于结果的复数,但需要浮点数。

我们如何避免首先得到复数?

from sympy import *

function = input("function =")  #x^5+x^4+x^3+x^2+x+1 for example

n1 = solve(function,x)

for n1 in solve(function,x): 
   print("n1 :",(N(n1)))

2 个答案:

答案 0 :(得分:0)

您可以只检查结果是否真实:

from sympy import *

x = symbol.Symbol("x")

function = input("function =")  #x^5+x^4+x^3+x^2+x+1 for example

n1 = solve(function,x)

for n1 in solve(function,x): 
    if n1.is_real:
        print("n1 :",(N(n1)))

其他根仍然存在,但是现在您只能在真实空间中看到它们。

答案 1 :(得分:0)

您的示例(x**5 + x**4 + x**3 + x**2 + x + 1)是5阶多项式,因此最多可以有5个根。在这种情况下,there is only one real root, and the rest are complex

因此输出正是您所期望的

n1 : -1.00000000000000
n1 : -0.5 - 0.866025403784439*I
n1 : -0.5 + 0.866025403784439*I
n1 : 0.5 - 0.866025403784439*I
n1 : 0.5 + 0.866025403784439*I
相关问题