第一種チェビシェフ多項式
📂数値解析第一種チェビシェフ多項式
定義
Tn(x)=cos(ncos−1x) を第1種チェビシェフ多項式という。
基本性質
再帰公式
- [0]: Tn+1(x)=2xTn(x)−Tn−1(X)
直交集合
- [1] 関数の内積: 重みw をw(x):=1−x21 のように与えると、{T0,T1,T2,⋯} は直交集合になる。
チェビシェフ・ノード
- [2]: Tn(x) の根は、k=1,⋯,n に対して以下のようなチェビシェフ・ノードだ。
xk=cos(2n2k−1π)
奇関数と偶関数
Tn(−x)=(−1)nTn(x)
- 通常、0≤θ≤π に対して、θ:=cos−1x とする。
参照
説明
n=0,⋯,3 に対する第1種チェビシェフ多項式は、次のように表される。
T0(x)=T1(x)=T2(x)=T3(x)=1x2x2−14x3−3x
第1種チェビシェフ多項式は、数値解析だけでなく、応用数学全般で非常に役立つ関数であり、第2種チェビシェフ多項式と合わせて、興味深い性質を豊富に持つ。
一方、第1種チェビシェフ多項式は、逆にT0(x)=1、T1(x)=x そして再帰式 [0] を使って定義することもできる。これは第2種チェビシェフ多項式も同様であり、第1種と第2種を呼ぶ理由は、T1(x)=1⋅x と U1(x)=2⋅x のためと考えても良い。
証明
[0]
Tn(x)=cos(nθ) であるから、三角関数の加法定理により
Tn±1(x)=cos(n±1)θ=cos(nθ)cosθ∓sin(nθ)sinθ
両辺を足すと
Tn+1(x)+Tn−1(x)=2cos(nθ)cosθ=2Tn(x)x
Tn−1(x) を整理すると
Tn+1(x)=2xTn(x)−Tn−1(x)
■
[1]
dx=−sinθdθ=−1−x2dθ であるから
⟨Tn,Tm⟩====∫−11Tn(x)Tm(x)1−x21dx−∫π0cosnθcosmθdθ∫0πcosnθcosmθdθ{π/20,n=m,n=m
従って、{T0,T1,T2,⋯} は直交集合である。
■
[2]
定義より自明である。
■
[3]
ケース 1. n=0,1
T0(−x)=1=T0(x)
T1(−x)=(−x)=−x=−T1(x)
ケース 2. n≥2 が偶数
Tn(x) の、係数 0 以外の全ての項が偶数次であるから、Tn(−x)=Tn(x)
ケース 3. n≥2 が奇数
Tn(x) の、係数 0 以外の全ての項が奇数次であるから、Tn(−x)=−Tn(x)
■
実装
以下は、Rで書かれたチェビシェフ多項式のコードだ。
多項式自体が返されるので、直接計算に使うことができる。n
は次数、kind
で種類を指定し、print
オプションをtrueにすると、係数が出力される。

出力される係数は、定数項から高次項順に出力され、第1種チェビシェフ多項式がT3(x)=4x3−3x であるため、正しく得られたことがわかる。関数値もT3(3)=4⋅33−3⋅3=108−9=99 で正確に計算された。
Chebyshev<-function(n,kind=1,print=F)
{
p<-NA
if((round(n)-n)!=0 | n<0) {stop("Wrong Degree!!")}
if(!kind%in%(1:2)) {stop("Wrong Kind!!")}
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)