logo

チェビシェフ展開 📂数値解析

チェビシェフ展開

ビルドアップ 1

チェビシェフ展開を理解するためには、チェビシェフ展開がどのように導出されるのかをまず知る必要がある。最小化問題を解く代わりに最小二乗問題を解くと考えてみよう。 Mn(f):=infdeg(r)nfr2 M_{n} (f) := \inf_{\deg(r) \le n } \left\| f - r \right\|_{2} f:[a,b]Rf : [a,b] \to \mathbb{R}について上述のような最小二乗問題が与えられているとしよう。目標はMn(f)M_{n} (f)を最小化するnn次以下の多項式rnr_{n}^{ \ast }を見つけることである。幸いにも多項式の空間R[x]\mathbb{R} [ x ]は、内積<f,g>:=abf(x)g(x)w(x)dx\displaystyle \left< f , g \right> : = \int_{a}^{b} f(x) g(x) w(x) dxに対して与えられたウェイトw(x)w(x)がある場合、有限次元内積空間となり、グラム・シュミットの過程によって正規直交基底{φk}k=0n\left\{ \varphi_{k} \right\}_{k=0}^{n}の存在が保証されているため r(x)=b0φ0(x)+b1φ1(x)++bnφn(x) r(x) = b_{0} \varphi_{0} (x) + b_{1} \varphi_{1} (x) + \cdots + b_{n} \varphi_{n} (x) のようにr(x)r(x)の線形結合を見つける問題に変えることができる。言い換えれば、最小二乗問題とは fr22=ab[f(x)j=0nbjφj(x)]2w(x)dx | f - r |_{2}^{2} = \int_{a}^{b} \left[ f(x) - \sum_{j=0}^{n} b_{j} \varphi_{j} (x) \right]^{2} w(x) dx が最小値となるようなr=rnr = r_{n}^{ \ast }を見つけることである。 0fr22=<fj=0nbjφj,fj=0nbjφj>=<f,f>2j=0nbj<f,φj>+ijbibj<φi,φj>=f222j=0nbj<f,φj>+j=0nbj2=f22j=0n<f,φj>2+j=0n[<f,φj>bj]2 \begin{align*} \displaystyle 0 \le & | f - r |_{2}^{2} \\ =& \left< f - \sum_{j=0}^{n} b_{j} \varphi_{j} , f - \sum_{j=0}^{n} b_{j} \varphi_{j} \right> \\ =& \left< f , f \right> - 2 \sum_{j=0}^{n} b_{j} \left< f , \varphi_{j} \right> + \sum_{i} \sum_{j} b_{i} b_{j} \left< \varphi_{i} , \varphi_{j} \right> \\ =& | f |_{2}^{2} - 2 \sum_{j=0}^{n} b_{j} \left< f , \varphi_{j} \right> + \sum_{j=0}^{n} b_{j}^2 \\ =& | f |_{2}^{2} - \sum_{j=0}^{n} \left< f , \varphi_{j} \right>^2 + \sum_{j=0}^{n} \left[ \left< f , \varphi_{j} \right> - b_{j} \right]^2 \end{align*} ここでf22| f |_{2}^{2}j=0n<f,φj>2\displaystyle \sum_{j=0}^{n} \left< f , \varphi_{j} \right>^2ff{φk}k=0n\left\{ \varphi_{k} \right\}_{k=0}^{n} によって既に決まっているため、変わらない。したがって、最後の項j=0n[<f,φj>bj]2\displaystyle \sum_{j=0}^{n} \left[ \left< f , \varphi_{j} \right> - b_{j} \right]^2 を最小化する場合を見つける必要があるが、これは単純にbj=<f,φj>b_{j} = \left< f , \varphi_{j} \right>によって行え、以下のような最小二乗解を得ることができる。 rn(x)=j=0n<f,φj>φj(x) r_{n}^{ \ast } (x) = \sum_{j=0}^{n} \left< f , \varphi_{j} \right> \varphi_{j} (x) さて、本格的にチェビシェフ多項式について話そう。

定義 2

チェビシェフ多項式: Tn(x)=cos(ncos1x)T_{n} (x) = \cos \left( n \cos^{-1} x \right) は第一種チェビシェフ多項式と呼ばれる。

  • [3] 関数の内積: <f,g>:=abf(x)g(x)w(x)dx\displaystyle \left<f, g\right>:=\int_a^b f(x) g(x) w(x) dx の内積にウェイトwww(x):=11x2\displaystyle w(x) := {{1} \over { \sqrt{1 - x^2} }} のように与えると、{T0,T1,T2,}\left\{ T_{0} , T_{1}, T_{2}, \cdots \right\}直交集合になる。

