New in version 1.4.0.

# Chebyshev Series (`numpy.polynomial.chebyshev`)

This module provides a number of objects (mostly functions) useful for dealing with Chebyshev series, including a `Chebyshev` class that encapsulates the usual arithmetic operations. (General information on how this module represents and works with such polynomials is in the docstring for its “parent” sub-package, `numpy.polynomial`).

## Classes

`Chebyshev`(coef[, domain, window, symbol]) | A Chebyshev series class.

## Constants

`chebdomain` | An array object represents a multidimensional, homogeneous array of fixed-size items.
`chebzero` | An array object represents a multidimensional, homogeneous array of fixed-size items.
`chebone` | An array object represents a multidimensional, homogeneous array of fixed-size items.
`chebx` | An array object represents a multidimensional, homogeneous array of fixed-size items.

## Arithmetic

`chebadd`(c1, c2) | Add one Chebyshev series to another.
`chebsub`(c1, c2) | Subtract one Chebyshev series from another.
`chebmulx`(c) | Multiply a Chebyshev series by x.
`chebmul`(c1, c2) | Multiply one Chebyshev series by another.
`chebdiv`(c1, c2) | Divide one Chebyshev series by another.
`chebpow`(c, pow[, maxpower]) | Raise a Chebyshev series to a power.
`chebval`(x, c[, tensor]) | Evaluate a Chebyshev series at points x.
`chebval2d`(x, y, c) | Evaluate a 2-D Chebyshev series at points (x, y).
`chebval3d`(x, y, z, c) | Evaluate a 3-D Chebyshev series at points (x, y, z).
`chebgrid2d`(x, y, c) | Evaluate a 2-D Chebyshev series on the Cartesian product of x and y.
`chebgrid3d`(x, y, z, c) | Evaluate a 3-D Chebyshev series on the Cartesian product of x, y, and z.

## Calculus

`chebder`(c[, m, scl, axis]) | Differentiate a Chebyshev series.
`chebint`(c[, m, k, lbnd, scl, axis]) | Integrate a Chebyshev series.

## Misc Functions

`chebfromroots`(roots) | Generate a Chebyshev series with given roots.
`chebroots`(c) | Compute the roots of a Chebyshev series.
`chebvander`(x, deg) | Pseudo-Vandermonde matrix of given degree.
`chebvander2d`(x, y, deg) | Pseudo-Vandermonde matrix of given degrees.
`chebvander3d`(x, y, z, deg) | Pseudo-Vandermonde matrix of given degrees.
`chebgauss`(deg) | Gauss-Chebyshev quadrature.
`chebweight`(x) | The weight function of the Chebyshev polynomials.
`chebcompanion`(c) | Return the scaled companion matrix of c.
`chebfit`(x, y, deg[, rcond, full, w]) | Least squares fit of Chebyshev series to data.
`chebpts1`(npts) | Chebyshev points of the first kind.
`chebpts2`(npts) | Chebyshev points of the second kind.
`chebtrim`(c[, tol]) | Remove "small" "trailing" coefficients from a polynomial.
`chebline`(off, scl) | Chebyshev series whose graph is a straight line.
`cheb2poly`(c) | Convert a Chebyshev series to a polynomial.
`poly2cheb`(pol) | Convert a polynomial to a Chebyshev series.
`chebinterpolate`(func, deg[, args]) | Interpolate a function at the Chebyshev points of the first kind.

## See also

`numpy.polynomial`

## Notes

The implementations of multiplication, division, integration, and differentiation use the algebraic identities [1]:

\[\begin{split}T_n(x) = \frac{z^n + z^{-n}}{2} \\ z\frac{dx}{dz} = \frac{z - z^{-1}}{2}.\end{split}\]

where

\[x = \frac{z + z^{-1}}{2}.\]

These identities allow a Chebyshev series to be expressed as a finite, symmetric Laurent series. In this module, this sort of Laurent series is referred to as a “z-series.”

## References

[1]

A. T. Benjamin, et al., “Combinatorial Trigonometry with Chebyshev Polynomials,” Journal of Statistical Planning and Inference 14, 2008 (https://web.archive.org/web/20080221202153/https://www.math.hmc.edu/~benjamin/papers/CombTrig.pdf, pg. 4)