python - 使用 Numpy polyadd() 添加两个多项式

标签 python numpy math

我正在尝试使用 Numpy 的 polyadd() 将两个多项式相加,但我得到了错误的结果

a = [60, 51, 64, 38,  9, 79, 96, 81, 11]
e = [1,0,1,0,1,0,1]
b = np.polyadd(a, e)
b
array([60, 51, 65, 38, 10, 79, 97, 81, 12])

有没有简单的方法可以得到正确的结果 (61, 51, 65, 38, 10, 79, 97, 81, 11)?

enter image description here

Numpy 从低到高处理系数,对吗?所以这里应该是 (60+51x+64x^2+38x^3+9x^4+79x^5+96x^6+81x^7+11x^8)+(1+x^2+x^4+ x^6) = 61+51x+65x^2+38x^3+10x^4+79x^5+97x^6+81x^7+11x^8

最佳答案

您正在查看不同功能的文档。 np.polynomial.polynomial.polyadd从左到右从最低到最高使用,而np.polyadd排名从高到低。

>>> a = [60, 51, 64, 38,  9, 79, 96, 81, 11]
>>> e = [1,0,1,0,1,0,1]
>>> np.polyadd(a, e)
array([60, 51, 65, 38, 10, 79, 97, 81, 12])
>>> np.polynomial.polynomial.polyadd(a,e)
array([61., 51., 65., 38., 10., 79., 97., 81., 11.])

您要求的结果可以使用np.polyadd 获得,方法是反转列表,然后按照@Mad Physicist 的建议反转获得的结果。 :

>>> np.polyadd(a[::-1], e[::-1])[::-1]
array([61, 51, 65, 38, 10, 79, 97, 81, 11])

关于python - 使用 Numpy polyadd() 添加两个多项式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60398771/

相关文章:

python - python3.5中Kmeans的导入错误

numpy - 以高值为中心的对数正态随机数

python - 从字典列表中优化平均计算

android - android中textview上的数学公式

c++ - 需要一种方法让这段代码运行得更快

math - 了解离散傅立叶变换

python - 如何使用Paramiko exec_command获取每个依赖的命令执行输出

python - 将许多按钮绑定(bind)到一个函数,将每个按钮的名称作为参数传递

python - 如何防止 Numpy/SciPy 高斯模糊将图像转换为灰度?

python - Pandas:条件组特定计算