直交基底{Tk}k=0n\left\{ T_{k} \right\}_{k = 0}^{n}が正規化されるように正規直交基底{φk}k=0n\left\{ \varphi_{k} \right\}_{k=0}^{n}を以下のように定義しよう。 φn(x):={1π,n=02πTn(x),nN \varphi_{n} (x) := \begin{cases} \displaystyle \sqrt{ {{1} \over { \pi }} } & , n=0 \\ \displaystyle \sqrt{ {{2} \over { \pi }} } T_{n} (x) & , n \in \mathbb{N} \end{cases} この基底についての次のシリーズは チェビシェフ最小二乗近似、または単に チェビシェフ展開 とも呼ばれる。 Cn(x):=j=0n<f,φj>φj(x) C_{n} (x) := \sum_{j=0}^{n} \left< f , \varphi_{j} \right> \varphi_{j} (x) または、時々、TkT_{k} を直接使用する方が便利な場合もあるので、以下のように書くこともある。 cj:=2π11f(x)Tj(x)1x2dx c_{j} := {{2} \over { \pi }} \int_{-1}^{1} {{f(x) T_{j} (x) } \over {\sqrt{1 - x^2 }}} dx

Cn(x)=c0+j=1ncjTj(x) C_{n} (x) = c_{0} + \sum_{j=1}^{n} c_{j} T_{j} (x)

説明

以下のような関数近似において良い条件を比較的よく満たしているため、チェビシェフ展開が有益である理由は:

  • (i): ff[1,1][-1,1]からf(r)f^{(r)}まで存在し、連続である場合、チェビシェフ最小二乗近似CnC_{n}f,rf,rにおけるある定数BBに対してfCnBlnnnr\displaystyle | f - C_{n} |_{\infty} \le {{B \ln n} \over {n^{r}}}が成り立つ。
  • (ii): Cn+1(x)=Cn(x)+cn+1Tn+1(X)C_{n+1} (x) = C_{n} (x) + c_{n+1} T_{n+1} (X)
  • (iii): cn+112n\displaystyle c_{n+1} \sim {{1} \over {2^{n}}}

関数近似における良い基底の条件:

  • (i): pn(x)\displaystyle p_{n} (x){φn(x)Q[x]:n0}\displaystyle \left\{ \varphi_{n} (x) \in \mathbb{Q} [ x ] : n \ge 0 \right\}の線形結合として表され、maxx[a,b]f(x)pn(x)\displaystyle \max_{x \in [a,b]} | f(x) - p_{n} (x) |が望むほど小さくなるようにするnNn \in \mathbb{N}が存在する必要がある。
  • (ii): pn(x)p_{n} (x)pn(x)=k=0nakφn(X)\displaystyle p_{n} (x) = \sum_{k=0}^{n} a_{k} \varphi_{n} (X)のように計算されるのが良い。つまり、エラーを減らすために毎回全てを再計算するのではなく、新しい項を加えることで計算するのが良い。
  • (iii): an| a_{n} |が迅速に00に収束するのが良い。つまり、可能な限り少ない項を加えても迅速に収束するのが良い。
  • (i): チェビシェフ展開を理解する最も重要な理由の一つ。もともと最小二乗法は、グローバルにエラーが最小になる解を見つける方法ではなく、分散が最小になるような近似解を見つけることである。エラーの和や積分で計算するため、ある部分ではうまく合っているが、他の部分では大きく間違えることもある。このような不安定さを無視するなら、そもそも関数近似をする理由がなかった。関数近似の真の目的は、一様なエラーを最小化すること、つまりρn(f)=infdeg(q)nfq\displaystyle \rho_{n} (f) = \inf_{\deg(q) \le n } \left\| f - q \right\|_{\infty}が小さくなる近似をすることである。nrn^rに比べて、lnn\ln nの発散速度はかなり遅いため、fCnBlnnnr\displaystyle | f - C_{n} |_{\infty} \le {{B \ln n} \over {n^{r}}}という不等式は、驚くべきことに、チェビシェフの最小二乗近似が最小化問題でもかなり役立つことを意味する。
  • (ii): TnT_{n}は既に再帰的に全て定まっている。これを計算することは特に難しくなく、cjc_{j}も単純無闇に計算するだけである。望む精度まで一度に計算する必要はなく、実用的な観点からいつでも歓迎される。精度が低くても計算を節約でき、より高い精度が必要な場合でも、これまでに行った計算を破棄する必要がないためである。
  • (iii): ffを近似するための多項式pn+1p_{n+1}を以下の二つの方法で表現してみよう。 pn+1(x):=a0+a1x++anxn+an+1xn+1pn+1(x):=c0+c1T1(x)++cnTn(x)+cn+1Tn+1(x) \begin{align*} p_{n+1} (x) :=& a_{0} + a_{1} x + \cdots + a_{n} x^{n} + a_{n+1} x^{n+1} \\ p_{n+1} (x) :=& c_{0} + c_{1} T_{1} (x) + \cdots + c_{n} T_{n} (x) + c_{n+1} T_{n+1} (x) \end{align*} pn+1(X)p_{n+1} (X)の最高次項の係数an+1a_{n+1}は、cn+1Tn+1(x)c_{n+1} T_{n+1} (x)の最高次項の係数と同じである。しかし、 T0(x)=1T1(x)=xTn+1(x)=2xTn(x)Tn1(x) \begin{align*} T_{0} (x) =& 1 \\ T_{1} (x) =& x \\ T_{n+1} (x) =& 2x T_{n} (x) - T_{n-1} (x) \end{align*} となるため、Tn+1(x)T_{n+1} (x)の最高次項の係数は2n2^{n}である。これを数式で要約すると an+1=cn+12n    cn+1=an+12n a_{n+1} = c_{n+1} 2^{n} \implies c_{n+1} = {{a_{n+1}} \over {2^{n}}} である。一方でTm(x)=cos(mcos1x)1| T_{m} (x) | = \left| \cos \left( m \cos^{-1} x \right) \right| \le 1であるため、cm+1Tm+1(x)=12mam+1Tm+1(x)\displaystyle \left| c_{m+1} T_{m+1} (x) \right| = {{1} \over {2^{m}}} \left| a_{m+1} T_{m+1} (x) \right|という項はかなり、いや、非常に速く減少することがわかる。これは質的に言えば、チェビシェフ展開は最初から良い基底を選んだと言える。テイラー展開が1,x,x2,x3,1 , x , x^{2} , x^{3} , \cdotsのように純粋に平凡な項を加えている間、チェビシェフ展開は関数を近似するのに大きく役立つ関数から優先的に選び、ここに加えて、あそこを引くなどして速度を上げたのである。

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

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