logo

First kind Chebyshev polynomials 📂Numerical Analysis

First kind Chebyshev polynomials

Definition 1

Tn(x)=cos(ncos1x)T_{n} (x) = \cos \left( n \cos^{-1} x \right) is called the first kind Chebyshev polynomial.

Basic Properties

Recurrence Formula

  • [0]: Tn+1(x)=2xTn(x)Tn1(X)T_{n+1} (x) = 2x T_{n} (x) - T_{n-1} (X)

Orthogonal Set

  • [1] Inner product of functions: Given the weight ww as w(x):=11x2\displaystyle w(x) := {{1} \over { \sqrt{1 - x^2} }}, {T0,T1,T2,}\left\{ T_{0} , T_{1}, T_{2}, \cdots \right\} forms an orthogonal set.

Chebyshev Nodes

  • [2]: The roots of Tn(x)T_{n} (x) are the Chebyshev nodes for k=1,,nk=1, \cdots , n. xk=cos(2k12nπ)x_{k} = \cos \left( {{2k-1} \over {2n}} \pi \right)

Even and Odd Functions

  • [3]:

Tn(x)=(1)nTn(x)T_{n} (-x) = (-1)^{n} T_{n} (x)


  • Typically, 0θπ0 \le \theta \le \pi is defined as θ:=cos1x\theta := \cos^{-1} x .

See Also

Description

The first kind Chebyshev polynomial for n=0,,3n = 0, \cdots , 3 is expressed as follows:

T0(x)=1T1(x)=xT2(x)=2x21T3(x)=4x33x \begin{align*} T_{0} (x) =& 1 \\ T_{1} (x) =& x \\ T_{2} (x) =& 2x^{2} - 1 \\ T_{3} (x) =& 4x^{3} - 3x \end{align*}

The first kind Chebyshev polynomial is very useful not only in numerical analysis but also in applied mathematics in general, and together with the second kind Chebyshev polynomial, it has a wide range of interesting properties.

Meanwhile, the first kind Chebyshev polynomial can also be defined using the inverse T0(x)=1T_{0} (x) = 1, T1(x)=xT_{1} (x) = x, and the recurrence formula [0]. This is also true for the second kind Chebyshev polynomial, so it is reasonable to refer to the first and second kinds for reasons T1(x)=1xT_{1} (x) = 1 \cdot x and U1(x)=2xU_{1} (x) = 2 \cdot x.

Proof

[0]

Since Tn(x)=cos(nθ)T_{n} (x) = \cos \left( n \theta \right), by the addition theorem of trigonometric functions Tn±1(x)=cos(n±1)θ=cos(nθ)cosθsin(nθ)sinθ T_{n \pm 1} (x) = \cos (n \pm 1) \theta = \cos (n \theta ) \cos \theta \mp \sin ( n \theta ) \sin \theta Adding both sides Tn+1(x)+Tn1(x)=2cos(nθ)cosθ=2Tn(x)x T_{n+1} (x) + T_{n-1} (x) = 2 \cos (n \theta ) \cos \theta = 2 T_{n} (x) x Rearranging Tn1(x)T_{n-1} (x) gives Tn+1(x)=2xTn(x)Tn1(x) T_{n+1} (x) = 2x T_{n} (x) - T_{n-1} (x)

[1]

Since dx=sinθdθ=1x2dθdx = - \sin \theta d \theta = - \sqrt{1 - x^2} d \theta, <Tn,Tm>=11Tn(x)Tm(x)11x2dx=π0cosnθcosmθdθ=0πcosnθcosmθdθ={π/2,n=m0,nm \begin{align*} \displaystyle \left< T_{n}, T_{m} \right> =& \int_{-1}^{1} T_{n} (x) T_{m} (x) {{1} \over { \sqrt{1 - x^2} }} dx \\ =& - \int_{\pi}^{0} \cos n \theta \cos m \theta d \theta \\ =& \int_{0}^{\pi} \cos n \theta \cos m \theta d \theta \\ =& \begin{cases} \pi/2 &, n=m \\ 0 &, n \ne m \end{cases} \end{align*} Therefore, {T0,T1,T2,}\left\{ T_{0} , T_{1}, T_{2}, \cdots \right\} forms an orthogonal set.

[2]

Trivial by definition.

[3]

Case 1. n=0,1n=0,1

T0(x)=1=T0(x) T_{0} (-x) = 1 = T_{0} (x)

T1(x)=(x)=x=T1(x) T_{1} (-x) = (-x) = -x = - T_{1} (x)


Case 2. n2n \ge 2 is even

Since all terms of Tn(x)T_{n}(x) have even degrees except the coefficient 00, Tn(x)=Tn(x)T_{n}(-x) = T_{n}(x)


Case 3. n2n \ge 2 is odd

Since all terms of Tn(x)T_{n}(x) have odd degrees except the coefficient 00, Tn(x)=Tn(x)T_{n}(-x) = - T_{n}(x)

Implementation

Below is the code for the Chebyshev polynomial written in R.

Since the polynomial itself is returned, it can be directly used for calculations. n is the degree, kind specifies the type, and if the print option is true, it outputs the coefficients.

20181120\_125712.png

The coefficients are output from the constant term to the high-order term, and since the first kind Chebyshev polynomial is T3(x)=4x33xT_{3} (x) = 4x^{3} - 3x, it is correctly obtained. The function value is also accurately calculated as T3(3)=43333=1089=99T_{3} (3) = 4 \cdot 3^{3} - 3 \cdot 3 = 108-9 = 99.

Chebyshev<-function(n,kind=1,print=F)
{
  p<-NA
  
  if((round(n)-n)!=0 | n<0) {stop("Wrong Degree!!")} #degree must be nonnegative integer
  if(!kind%in%(1:2)) {stop("Wrong Kind!!")} #kind must be 1 or 2
  
  if(n==0)
  {
    if(print) {print(1)}
    
    p<-function(x) {return(1)}
    return(p)
  }
  
  if(n==1)
  {
    if(print) {print(c(0,kind))}
    
    p<-function(x) {return(kind*x)}
    return(p)
  }
 
  coef0<-c(1)
  coef1<-c(0,kind)
  
  for(i in 1:(n-1))
  {
    coef2<- ( c(0,2*coef1) - c(coef0,0,0) )
    coef0<-coef1
    coef1<-coef2
  }
  
  if(print) {print(coef2)}
  
  p<-function(x)  {return(sum(coef2*x^(0:n)))}
  return(p)
}
 
p<-Chebyshev(1,1); p(2)
p<-Chebyshev(3,1,T); p(3)

  1. Atkinson. (1989). An Introduction to Numerical Analysis(2nd Edition): p211. ↩︎