# orthpoly::chebyshev1

The Chebyshev polynomials of the first kind

### Use only in the MuPAD Notebook Interface.

This functionality does not run in MATLAB.

## Syntax

```orthpoly::chebyshev1(`n`, `x`)
```

## Description

`orthpoly::chebyshev1(n,x)` computes the value of the n-th degree Chebyshev polynomial of the first kind at the point x.

These polynomials have integer coefficients.

Evaluation is fast and numerically stable for real floating point values x from the interval [- 1.0, 1.0]. See Example 2.

`orthpoly::chebyshev2` implements the Chebyshev polynomials of the second kind.

## Examples

### Example 1

Polynomial expressions are returned if identifiers or indexed identifiers are specified:

`orthpoly::chebyshev1(2, x)`

`orthpoly::chebyshev1(3, x[1])`

Using arithmetical expressions as input, the "values" of these polynomials are returned:

`orthpoly::chebyshev1(2, 3 + 2*I)`

`orthpoly::chebyshev1(3, exp(x[1]+2))`

"Arithmetical expressions" include numbers:

```orthpoly::chebyshev1(2, sqrt(2)), orthpoly::chebyshev1(3, 8 + I), orthpoly::chebyshev1(1000, 0.3)```

If the degree of the polynomial is a variable or expression, then `orthpoly::chebyshev1` returns itself symbolically:

`orthpoly::chebyshev1(n, x)`

### Example 2

If a floating-point value is desired, then a direct call such as

`orthpoly::chebyshev1(200, 0.3)`

is appropriate and yields a correct result. One should not evaluate the symbolic polynomial at a floating-point value, because this may be numerically unstable:

`T200 := orthpoly::chebyshev1(200, x):`
`DIGITS := 10: evalp(T200, x = 0.3)`

This result is caused by numerical round-off. Also with increased `DIGITS` only a few leading digits are correct:

`DIGITS := 20: evalp(T200, x = 0.3)`

`delete DIGITS, T200:`

## Parameters

 `n` A nonnegative integer or an arithmetical expression representing a nonnegative integer: the degree of the polynomial. `x` An indeterminate or an arithmetical expression. An indeterminate is either an identifier (of domain type `DOM_IDENT`) or an indexed identifier (of type `"_index"`).

## Return Values

The value of the Chebyshev polynomial at point `x` is returned as an arithmetical expression. If `n` is an arithmetical expression, then `orthpoly::chebyshev1` returns itself symbolically.

## Algorithms

The Chebyshev polynomials are given by T(n, x) = cos(nacos(x)) for real x ∈ [- 1, 1]. This representation is used by `orthpoly::chebyshev1` for floating-point values in this range.

These polynomials satisfy the recursion formula

with T(0, x) = 1 and T(1, x) = x.

They are orthogonal on the interval [- 1, 1] with respect to the weight function .

T(n, x) is a special Jacobi polynomial:

.