用Python求解一个五阶多项式
我认为从标题上可以很清楚地看出我在努力完成什么。那么,让我们继续代码:用Python求解一个五阶多项式,python,syntax,compiler-errors,syntax-error,Python,Syntax,Compiler Errors,Syntax Error,我认为从标题上可以很清楚地看出我在努力完成什么。那么,让我们继续代码: import math import numpy as np import scipy #from scipy import scipy.optimize.fsolve as sci_solve x0 = -5 def function(x): x**5 + x**4 + x**3 + x**2 + x + 1 #print sci_solve(function, x0) print scipy.
import math
import numpy as np
import scipy
#from scipy import scipy.optimize.fsolve as sci_solve
x0 = -5
def function(x):
x**5 + x**4 + x**3 + x**2 + x + 1
#print sci_solve(function, x0)
print scipy.optimize.fsolve(function, x0)
好的,当我运行这个代码时,我得到[-5.]。它什么时候只是打印了我的初始值,而不是这个方程的根?另外,当我运行代码时,在包含来自scipy import scipy.optimize.fsolve的代码行之前没有#作为sci#u solve和print sci#u solve(函数,x0),它给了我一个语法错误
我做错了什么
正如hcwhsa指出的,我忽略了向读者介绍我正在使用的python版本,对此我深表歉意。我使用的是2.7版在这个问题之前,我从来没有听说过
scipy
模块(谢谢),但是从中给出的示例代码来看,似乎需要在def函数(x)行后面的多项式前面加上return
语句:
在这个问题之前,我从来没有听说过scipy
模块(谢谢),但是从中给出的示例代码来看,您似乎需要在def函数(x):
行后面给出的多项式前面放一个return
语句:
from scipy import *
x0 = -5
p = poly1d([1, 1, 1, 1, 1, 1])
# evaluate for x = x0
p(x0)
# get roots
roots(p)
这将提供所有根,包括复杂的根。如果只需要实根,可以迭代根(p)(它是一个数组)并检查每个项的imag
属性是否为0.0。一种方法:
from scipy import *
x0 = -5
p = poly1d([1, 1, 1, 1, 1, 1])
# evaluate for x = x0
p(x0)
# get roots
roots(p)
这将提供所有根,包括复杂的根。如果只需要实根,可以迭代根(p)(它是一个数组)并检查每个项的
imag
属性是否为0.0。好的,这有所帮助。它没有返回x0值,而是返回[-1.]。然而,我无法想象这是方程0=x^5+x^4+x^3+x^2+x+1的唯一根,请看这个-1是唯一的(真正的)解决方案。哦,的确如此。谢谢。好吧,这有点帮助。它没有返回x0值,而是返回[-1.]。然而,我无法想象这是方程0=x^5+x^4+x^3+x^2+x+1的唯一根,请看这个-1是唯一的(真正的)解决方案。哦,的确如此。非常感谢。