python - 计算多项式

标签 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。 我不知道如何增加。 谢谢

最佳答案

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

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

关于python - 计算多项式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50375769/

相关文章:

python - 将函数应用于 pandas 数据框中的所有其他列

python - 使用 inspect.getmembers

c++ - 传递多维数组给出和错误

javascript - 如何使用用户定义的值来增加 Javascript 中的值

Java - 在发送到方法之前递增变量

python - 仅向 matplotlib 中图例的一个组件添加背景颜色

oracle - PLS-00201 - 必须声明标识符

C++变量可以在构造函数中访问,但不能在函数中访问

Java自增逻辑问题(条件语句中自增)

python - Scrapy - 抓取多个项目