On Sat, Oct 9, 2010 at 7:47 PM, <[email protected]> wrote: > I'm trying to see whether I can do this without reading the full manual. > > Is it intended that fromroots normalizes the highest order term > instead of the lowest? > > > >>> import numpy.polynomial as poly > > >>> p = poly.Polynomial([1, -1.88494037, 0.0178126 ]) > >>> p > Polynomial([ 1. , -1.88494037, 0.0178126 ], [-1., 1.]) > >>> pr = p.roots() > >>> pr > array([ 0.53320748, 105.28741219]) > >>> poly.Polynomial.fromroots(pr) > Polynomial([ 56.14003571, -105.82061967, 1. ], [-1., 1.]) > >>> > > renormalizing > > >>> p2 = poly.Polynomial.fromroots(pr) > >>> p2/p2.coef[0] > Polynomial([ 1. , -1.88494037, 0.0178126 ], [-1., 1.]) > > > this is, I think what I want to do, invert roots that are > inside/outside the unit circle (whatever that means > > >>> pr[np.abs(pr)<1] = 1./pr[np.abs(pr)<1] > >>> p3 = poly.Polynomial.fromroots(pr) > >>> p3/p3.coef[0] > Polynomial([ 1. , -0.54270529, 0.0050643 ], [-1., 1.]) > > Wrong function ;) You defined the polynomial by its coefficients. What you want to do is
In [1]: import numpy.polynomial as poly In [2]: p = poly.Polynomial.fromroots([1, -1.88494037, 0.0178126 ]) In [3]: p Out[3]: Polynomial([ 0.03357569, -1.90070346, 0.86712777, 1. ], [-1., 1.]) In [4]: p.roots() Out[4]: array([-1.88494037, 0.0178126 , 1. ]) Chuck
_______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
