[英]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.