第５回

直交多項式齊藤国靖 ∗理学部

2022 年 11 月 9 日
正規直交系のベクトルが互いに直交するのと同じように，互いに直交する関数列を定義することができる．これを正規直交関数といい，任意の関数は正規直交関数の線形結合で表すことができる．ベクトルの場合と同様，線形結合の係数は関数の内積で与えられ，これによりベクトルと関数の対応関係はより明確になる．正規直交関数の特別な場合として直交多項式があり，直交多項式を求める方法としてモーメント法がある．後半ではモーメント法を利用して，ルジャンドル多項式やラゲール多項式といった直交多項式を実際に求めてみる．

1 正規直交関数
1.1 関数の内積２つの関数 f (x), g(x) があるとき，これらの関数の内積を∫ b⟨f |g⟩ ≡f ∗ (x)g(x)dx(1)aと定義する．ここで，f ∗ (x) は関数 f (x) の複素共役であり，積分範囲は a ≤ x ≤ b である．一方，重み関数 w(x) ≥ 0 を用いて，f (x) と g(x) の重み付き内積を∫ b⟨f, g⟩ ≡f (x)g(x)w(x)dx(2)aと定義する．式 (2) も関数の内積として有用であり，以後，目的に応じて使い分けることにする．

1.2 ベクトルの場合話を進める前に，ベクトルの正規直交系を復習しよう．n 個のベクトル

e1 , . . . , en(3)ei · ej = δij(4)の中から任意に選んだ２つのベクトルが∗ k.saitoh@cc.kyoto-su.ac.jp

1

2 直交多項式2を満たすとき，式 (3) のベクトルは正規直交系であるという．任意のベクトル x は式 (3) の正規直交系の線形結合として

x=n∑

ci ei(5)i=1と展開できる．ここで，展開係数 ci は式 (5) の両辺と ei の内積を取ると求めることができて，

ci = ei · x(6)である．

1.3 関数の場合関数の内積，式 (1) または (2) を用いれば，ベクトルの正規直交系と同様の計算ができる．まず，無限個の関数列:::::::::::::

ϕ1 (x), . . . , ϕn (x), . . .

(7)が与えられたとき，これらの中から任意に選んだ２つの関数が∫ b⟨ϕi |ϕj ⟩ =ϕ∗i (x)ϕj (x)dx = δij(8)aを満たすとき，式 (7) の関数列は正規直交関数であるという．ここで，式 (7) と (8) はそれぞれベクトルの場合の式 (3) と (4) に対応する．
次に，任意の関数 f (x) を式 (7) の正規直交関数の線形結合で展開すると，

f (x) =∞∑

ci ϕi (x)(9)i=1となる．これはベクトルの場合の式 (5) に対応するもので，展開係数 ci は式 (6) と同様，

∫ bci = ⟨ϕi |f ⟩ =ϕ∗i (x)f (x)dx(10)aで与えられる．式 (10) を導出するには，式 (9) の両辺と関数 ϕi (x) の内積を取り，正規直交条件である式 (8) を使えばよい．

2 直交多項式
2.1 グラム−シュミットの方法
正規直交ではない互いに独立な n 個のベクトル {a1 , . . . , an } から正規直交系を作る方法にグラム−シュミットの方法がある．まず，最初のベクトルを用いて，

e1 ≡a1|a1 |(11)2 直交多項式3とする．次に，

e′2 ≡ a2 − µ1 e1として，e1 と e′2 が直交する様に µ1 を決めると，

e1 · e′2 = 0 ,∴ e1 · (a2 − µ1 e1 ) = 0 ,∴ µ1 = e1 · a 2となる．よって，

e′2 ≡ a2 − (e1 · a2 ) e1であり，e′2 を規格化して，e2 ≡e′2|e′2 |(12)とする．また，

e′3 ≡ a3 − λ1 e1 − λ2 e2として，e′3 と e1 および e2 が直交する様に λ1 と λ2 を決めると，

