带Numpy的多项式

2024-06-16 10:46:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在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, 1], variable="t"))

但我得到了这样的结果:

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

我如何解决第一个问题


Tags: 函数代码npvariableprintncrbernsteinpoly1d
1条回答
网友
1楼 · 发布于 2024-06-16 10:46:57

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

相关问题 更多 >