First kind Chebyshev polynomials
Definition 1
is called the first kind Chebyshev polynomial.
Basic Properties
Recurrence Formula
- [0]:
Orthogonal Set
- [1] Inner product of functions: Given the weight as , forms an orthogonal set.
Chebyshev Nodes
- [2]: The roots of are the Chebyshev nodes for .
Even and Odd Functions
- [3]:
- Typically, is defined as .
See Also
- First kind Chebyshev polynomial
- Second kind Chebyshev polynomial
- Relationship between first and second kind Chebyshev polynomials
- Chebyshev polynomials as solutions to Chebyshev’s differential equation
Description
The first kind Chebyshev polynomial for is expressed as follows:
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 , , 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 and .
Proof
[0]
Since , by the addition theorem of trigonometric functions Adding both sides Rearranging gives
■
[1]
Since , Therefore, forms an orthogonal set.
■
[2]
Trivial by definition.
■
[3]
Case 1.
Case 2. is even
Since all terms of have even degrees except the coefficient ,
Case 3. is odd
Since all terms of have odd degrees except the coefficient ,
■
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.
The coefficients are output from the constant term to the high-order term, and since the first kind Chebyshev polynomial is , it is correctly obtained. The function value is also accurately calculated as .
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)
Atkinson. (1989). An Introduction to Numerical Analysis(2nd Edition): p211. ↩︎