応用数学 において 、 離散チェビシェフ変換 (略称DCT、DChT、またはDTT)は、 実区間 の 関数 に対する 離散フーリエ変換の類似物であり、 チェビシェフ節点 の集合における関数値 と、 チェビシェフ多項式 基底における関数の 係数との間で双方向の変換を行う。チェビシェフ多項式と同様に、 パフヌティ・チェビシェフ にちなんで名付けられている 。
離散チェビシェフ変換の最も一般的な2つのタイプは 、 第一種チェビシェフ 多項式の 零点であるチェビシェフ零 点のグリッドと、第一種 チェビシェフ多項式 の極値であり第二種チェビシェフ多項式の 零点 でもあるチェビシェフ極値グリッド を用いる。これらの変換はどちらも、第一種チェビシェフ多項式の係数を生成する。
T
n
(
×
)
{\displaystyle T_{n}(x)}
あなた
n
(
×
)
{\displaystyle U_{n}(x)}
その他の離散チェビシェフ変換には、関連するグリッドと、第 2 種、第 3 種、または第 4 種のチェビシェフ多項式の係数が含まれます。
ルーツグリッド
点における の離散チェビシェフ変換は 次のように与えられます。
あなた
(
×
)
{\displaystyle {u(x)}}
×
n
{\displaystyle {x_{n}}}
1つの
メートル
=
p
メートル
北
∑
n
=
0
北
−
1
あなた
(
×
n
)
T
メートル
(
×
n
)
、
{\displaystyle a_{m}={\frac {p_{m}}{N}}\sum _{n=0}^{N-1}u(x_{n})T_{m}(x_{n}),}
どこ
×
n
=
−
コス
(
n
+
1
2
)
π
北
、
{\displaystyle x_{n}=-\cos {\frac {{\bigl (}n+{\tfrac {1}{2}}{\bigr )}\pi }{N}},}
1つの
メートル
=
p
メートル
北
∑
n
=
0
北
−
1
あなた
(
×
n
)
コス
(
メートル
コス
−
1
(
×
n
)
)
、
{\displaystyle a_{m}={\frac {p_{m}}{N}}\sum _{n=0}^{N-1}u(x_{n})\cos \left(m\cos ^{-1}(x_{n})\right),}
if と only if および otherwise を使用します。
p
メートル
=
1
{\displaystyle p_{m}=1}
メートル
=
0
{\displaystyle m=0}
p
メートル
=
2
{\displaystyle p_{m}=2}
の定義を用いると 、
×
n
{\displaystyle x_{n}}
1つの
メートル
=
p
メートル
北
∑
n
=
0
北
−
1
あなた
(
×
n
)
コス
メートル
(
北
+
n
+
1
2
)
π
北
=
p
メートル
北
∑
n
=
0
北
−
1
あなた
(
×
n
)
(
−
1
)
メートル
コス
メートル
(
n
+
1
2
)
π
北
。
{\displaystyle {\begin{aligned}a_{m}&={\frac {p_{m}}{N}}\sum _{n=0}^{N-1}u(x_{n})\cos {\frac {m{\bigl (}N+n+{\tfrac {1}{2}}{\bigr )}\pi }{N}}\\&={\frac {p_{m}}{N}}\sum _{n=0}^{N-1}u(x_{n})(-1)^{m}\cos {\frac {m{\bigl (}n+{\tfrac {1}{2}}{\bigr )}\pi }{N}}.\end{aligned}}}
逆変換は
あなた
n
=
∑
メートル
=
0
北
−
1
1つの
メートル
T
メートル
(
×
n
)
=
∑
メートル
=
0
北
−
1
1つの
メートル
(
−
1
)
メートル
コス
メートル
(
n
+
1
2
)
π
北
。
{\displaystyle u_{n}=\sum _{m=0}^{N-1}a_{m}T_{m}(x_{n})=\sum _{m=0}^{N-1}a_{m}(-1)^{m}\cos {\frac {m{\bigl (}n+{\tfrac {1}{2}}{\bigr )}\pi }{N}}.}
(これは、ルート グリッド上で評価される標準チェビシェフ級数です。)
この離散チェビシェフ変換は、たとえば次の MATLAB コード
を使用して、 離散コサイン変換 への入力引数を操作することによって計算できます。
関数 a = fct ( f, l )
% x =-cos(pi/N*((0:N-1)'+1/2));
f = f ( end : - 1 : 1 ,:); A = size ( f ); N = A ( 1 ); 存在する 場合 ( 'A(3)' , 'var' ) && A ( 3 ) ~= 1 i = 1 の 場合 : A ( 3 ) a (:,:, i ) = sqrt ( 2 / N ) * dct ( f (:,:, i )); a ( 1 ,:, i ) = a ( 1 ,:, i ) / sqrt ( 2 ); end それ以外の場合 a = sqrt ( 2 / N ) * dct ( f (:,:, i )); a ( 1 ,:)= a ( 1 ,:) / sqrt ( 2 ); end
MATLAB の組み込み dct(離散コサイン変換) 関数は、 高速フーリエ変換 を使用して実装されます。
逆変換は MATLAB コードによって与えられます。
関数 f = ifct ( a, l )
% x = -cos(pi/N*((0:N-1)'+1/2))
k = size ( a ); N = k ( 1 );
a = idct ( sqrt ( N / 2 ) * [ a ( 1 ,:) * sqrt ( 2 ); a ( 2 : end ,:)]);
終わり
極値グリッド
この変換ではグリッドを使用します。
×
n
=
−
コス
n
π
北
{\displaystyle x_{n}=-\cos {\frac {n\pi}{N}}}
T
n
(
×
メートル
)
=
コス
(
メートル
n
π
北
+
n
π
)
=
(
−
1
)
n
コス
メートル
n
π
北
{\displaystyle T_{n}(x_{m})=\cos \left({\frac {mn\pi}{N}}+n\pi \right)=(-1)^{n}\cos {\frac {mn\pi}{N}}}
この極値グリッドはより広く使用されています。
この場合、変換とその逆は
あなた
(
×
n
)
=
あなた
n
=
∑
メートル
=
0
北
1つの
メートル
T
メートル
(
×
n
)
、
{\displaystyle u(x_{n})=u_{n}=\sum _{m=0}^{N}a_{m}T_{m}(x_{n}),}
1つの
メートル
=
p
メートル
北
(
1
2
(
あなた
0
(
−
1
)
メートル
+
あなた
北
)
+
∑
n
=
1
北
−
1
あなた
n
T
メートル
(
×
n
)
)
、
{\displaystyle a_{m}={\frac {p_{m}}{N}}{\biggl (}{\tfrac {1}{2}}{\bigl (}u_{0}(-1)^{m}+u_{N}{\bigr )}+\sum _{n=1}^{N-1}u_{n}T_{m}(x_{n}){\biggr )},}
ここで、 またはの 場合に限り、 それ 以外の場合です。
p
メートル
=
1
{\displaystyle p_{m}=1}
メートル
=
0
{\displaystyle m=0}
メートル
=
北
{\displaystyle m=N}
p
メートル
=
2
{\displaystyle p_{m}=2}
使用法と実装
離散チェビシェフ変換の主な用途は、 数値積分 、補間、安定 数値微分 である。 [1] これらの機能を提供する実装は、 C++ ライブラリBoostで提供されている。 [2]
参照
参考文献
^ Trefethen, Lloyd (2013). 近似理論と近似の実践 .
^ Thompson, Nick; Maddock, John. 「チェビシェフ多項式」. boost.org .