On Fri, Jun 14, 2013 at 6:59 PM, Kumar Appaiah <[email protected]>wrote:
> Dear Numpy Users, > > I am trying to find out a way by which I can easily generate the n-th > order "special" polynomial, where "special" could refer to Hermite, > Chebyshev etc. Numpy 1.7 introduces several methods for such > polynomials, but I couldn't find a convenience function that gives me > a polynomial directly based on degree. For instance, I'd like: > > hermite(3) to result in array([ 0., -12., 0., 8.]) > hermite(6) to result in array([-120., 0., 720., 0., -480., 0., > 64.]) > and so on. > Generally that is a bad idea, polynomials tend to be numerically unstable and you lose all the virtue of the Hermite basis. However, you can do In [1]: from numpy.polynomial import Polynomial, Hermite In [2]: p = Hermite.basis(5) In [3]: p.convert(kind=Polynomial) Out[3]: Polynomial([ 0., 120., 0., -160., 0., 32.], [-1., 1.], [-1., 1.]) In [4]: Polynomial.cast(p) Out[4]: Polynomial([ 0., 120., 0., -160., 0., 32.], [-1., 1.], [-1., 1.]) In [5]: from numpy.polynomial import Chebyshev In [6]: Chebyshev.cast(p) Out[6]: Chebyshev([ 0., 20., 0., -30., 0., 2.], [-1., 1.], [-1., 1.]) Hmm, it should be possible to make the constructor take polynomials of different kinds since they all derive from PolyBase and can be detected. That could replace the cast method in a nice way. > The quickest way I could come up with for this is: > > def hermite(n): > if n <= 0: > return numpy.array([1.0]) > coeff_polynomial = [0.0] * n > coeff_polynomial.extend([1]) > return numpy.polynomial.hermite.herm2poly(coeff_polynomial) > > Now, if I am missing something, please let me know. If you think this > is a useful feature, I volunteer to patch all the polynomial modules > to generate such polynomials, if you could tell me appropriate > function names for such convenience functions. > Chuck
_______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
