多项式变量的Numpy变换

2024-06-14 05:54:41 发布

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

我正在学习如何使用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函数来实现这一点。在纽比有可能吗?在


Tags: numpyisnp数组nowprintscilab系数
2条回答

在SymPy中,这很简单:

from sympy.abc import x

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

导致:

^{pr2}$

结果表达式is not a polynomial,和{a2}在这里可能是一个更好的选择。在

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

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

然后使用numpy中的多项式函数,用变量1/x代替{}。在

相关问题 更多 >