如何在Python中创建类似函数的多项式表达式?

时间:2018-01-12 13:55:15

标签: python numerical polynomials

我想在Python中编写一个程序,用户可以定义多项式和系数(a,b,c)的deegre。当程序使用这些数据创建一个多项式表达式时,我想像函数一样使用它,因为我需要将它用于其他操作。我怎么才能得到它?例如,当我有多项式= x ^ n + a ^ n-1 + b ^ n-2 + c ^ -3时,我想在多项式(x)中使用它来计算值。

现在创建多项式方法看起来:

def polynomial(n,a,b,c):
    return a*x**n+b*x**3-c*x

2 个答案:

答案 0 :(得分:1)

class Polynomial:

    def __init__(self, coeficents, degrees=None):
        if degrees = None:
            self.degree = list(reversed(range(len(coeficents))))
        else:
            self.degree = degrees
        self.coeficents = coeficents

    def __call__(self, x):
        print(self.coeficents)
        print(self.degree)
        return sum([self.coeficents[i]*x**self.degree[i] for i in range(len(self.coeficents))])



p = Polynomial([1,2,4],[10,2,0])
print(p(2))

这将计算x^10 + 2x^2 + 4处的多项式x = 2。应该非常清楚如何使用您的示例。

答案 1 :(得分:-1)

最好的策略是不要传入n,但是你需要传入x。您应该将系数作为列表传递。您不需要传入n,因为它是根据列表的长度计算的。

  def poly(coefs, x):
      result=0
      N=len(coefs)
      n=0
      while N-n>0:
        result+=coefs[n]*(x**(N-n-1))
        n+=1
      return result

因此,如果你想计算,例如x ^ 2 + 3x -5,其中x = 5,你可以使用这一行:

print(poly([1,3,-5], 5))