在 Numpy 中转换多项式变量

Transforming polynomial variable in Numpy

我正在努力学习如何使用 Numpy。假设我有一个多项式的根。我用 coeff = np.polynomial.polynomial.polyfromroots(roots) 将多项式的系数作为数组获取。然后我用 print np.poly1d(coeff) 打印出多项式。让那个多项式是

x^2 +3x + 2

现在如何转换变量使得

x is now 2/x

即等式变为

(2/x)^2 + 6/x + 2

在 scilab 中,我可以使用 horner 函数来完成此操作。在 numpy 中有可能吗?

生成的表达式 is not a polynomial, and Sympy 在这里可能是更好的选择。

或者,您可以通过适当的数值因子缩放多项式的系数,

coeff *= np.power(factor, np.arange(len(coefs)-1, -1, -1))   # factor=2 here

然后使用 numpy 中的多项式函数,使用变量 1/x 而不是 x

在 SymPy 中,这很简单:

from sympy.abc import x

f = x**2 + 3*x + 2
g = f.subs({x:2/x})

导致:

print(g)
#2 + 6/x + 4/x**2