繁体   English   中英

使用python评估多项式

[英]Evaluating polynomial using python

我正在尝试创建自己的多项式类。 我想做一个可以评估给出x的多项式的函数。

到目前为止,我已经知道了,但是它给我的答案是不正确的,我不知道为什么? 使用列表输入多项式。 例如[2,0,1,-7,13]将是2x ^ 4 + x ^ 2-7x + 13

class Polynomial:

def __init__(self, coefficients):
    self.coeffs=coefficients

def evaluate(self, x):
    sum = 0
    for i in range(len(self.coeffs)-1,0,-1):
        sum+=self.coeffs[i]*(x**i)
    return sum

您使用的i值对索引和指数均不正确。 您实际上是在评估逆系数系数多项式,因此对Polynomial([2,3,4])评估结果实际上是对Polynomial([4,3,2])的正确值。

这是我定义evaluate

def evaluate(self, x):
    return sum(coef * x**exp for exp, coef in enumerate(reversed(self.coeffs)))

请注意,如果希望Polynomial对象可调用(如注释示例中的p1(4)所示),则应重命名evaluate函数__call__

预期该代码的缩进块存在错误。 要重现错误,请确保包括缩进块:

class Polynomial:
    def __init__(self, coefficients):
        self.coeffs=coefficients

    def _call_(self, x):
    return sum(coef * x**exp for exp, coef in enumerate(reversed(self.coeffs)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM