2016-02-27 46 views
-2

我开始学习Python,我一直提到“HP Langtangen用Python进行科学编程的入门书”。我刚刚开始了关于函数的主题,并且我已经分配了一个任务来开发一种按产品计算多项式的函数。确切的问题是使用Python计算产品的多项式

给定n + 1个根r0,r1,...。 。 。 ,度n + 1的多项式P(X)的RN,P(X) 可以通过

p(x) = (x - r0)(x - r1) · · · (x - rn-1)(x - rn) 

计算写功能的聚(X,根),其采用x和 的列表根根作为参数和返回p(x)

有什么办法可以解决这个问题,而不使用Sympy

回答

0

你只需要迭代。

def poly(x, roots): 
    poly = 1 
    for r in roots: 
     poly *= (x - r) 

    return poly 

# EXAMPLE 
x = 1 
roots = [2, 5, 7] 
print (poly(x, roots)) 
+0

谢谢你的输入mtk99。但它会在x = 1时评估函数。期望的输出是多项式方程,根据输入必须是(x-2)(x-5)(x-7)。 – abe25

+0

最后一行只是例子!你问的只是功能poly(x,根) – purpletentacle

+0

噢。我明白最后一行是一个例子。但是当我运行函数poly(x,[2,5,7])时,它给我 TypeError:不支持的操作数类型为 - :'function'和'int' – abe25