# [Numpy-discussion] Generating special polynomials (Chebyshev, Hermite etc.)

Kumar Appaiah a.kumar at alumni.iitm.ac.in
Sat Jun 15 00:29:11 EDT 2013

```On Fri, Jun 14, 2013 at 08:07:57PM -0600, Charles R Harris wrote:
>      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

This may be true, but I am not concerned with the numerical
instability in my current application. Nevertheless, I understand it
if you don't want to introduce such a function.

>    In : from numpy.polynomial import Polynomial, Hermite
>
>    In : p = Hermite.basis(5)
>
>    In : p.convert(kind=Polynomial)
>    Out: Polynomial([�� 0.,� 120.,��� 0., -160.,��� 0.,�� 32.], [-1.,� 1.],
>    [-1.,� 1.])
>
>    In : Polynomial.cast(p)
>    Out: Polynomial([�� 0.,� 120.,��� 0., -160.,��� 0.,�� 32.], [-1.,� 1.],
>    [-1.,� 1.])
>
>    In : from numpy.polynomial import Chebyshev
>
>    In : Chebyshev.cast(p)
>    Out: 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.

I now see that the polynomial structure is intended to be "rich", as
opposed to the naïve function that I proposed. In the least, though,
the documentation could reflect the example you gave me. I could send
a patch that adds an example for each of the polynomial types in the
documentation, much like yours, if that would be useful.

Thanks for the clarification.

Kumar
--
Kumar Appaiah

```