python - 如何创建处理多项式的函数?

标签 python polynomial-math evaluate multiplication

我有这些关于多项式的问题,我在这上面花了大约 4 个小时,但我就是无法理解。我是 Python 和编程的新手,我试过在纸上解决它,但我就是不知道。

  1. 编写并测试一个 Python 函数 negate(p),该函数对由其系数 p 列表表示的多项式取反并返回一个新的多项式(表示为一个列表)。换句话说,编写一个使数字列表为负数的函数。

  2. 编写一个 Python 函数 eval_polynomial(p, x) 返回 P(x) 的值,其中 P 是由其系数 p 列表表示的多项式。例如,eval_polynomial([1, 0, 3], 2) 应返回 1*2^2 + 0*2 + 3 = 7。使用单个 while 循环。

    <
  3. 编写并测试一个函数multiply_by_one_term(p, a, k),它将给定多项式p(由系数列表表示)乘以ax^k 并将产品作为新列表返回。

如果有人能帮助我,我将不胜感激。

最佳答案

我建议使用 numpy.poly1dnumpy.polymul,其中系数是 a0*x2 + a1*x + a2

例如,表示3*x**2 + 2*x + 1:

p1 = numpy.poly1d([3,2,1])

对于生成的 poly1d 对象,您可以使用 */ 等进行操作...:

print(p1*p1)
#   4      3      2
#9 x + 12 x + 10 x + 4 x + 1

如果您想构建自己的函数,假设 p 按顺序包含系数:a0 + a1*x + a2*x**2 + ... :

def eval_polynomial(p,x):
    return sum((a*x**i for i,a in enumerate(p)))

def multiply_by_one_term(p, a, k):
    return [0]*k + [a*i for i in p]

注意事项

我的评估函数使用指数函数,这可以通过 Horner 规则避免,如另一个答案中所发布的那样,该答案在 Numpy 的 polyval 函数中可用

关于python - 如何创建处理多项式的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18093509/

相关文章:

bash:如何评估 PS1、PS2、...?

javascript - 如何评估for循环中的隐式(未命名)变量?

Scheme 帮助——如何调用一个函数

python - 在python statsmodels中,找到回归的标准误差

python - TensorFlow 1.14.0 不使用 GPU

python - query.connector 的值如何设置在 Django 代码中的 Q 对象中?

python - 如何调用函数: def(dot) and def(dice) from def(main)?

c++ - gnu 科学图书馆 (GSL) 三次多项式结果差异

python - 确定 a、b 中是否存在数字 n1、n2 和 c 中的 n3,使得 n1 + n2 = n3 [ftt,多项式乘法]

java - 用 Java 求解多项式方程