さて前回に引き続き、直交多項式についての記事を書こうと思う。
今回は
直交多項式とはどういうものであるかをざっくり定義す・・・るところまでかな。
その前にいくつか、必要な前提知識について簡単に述べておく。
(こういう回は書き飛ばしても良さそうだけど何かのために)
ベクトルは、大雑把に言えば動きの情報を持った矢印のことである。
...と思っている方がいるなら、それでは定義が弱い。
これから話す上で、ベクトルは基本的に多項式たち;関数を扱うので。
その「動きの情報を持った矢印」が満たす性質を抽出し
逆にそれらを満たすものを「ベクトル」と呼ぶことにする。
$K$を体、$V$を空でない集合とする。
$V$が$K$上のベクトル空間であるとは、加法$+: V\times V\to V$及びスカラー倍$\cdot: K\cdot V\to V$の2つの演算があって次の8つを満たすものである。
別の言い方をすれば、可換群$V$が体$K$上の加群となるときにそれをベクトル空間と呼ぶのである(環上の加群の特殊な例)。
我々がよく見るところでベクトル空間は顔を出す。
$\mathbb{R}$を実数体、$\mathbb{R}^3$は実数3つの組からなる加法群(直積群)とする。
これは$\mathbb{R}$上の3次元ベクトル空間となる。
$\mathbb{R}^3$の各点は、3次元空間の点と同一視でき、また「向きと長さを持った矢印」とも同一視できる。
ベクトル空間における次元とは、一次独立な(非自明な線型結合による関係式を持たない)ベクトルの最大個数のことである。平面が2次元、空間が3次元と呼ばれるときのあの次元に他ならない。
体$K$の元いくつかを長方形の形に並べたものを行列と呼ぶ。
縦が$m$個、横が$n$個のとき$m$行$n$列の行列と言い、それら全体の集合は$M_{m, n}(K)$と書く。
行列は線形代数の基礎的な概念となっている。すなわち、ベクトル空間の間の写像(線形写像)は基底を固定することで行列としての表示ができる。
私個人的には、行列より線形写像を先に定義する流儀の方が好きではある。
基礎体$K$の成分を無限に(自然数を添字として)並べたものを数列と呼ぶ。
よく知られた事実として、数列全体の中である斉次線形漸化式を満たす数列全体は有限次元部分空間となり、その次元は漸化式の階数に一致する。
これは高校の3項間漸化式が典型的な例である。
例えば$a_{n+2}=5a_{n+1}-6a_n$という漸化式だと、特性方程式$\lambda^2=5\lambda-6$の解は2と3なので、この漸化式は$a_n=\{2_n\}, \{3_n\}$という2つの独立な解を持つ。
さらにこれらの一次結合$a_n=\{a2^n+b3^n\}$でこの漸化式の解が尽くされているので、2次元ベクトル空間をなす、という主張である。
前回のチェビシェフ方程式の回(定理1)で出てきた漸化式
\begin{align*}
a_{n+2}(x)=2xa_{n+1}(x)-a_n(x)
\end{align*}
は第一種・第二種チェビシェフ多項式$\{T_n(x)\}, \{U_n(x)\}$ともに満たしているのがわかったが、この2つの数列も1次独立であることに注意すると、一般解は実はこれらチェビシェフ多項式の一次結合である。
数列は$n$番目の値が定められた離散的なものであるが、これを連続にしたものが次である。
基礎体$K$から$K$への(集合として任意の)写像全体を関数と呼ぶ。
(この場合、基礎体はだいたい$\mathbb{R}$か$\mathbb{C}$である。)
関数全体もまた$K$上のベクトル空間である。
また関数全体のうちある斉次線形常微分方程式を満たすもの全体は有限次元部分空間であり、その次元は微分方程式の階数と一致する。
2階定数係数斉次線形常微分方程式、名前が長いが。基本的な常微分方程式である。
$y''+ay'+by=0$に対し、例えば特性方程式が異なる2実解$\alpha, \beta$を持つときは、この方程式の解空間は$y=Ae^{\alpha x}+Be^{\beta x}$である。
我々が今から考えたいものは関数全体よりはもう少し狭い。
非負整数$\mathbb{Z}_{\ge0}$から基礎体$K$への写像$f$のうち、$f(n)\neq0$となる$n$が高々有限個となるものを考える。これら全体の集合に対し、加法は数列のそれと同じに、乗法は
\begin{align*}
(f\cdot g)(n)=\sum_{k=0}^nf(k)g(n-k) \quad (\text{畳み込み積})
\end{align*}
で入れたものは環構造を持つ。この集合を$K$上の1変数多項式環と呼び、$K[x]$などと書く。さらに$K[x]$は$K$上の無限次元ベクトル空間(もっと言えば$K$代数)となる。
またこの写像$f$だが、$f(m)x^m+f(m-1)x^{m-1}+\cdots+f(1)x+f(0)$と書かれる。(ただし$m$は$f(m)\neq0$となる最大の$m$)その$m$は多項式の次数と言う。
書き方こそ物々しいが、よく見る$3x+2$とか$x^3+5x^2-8x-9$とかのあの多項式に他ならない。
数学的に厳密に書くのは疲れる。
(特に、無限に続く例えば$1+x+x^2+\cdots$のようなものは省かねばならない)
細かいことを言うとキリがないが、必要ならばその都度注意する。
主に考えるのは、この多項式の空間である。
他にもベクトル空間の例は山ほどあるが、ここでは例示しない。
高校数学のベクトルでは、内積という概念が現れ、
平面や空間ベクトルの角度・長さを扱うのに重要な意味をなしていた。
すなわち何かしらの意味でベクトル空間を測っているのである。
ベクトル空間を測ることのできる「内積」の持った性質だけを抜き出して一般化したものが内積空間、また別の名を計量ベクトル空間という。
以下全て基礎体$K$は$\mathbb{R}$または$\mathbb{C}$とする。
ベクトル空間$(K, V)$が内積空間であるとは、以下の3つの条件を持った$V\times V$上の写像$\langle *, *\rangle: V\times V\to K
$を持つことである。
また、$v\in V$に対し$||v||:=\sqrt{\langle x, x\rangle}$を$v$の長さと呼ぶことにする。なおこの長さに対し$V$はノルム空間をなす(定義省略)。
例えば我々のよく知る、実空間ベクトルにおいて
\begin{align*}
(x_1, x_2, x_3)\cdot(y_1, y_2, y_3)
=x_1y_1+x_2y_2+x_3y_3
\end{align*}
で定められる内積(ドット積)は上の性質をもちろん満たしている。
ただし、成分が複素数になると
\begin{align*}
(x_1, x_2, x_3)\cdot(y_1, y_2, y_3)
=x_1\overline{y_1}+x_2\overline{y_2}+x_3\overline{y_3}
\end{align*}
などと共役を入れる必要が出てくる。他にも、例えば対称行列の空間などでは$\langle S, T\rangle:=\mathrm{tr}(ST)$などといった内積を入れることが多い。
$L^2$空間、二乗可積分空間、は内積の構造を持つことが知られている。
測度論を丁寧に定義することは本記事の趣旨から大きく逸れてしまうので割愛する。
測度空間$(S, \Omega, \mu)$に対し、その上の二乗可積分関数とは、可測関数$f: S\to \mathbb{C}$であってその二乗ノルムが
\begin{align*}
||f||_2:=\left(\int_S f^2d\mu\right)^{\frac{1}{2}}<\infty
\end{align*}
有限であるもの全体を指すものとする。この可測関数全体を同値関係
\begin{align*}
f\sim g \Leftrightarrow f=g \quad\text{a.e. $x\in S$}
\end{align*}
という(測度0を除き一致する関数を同一視した)同値関係で割ったものが$L^2$空間と呼ばれるベクトル空間である。$L^2(S, \mu)$と書かれる。
この空間には次で定められる内積があり、そこから誘導されるノルムは二乗ノルムと一致する。
\begin{align*}
\langle f, g\rangle = \int_S f\, \overline{g}\,d\mu
\end{align*}
さて、このような$L^2$内積だが、実は多項式の空間にも援用することができる。
しかし、それを話す前に直交性について復習する。
高校の平面/空間ベクトルにおいては、ベクトル$\vec{a}$と$\vec{b}$の内積が$0$であるとき、なおかつ$\vec{a}$も$\vec{b}$も零ベクトル$\vec{0}$と一致していなければ、直角に交わることが示せる。
もちろんこれは内積が角度と直結していること(本来は角度を内積で定義すべき)と$\cos\frac{\pi}{2}=0$であることが効いているのであるが、内積が$0$であるという事実を「直交性」と呼び、この性質を抜き出して内積空間に使うのである。
ベクトル空間$V$とその上の内積$\langle *, *\rangle$、さらに$x, y\in V$に対して$\langle x, y\rangle=0$が成り立つ時、$x$と$y$は直交していると呼ぶ。
内積空間の考えでは、零ベクトルは任意のベクトルと直交していて欲しいので、平面/空間ベクトルに倣って零ベクトルを除くということはしない。
この時、次のようなものが自然に定義できる。
内積空間$V$の部分空間$W$に対し、$W$の内積$\langle *, *\rangle$に関する直交補空間を
\begin{align*}
W^\perp:= \{x\in V \mid
\text{任意の $y\in W$ に対し}\langle x, y\rangle=0\}
\end{align*}
で定める。これは$V$の部分ベクトル空間になり、また$W\cap W^\perp =\{0\}$である。
これは$W$の全てのベクトルと直交したベクトル全体である。
$V$が有限次元のときは、$(W^\perp)^\perp=W$という双対性があり、また$W$の次元と$W^\perp$の次元の和は元の$V$の次元に等しくなる。
基準となるベクトル$a$を1つ固定する。
任意のベクトル$b$を、①$a$と平行な成分$p(b)$と②$a$と直交する成分$n(b)$、に分けたいということを考える。
このとき次の2式が成立する。
\begin{align*}
\begin{cases}
p(b)+n(b)=b \\
\langle n(b), a\rangle=0
\end{cases}
\end{align*}
垂直ベクトル$n(b)$を$b-p(b)$にして下の式に代入すると
\begin{align*}
\langle b-p(b), a\rangle=0
\Leftrightarrow
\langle p(b), a\rangle=\langle b, a\rangle
\end{align*}
がわかる。さらに$p(b)$は$a$と平行である仮定から$p(b)=ka$と書くと、
\begin{align*}
\langle ka, a\rangle=\langle b, a\rangle
\end{align*}
となり、$k$の値が計算できる。$\displaystyle k=\frac{\langle b, a\rangle}{\langle a, a\rangle}$である。
以上よりベクトル$a$を基準とする$b$の正射影ベクトル$p(b)$は
\begin{align*}
p(b)=\frac{\langle b, a\rangle}{\langle a, a\rangle}a
\end{align*}
として計算できる。なお、定義から$p(b)=p(p(b))$である(射影作用素)。
ここまで準備をしたので、シュミットの直交化法について述べることができる。
そもそも、ベクトルの基底が直交していると内積の計算含め嬉しいことがたくさんある。
なので適当に取った基底から直交基底を作りたい。
motivation: ベクトルの基底$\{a_n\}$に対し直交基底$\{e_n\}$であって、
$< e_1, \cdots, e_k>=< a_1, \cdots, a_k>$: $k$番目までの基底で貼られる部分空間を任意の$k$に対し同じものにしたい
今$e_1, \cdots, e_{k-1}$までができていて、$e_k$をどう取るか考えたい。
すなわち$a_k$のベクトルのうち、$e_1$から$e_{k-1}$までと平行な成分を引いて、全てに直交するようにしたい。
上の正射影の議論から
\begin{align*}
e_k=a_k-\sum_{l=1}^{k-1}
\frac{\langle a_k, e_l\rangle}{\langle e_l, e_l\rangle}e_l
\end{align*}
として取ることで$k$番目の直交基底$e_k$が構成可能である。(ただし最初の$e_1$に関しては$e_1=a_1$として取る)
このようにして取ってきた$\{e_n\}$は題意を満たす。(証明略)
note: $e_k$を$\displaystyle \frac{e_k}{||e_k||}$で取り替えることで$e_k$の長さを1にとることができる。
このような長さ1の互いに直交する基底を正規直交基底と言う。
今のところ特に正規性(長さが1であること)は仮定しない。
お待たせいたしました。
早速直交多項式を定義したいと思う。
なお、本来はもう少し定義を広く考えることができるが、今回は簡略化のため、重み関数を用いて書き表せる直交多項式に限ることにする。
$\mathbb{R}$上のベクトル空間$\mathbb{R}[x]$(多項式環)を考える。
適当な区間$[a,b]$(実数全区間でも良い)の上の重み関数$w(x)$は
* 任意の$j\ge0$に対し$\mu_j:=\displaystyle \int_a^b x^jw(x)dx$は有限の値を取り、かつ$\mu_0>0$
という条件を満たすことを仮定する。
この時$\mathbb{R}[x]$の2つの多項式$f, g$に対して次の内積
\begin{align*}
\langle f, g\rangle := \int_a^b f(x)g(x)w(x)dx
\end{align*}
を考えるとこれは内積の定義を満たし、この内積で内積空間になる。
シュミットの直交化法を行うことで、$\mathbb{R}[x]$の基底$\{P_n(x)\}_{n=0}^\infty$であって
を満たすものを取ってくることができる。
この多項式列$\{P_n(x)\}_{n=0}^\infty$を重み関数$w(x)$に関する区間$(a, b)$上の直交多項式列という。
これが1番自然な直交多項式の定義であろう。
重み関数の取り方によって、様々な直交多項式列が知られている。(例は後の記事で)
note: この$\mu_j$を$j$次のモーメントと呼ぶ。
このモーメントがうまく計算できる場合に名前のついた多項式列になってくる。
note: $(w(x), (a, b))$に関する正規直交基底を取ると、一意に決めることができる。
しかし定数倍の差は時と場合により使い分ける。
第一種チェビシェフ多項式は(前回の記事を参照)
区間$(-1, 1)$における重み関数$w(x)=\frac{1}{\sqrt{1-x^2}}$に対する直交多項式列、としても定義できる。
この定義から一般項を求めてみよう。(そんなことは可能か?→今は直接はしんどい)
とりあえずモーメントを計算する必要がある。
$j$が奇数の時は奇関数の積分となり$\mu_j=0$。$j$は偶数として良い。
\begin{align*}
\mu_j
&=\int_{-1}^1 \frac{x^j}{\sqrt{1-x^2}}dx \\
&=\int_{-\frac{\pi}{2}}^{\frac{\pi}{2}}
\frac{\sin^j\theta}{\cos\theta}\cdot\cos\theta d\theta
\quad(\text{$x=\sin\theta$ と置換}) \\
&=\int_{-\frac{\pi}{2}}^{\frac{\pi}{2}}
\sin^j\theta d\theta \\
&=2\int_0^{\frac{\pi}{2}} \sin^j\theta d\theta \\
&=\frac{(2j-1)!!}{(2j)!!}\pi
=\frac{j!}{2^j(\frac{j}{2})!^2}\pi \quad(\text{Wallis の積分公式})
\end{align*}
のようにモーメントが計算できる。
さて今定めた第一種チェビシェフ多項式$\{P_n(x)\}_{n=0}^\infty$の$n$番目の多項式$P_n(x)$を求めたい。
この多項式は$n$次多項式であるので、$P_n(x)=\sum_{k=0}^na_kx^k$と置くことができる。
さらに$1, x, \cdots, x^{n-1}$まで全てと直交しているので、$0\le j\le n-1$に対し
\begin{align*}
0
&=\langle P_n(x), x^j\rangle \\
&=\int_{-1}^1x^jP_n(x)\sqrt{1-x^2}dx \\
&=\int_{-1}^1x^j\sum_{k=0}^na_kx^k\sqrt{1-x^2}dx \\
&=\sum_{k=0}^na_k\int_{-1}^1x^jx^k\sqrt{1-x^2}dx \\
&=\sum_{k=0}^na_k\mu_{j+k}
\end{align*}
という$n$個の($j$は$0$から$n-1$まで走る)連立方程式の解として現れる。
定数倍の差があるので、最高次係数$a_n=1$の仮定を置くと、上の式は
\begin{align*}
&\sum_{k=0}^na_k\mu_{j+k}=0 \\
&\Leftrightarrow
\sum_{k=0}^{n-1}a_k\mu_{j+k}=-\mu_{n+j} \\
&\Leftrightarrow
\begin{pmatrix}
\mu_0 & \mu_1 & \cdots & \mu_{n-1} \\
\mu_1 & \mu_2 & \cdots & \mu_n \\
\vdots & \vdots & \ddots & \vdots \\
\mu_{n-1} & \mu_n & \cdots & \mu_{2n-2}
\end{pmatrix}
\begin{pmatrix} a_0 \\ a_1 \\ \vdots \\ a_{n-1} \end{pmatrix}
=
\begin{pmatrix} -\mu_n \\ -\mu_{n+1} \\ \vdots \\ -\mu_{2n-1} \end{pmatrix} \\
&\Leftrightarrow
\begin{pmatrix} a_0 \\ a_1 \\ \vdots \\ a_{n-1} \end{pmatrix}
=
-\begin{pmatrix}
\mu_0 & \mu_1 & \cdots & \mu_{n-1} \\
\mu_1 & \mu_2 & \cdots & \mu_n \\
\vdots & \vdots & \ddots & \vdots \\
\mu_{n-1} & \mu_n & \cdots & \mu_{2n-2}
\end{pmatrix}^{-1}
\begin{pmatrix} \mu_n \\ \mu_{n+1} \\ \vdots \\ \mu_{2n-1} \end{pmatrix} \\
\end{align*}
となるので無事に係数$a_k$たちを求めることが良かった。めでたしめでたし。
どこがどう求まったんだい?
一般的にモーメントが求まっていれば、モーメントからなる行列(これをモーメント行列と呼ぶ)を用いることで、原理的に係数を計算することができた。
が、モーメント行列の逆行列に、モーメントのベクトルを掛け算するだなんて...
note: 実はモーメント行列$\Delta_{n-1}$の逆行列はそれなりに計算可能な形にはなる。
本末転倒と言うかむしろ余談だが、
一般的に$\Delta_N$の逆行列の成分は求める直交多項式$P_n(x)$の係数$a_k^{(n)}$を用いて
$(\Delta_N^{-1})_{i, j}
=\sum_{l\le N} a_i^{(l)}a_j^{(l)}$と書ける。(ただし各$P_n(x)$は$||P_n||=1$と正規化しておく)
次の式を2通りに書くことから始める。
まず1通りめは直交多項式の係数を用いて書き下すと、和の入れ替えに注意して
\begin{align*}
\int_a^b x^k\left\{\sum_{n=0}^NP_n(x)P_n(y)\right\}w(x)dx
&=
\int_a^b x^k\left\{\sum_{n=0}^N
\sum_{i,j=0}^na_i^{(n)}a_j^{(n)}x^iy^j\right\}w(x)dx \\
&=
\sum_{j=0}^N
\left\{\sum_{n=j}^N
\sum_{i=0}^na_i^{(n)}a_j^{(n)}
\int_a^bx^{i+k}w(x)dx
\right\}y^j \\
&=
\sum_{j=0}^N
\left\{
\sum_{i=0}^N
\left(
\sum_{n\le N}a_i^{(n)}a_j^{(n)}
\right)\mu_{i+k}\right\}y^j
\end{align*}
一方で関数$x^k$を直交多項式$P_n(x)$で展開した式を
\begin{align*}
x^k = \sum_{l=0}^N c_lP_l(x)
\end{align*}
とおく。(実際には和は$l\le k$で十分)そしてこれを代入して計算すると
\begin{align*}
\int_a^b x^k\left\{\sum_{n=0}^NP_n(x)P_n(y)\right\}w(x)dx
&=
\int_a^b \sum_{l=0}^N c_lP_l(x)
\left\{\sum_{n=0}^NP_n(x)P_n(y)\right\}w(x)dx \\
&=
\sum_{n=0}^NP_n(y)\sum_{l=0}^Nc_l
\int_a^b P_n(x)P_l(x)w(x)dx \\
&=
\sum_{n=0}^NP_n(y)\sum_{l=0}^Nc_l \delta_{l,n}
\quad (\text{直交性、長さは1であることに注意}) \\
&=
\sum_{n=0}^NP_n(y)c_n \\
&=y^k
\end{align*}
となることが従う。
以上から、$y^j$の係数を比較して
\begin{align*}
\left\{
\left(\sum_{n\le N}a_i^{(n)}a_j^{(n)}\right)_{0\le i, j\le N}(\mu_{i+j})_{0\le i, j\le N}\right\}_{j, k}
=\sum_i
\left(\sum_{n\le N}a_j^{(n)}a_i^{(n)}\right)\mu_{i+k}
=\delta_{jk}
\end{align*}
となり積が単位行列$1_{N+1}$になることがわかった。すなわち
\begin{align*}
(\mu_{i+j})_{0\le i, j\le N}^{-1}
&=\left(\sum_{n\le N}a_i^{(n)}a_j^{(n)}\right)_{0\le i, j\le N}
\end{align*}
とモーメント行列の逆行列が求められる。(証明終)
しかし直交多項式の係数$a_k^{(n)}$は一般的に煩雑で、それの積の和なのでより煩雑になる(超幾何関数が出てきてしまう)
チェビシェフ多項式でさえも書き下したくない。
そもそも第一種は長さが$n=0$と$n\ge 1$で$\sqrt{2}$倍ずれるから余計だるい:::
(前記事の定理3の直交性の主張から。長さに場合分けが必要である)
note: 逆行列は求めなくて良い。
実際次の行列式で求められるのがわかる。
\begin{align*}
P_n(x)=\frac{1}{\det \Delta_{n-1}}
\det\begin{pmatrix}
\mu_0 & \mu_1 & \cdots & \mu_{n-1} & \mu_n \\
\mu_1 & \mu_2 & \cdots & \mu_n & \mu_{n+1} \\
\vdots & \vdots & \ddots & \vdots & \vdots \\
\mu_{n-1} & \mu_n & \cdots & \mu_{2n-2} & \mu_{2n-1} \\
1 & x & \cdots & x^{n-1} & x^n
\end{pmatrix}
\end{align*}
ただこれも計算が楽とは言い難い。
(以上のnotesでは Berg、Zhang(1つ目の証明、内容が全体的に面白い)やMourad(2節、これ以外にもモーメントの性質が多々書かれている)を参考にした)
よってこれらモーメント法から直接係数を計算することは困難を極める。
ではどうすれば良いのか?
その話はまた次以降に話すことにする。
今回はベクトル空間・内積空間・シュミットの直交化法を復習して、
重み関数による直交多項式の定義を述べることができた。
またモーメント法に関する直交多項式の係数の原理的導出についても触れた。
なおこれに関しては面白い論文も複数あり、機会があれば余談編の記事を書くかもしれない。
次からは直交多項式の様々な性質について見ていくことにする。
実は1番時間かかったのが、
折り畳んだモーメント法の証明で
2つの行列の積が単位行列になるところ。
行間で端折られていた...普通にできたけど💦