Numpy 多项式

问题描述

我正在尝试在 python 上编写 Bernstein 多项式,但是我在使用 poly1d 函数时遇到了问题。在 Bernstein 函数中,变量是 t,但在 poly1d 函数中,默认变量是 x。在以下代码中,我将变量称为 t

1: print((nCr(2,0)*((np.poly1d([1,0],variable="t"))**0)*((np.poly1d([-1,1],variable="t"))**(2-0))))

2: print(np.poly1d([-1,variable="t"))

但我得到了这样的输出:

1: 1 x^2 - 2 x + 1
 
2: -1 t + 1

我如何解决第一个问题?

解决方法

np.poly1d() 提供一个 variable 参数仅用于打印目的。它实际上并没有在操作中使用它。

例如:

>>> vars(np.poly1d([1,2],variable='t'))
{'coeffs': array([1,2]),'_variable': 't'}

# but:
>>> vars(1 * np.poly1d([1,'_variable': 'x'}

因此,我建议在最后一步添加 variable 位:

pol = np.poly1d((nCr(2,0) * ((np.poly1d([1,0]))**0)*((np.poly1d([-1,1]))**(2-0))),variable='t')
print(pol)
# out:
   2
1 t - 2 t + 1

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...