e1 · e′3 = 0 ,∴ e1 · (a3 − λ1 e1 − λ2 e2 ) = 0 ,∴ λ1 = e 1 · a 3e2 · e′3 = 0 ,∴ e2 · (a3 − λ1 e1 − λ2 e2 ) = 0 ,∴ λ2 = e 2 · a 3となる．よって，

e′3 = a3 − (e1 · a3 ) e1 − (e2 · a3 ) e2である．以下同様に，n 番目のベクトルをe′n ≡ an −n−1∑

(ei · an ) ei(13)e′n|e′n |(14)i=1とすれば，これを規格化してen ≡を得る．従って，式 (11), (12), (14) の順に正規直交系 {e1 , . . . , en } を作ることができる．

2.2 直交多項式
ベクトルの場合のグラム−シュミットの方法は:::::::::::::::::::::::::::::::::::::::::
内積さえ定義できればどんなものにも応用できる．
従って，互いに独立な関数列から正規直交関数を作ることもできる．例えば，n 次多項式

f (x) = a0 + a1 x + · · · + an xn(15)を考えると，右辺は n + 1 個の関数列 {1, x, . . . , xn } の線形結合とみなせる．x のべき乗は互いに独立な関数であるから，グラム−シュミットの方法を応用して正規直交関数 {ϕ0 , ϕ1 , . . . , ϕn } を作ることができる．

2 直交多項式

4式 (13) を参考にすれば，::::::::::::::::::::::::
i 番目の関数 ϕi は i 次多項式であり，係数を bk として

ϕi (x) =i∑

bk x k(16)k=0と書ける．ここで，右辺の和は k = 0 から i までである点に注意．また，式 (16) は特に直交多項式と呼ばれるものであり，重み付き内積による正規直交条件⟨ϕi , ϕj ⟩ = δij(17)を満たすものとする．

2.3 モーメント法
具体的に x のべき乗の関数列 {1, x, . . . , xn } から直交多項式 {ϕ0 , ϕ1 , . . . , ϕn } を作る手順を説明する．まず，正規直交関数は任意の関数を展開できるから，xj を直交多項式で展開して，
jx =j∑

ck ϕk (x)(18)

k=0とする．ここで，ck は展開係数であり，xj は j 次多項式なので，右辺の和は k = 0 から j まででよい．j < i として，式 (18) と ϕi (x) の重み付き内積を計算すると，j⟨ j ⟩ ∑x , ϕi =ck ⟨ϕk , ϕi ⟩k=0=0,(∵ k < i)(19)となる．但し，式 (17) の正規直交条件を用いた．よって，式 (19) の ϕi に式 (16) を代入すると，i∑⟨⟩x j , x k bk = 0(20)k=0となる．
ここで，重み関数 w(x) の l 次モーメント∫ bµl ≡xl w(x)dx(21)aを導入すると，式 (20) の左辺の内積は⟨ j k⟩
x ,x =∫ b∫ bj kxj+k w(x)dx = µj+kx x w(x)dx =a(22)aと書ける．よって，式 (20) はi∑
k=0µj+k bk = 0(23)3 直交多項式の例5であり，k = i の項だけ右辺に移項すると，
i−1∑µj+k bk = −µj+i bi(24)k=0となる．
式 (24) の添え字 j は j < i なので，j = 0 から i − 1 まで具体的に書き出してみると，µ0+0 b0 + µ0+1 b1 + · · · + µ0+i−1 bi−1 = −µ0+i biµ1+0 b0 + µ1+1 b1 + · · · + µ1+i−1 bi−1 = −µ1+i bi...
µi−1+0 b0 + µi−1+1 b1 + · · · + µi−1+i−1 bi−1 = −µi−1+i biとなる．これを行列の掛け算で表せば，µ0+0
 µ1+0
 ..
 .

µ0+1
µ1+1..
.

...
...
..
.




µ0+i
µ0+i−1b0 µ1+i µ1+i−1   b1   ..  = −  ..  bi..
 . 
 . .

µi−1+0µi−1+1...

µi−1+i−1

bi−1(25)µi−1+iとなる．両辺を bi で割って，bk /bi (k = 0, . . . , i − 1) を改めて bk と書けば，式 (25) はb0µ0+i b1 
 µ1+i M .  = − . 
 ..  .. bi−1となる．ここで，

(26)µi−1+iµ0+0
 µ1+0M≡ .
 ..

µ0+1µ1+1..
.

...
...
..
.


µ0+i−1µ1+i−1 


..
.

µi−1+0µi−1+1...

µi−1+i−1(27)のことをモーメント行列という．従って，全てのモーメント µl を計算すれば，式 (26) より係数bk (k = 0, . . . , i − 1) が求まり，直交多項式 (16) が求められる．

3 直交多項式の例
モーメント法を用いて，実際に直交多項式を求める．そのために，l 次モーメントに含まれる重み関数 w(x) と積分区間 a ≤ x ≤ b を指定しなければならない．以下，重み関数と積分区間を具体的に与えて，直交多項式をいくつか計算してみよう．

3 直交多項式の例

63.1 ルジャンドル多項式
式 (21) において，重み関数を w(x) = 1，積分区間を −1 ≤ x ≤ 1 とすると，l 次モーメントは∫ 1
xl dx(28)ϕ1 (x) = x + b0(29)µ0 b0 = −µ1(30)µl =−1となる．
まず，式 (16) と (26) で i = 1 とすると，となる（x の最高次数の係数を 1 にしている点に注意）．式 (28) によると，µ0 = 2 , µ1 = 0 と計算できるので，式 (30) より，∴ b0 = 0となる．つまり，

ϕ1 (x) = xが最初の直交多項式である．
次に，式 (16) と (26) で i = 2 とすると，ϕ2 (x) = x2 + b1 x + b0()( )( )µ0 µ1b0µ2=−µ1 µ2b1µ3(31)(32)となる（x の最高次数の係数を 1 にしている点に注意）．式 (28) によると，µ2 = 2/3 , µ3 = 0 と計算できるので，式 (32) より，

()( )
()
2 0b02/3=−0 2/3b10∴ b0 = −1,3b1 = 0となる．つまり，

ϕ2 (x) = x2 −13が２番目の直交多項式である．
以下，i = 3 以降の直交多項式も同様に求められ，得られる正規直交関数 {ϕ1 (x), ϕ2 (x), . . . } をルジャンドル多項式という．

3 直交多項式の例

73.2 ラゲール多項式式 (21) において，重み関数を w(x) = e−x ，積分区間を 0 ≤ x < ∞ とすると，l 次モーメントは∫ ∞xl e−x dx(33)µl = Γ(l + 1) = l!

(34)

µl =0となる．これはガンマ関数の定義を使うと，となる点に注意しよう．
先程と同様に，式 (16) と (26) で i = 1 とすると，

ϕ1 (x) = x + b0(35)µ0 b0 = −µ1(36)となる．式 (34) によると，µ0 = 1 , µ1 = 1 なので，式 (36) より，∴ b0 = −1となる．つまり，

ϕ1 (x) = x − 1が得られる．また，式 (16) と (26) で i = 2 とすると，

ϕ2 (x) = x2 + b1 x + b0()( )( )µ0 µ1b0µ2=−µ1 µ2b1µ3(37)(38)となり，式 (34) によると，µ2 = 2 , µ3 = 6 なので，式 (38) より，(1 11 2)( )( )b02=−b16∴ b0 = 2 ,b1 = −4となる．つまり，

ϕ2 (x) = x2 − 4x + 2が得られる．以下，i = 3 以降も同様に求められ，得られる直交多項式 {ϕ1 (x), ϕ2 (x), . . . } をラゲール多項式という．