繁体   English   中英

Numpy 的多项式

[英]Polynomials with Numpy

我正在尝试在 python 上编写伯恩斯坦多项式,但我对 poly1d function 有问题。 在 Bernstein function 中,变量为t ,但在 poly1d function 中,默认变量为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, 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, 2], variable='t'))
{'coeffs': array([1, 2]), '_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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM