计算多项式

时间:2018-05-16 16:23:46

标签: python function increment polynomials

我想计算x值的多项式。我试着写 一个函数,它将整数和整数x的数组作为参数 该函数将返回x中多项式的值。

def pol(L, x):
    P = None
    for i in L:
        P = L[0] * (x ** 0) + L[1] * (x ** 1) + L[2] * (x ** 2)
    return P

L = [0, 2, 4]
x = 3
print(pol(L, x))

我也试过

def pol(L, x):
    P = None
    for i in L:
        j = 0
        P = sum(i * (x ** j))
        j += 0
    return P

L = [0, 2, 4]
x = 3
print(pol(L, x))

此示例将返回42。 我不知道如何增加。 感谢

1 个答案:

答案 0 :(得分:2)

根据您的尝试,获得多项式的一种简单方法如下:

def poly(p, x):
    val = 0
    for i, pp in enumerate(p):
        val += pp * x**i

    return val

但是,有更快,更优雅的方法来做到这一点。我强烈建议您使用numpy.polyval()来提高效率。

请注意,对于numpy实施,p[0]是最高阶多项式,而对于此处显示的示例,p[0]是最低阶数!

p = [0, 2, 4]
x = 3

poly(p, x)
>> 42

import numpy as np
poly(p, x) == np.polyval(p[::-1], x)
>> True