在 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
我正在努力学习如何使用 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