我正在努力学习如何使用Numpy。考虑我有多项式的根。我用
coeff = np.polynomial.polynomial.polyfromroots(roots)
将多项式的系数作为数组。然后我用
print np.poly1d(coeff)
打印出多项式。让多项式为
x ^ 2 + 3x + 2
现在我如何转换变量
x现在是2 / x
这就是等式变为
(2 / x)^ 2 + 6 / x + 2
在scilab中,我可以使用horner函数执行此操作。 numpy有可能吗?
答案 0 :(得分:1)
在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
答案 1 :(得分:0)
结果表达式is not a polynomial和Sympy可能是更好的选择。
或者,您可以通过适当的数值因子
来缩放多项式的系数coeff *= np.power(factor, np.arange(len(coefs)-1, -1, -1)) # factor=2 here
然后使用numpy中的多项式函数,变量1/x
代替x
。