6. 補間 (1) ラグランジュ補間, 直交多項式補間, エルミート補間

目次

補間 (1): ラグランジュ補間, 直交多項式補間, エルミート補間
補間 (2): スプライン補間 (未完)
補間 (3): 実用ルーチンのベンチマーク (実用ルーチンの選択, 性能比較) (未完)

※※ 暫定版 ※※
本章は未完成ですが, 「9. 数値積分 (1)」の説明で参照される情報が含まれている部分のみ先行して公開しています.

ラグランジュ補間公式直交多項式補間公式

ラグランジュ補間公式

区間 K = [a, b] 内に与えられたn個の異なる点 x1, x2, …, xn における値がその点におけるf(x)の値 f(x1), f(x2), …, f(xn) に一致するような近似式 fn(x) をf(x)の補間式という. これらn個の点を標本点あるいは補間点という.

ラグランジュ補間公式

補間式を多項式とすると, 次のようにn-1次多項式を一意に定めることができる.

  
  fn(x) = Σf(xk)Lk(n-1)(x)  (k = 1~n)
  Lk(n-1)(x)
    = Fn(x)/((x - xk)F'n(xk))

  ただし
    Fn(x) = (x - x1)(x - x2)...(x - xn)
    F'n(xk) = (xk - x1)...(xk - xk-1)(xk - xk+1)...(xk - xn)

 
これをラグランジュ補間公式という. また, Lk(n-1)(x)をラグランジュ補間係数という.

ラグランジュ補間公式は標本点の並んでいる順序に関係なく成り立つ.

ニュートンの補間公式

ラグランジュ補間公式を, 1, (x – x1), (x – x1)(x – x2), ・・・ について展開した次の式をニュートンの補間公式という. すでに求めた補間式に新たに標本点を1つ追加するとき, ラグランジュ補間公式では全部計算し直す必要があるが, ニュートン補間公式では1つの項を追加するだけでよい.

  
  fn(x) = f[x1] + f[x1, x2](x - x1) + f[x1, x2, x3](x - x1)(x - x2) + ... + f[x1, x2, x3, ..., xn](x - x1)(x - x2)・・・(x - xn-1)

 
ここで, f[x1, x2, x3, …, xk] をf(x)のk階の差分商といい, 次のように定義される.

  
  f[x] = f(x)
  f[x1, x2, ..., xk, x]
    = (f[x1, x2, ..., xk-1, x] - f[x1, x2, ..., xk-1, xk])/(x - xk)

 
ニュートン補間公式は標本点の並んでいる順序に関係なく成り立つ.

直交多項式補間

直交多項式

区間 [a, b] および密度関数 w(x) が与えられているとき, 次式を満たす多項式系 {pk(x)} を直交多項式系という.

  
  ∫ pj(x)pk(x)w(x)dx [a, b] =
    λk > 0 (j = k)
    0       (j ≠ k)

 
μk を展開形の xk の係数とする. 0次の多項式すなわち μ0 は正定数とする.

  
  pn(x) = μ0 + μ1x + μ2x2 + ・・・ + μnxn 
  μ0 > 0

 
次のような直交多項式がよく知られている.

直交多項式 定義(ロドリーグの公式) [a, b] w(x) λn μn
ルジャンドル多項式 Pn(x) = 1/(2nn!)(dn/dxn)(x2 – 1)n [-1, 1] 1 2/(2n + 1) Π(2k – 1)/k (k = 1~N)
チェビシェフ多項式 Tn(x) = (1 – x2)1/2/((-2)n(1/2)n)(dn/dxn)(1 – x2)n-1/2 [-1, 1] (1 – x2)-1/2 π/2 (n > 0), π (n = 0)) 2n-1(n > 0), 1 (n = 0)
ラゲール多項式 Ln(x) = (1/(n!exp(-x))(dn/dxn)exp(-x)xn [0, +∞] exp(-x) 1 (-1)n/n!
エルミート多項式 Hn(x) = (1/((-1)nexp(-x2))(dn/dxn)exp(-x2) [-∞, +∞] exp(-x2) π1/22nn! 2n
注1 – チェビシェフ多項式は Tn(x) = cos(nt) (ただし x = cos(t)) という定義も一般的.
注2 – (a)x はポッホハマー記号を表す.

直交多項式 pn(x) (n ≧ 1) のゼロ点はすべて異なり, 区間 K = [a, b] 内に存在する.

直交多項式系 {pn(x)} には次の漸化式が存在する.

  
  pk(x) = (αkx + βk)pk-1(x) - γkpk-2(x)  (k = 1, 2, ... )

  ただし
  p-1 = 0

 
各係数は次のように与えられる.

  
  αk = μkk-1
  βk = -αk(xpk-1 . pk-1)/λk-1
  γk = αk(xpk-1 . pk-2)/λk-2 = μkμk-2λk-1/(μk-12λk-2)

 
主な直交多項式の漸化式およびその導関数の漸化式を以下に示す.

直交多項式 漸化式 導関数
ルジャンドル多項式 (n+1)Pn+1(x) = (2n + 1)xPn(x) – nPn-1(x), P1(x) = x, P0(x) = 1 (x2 – 1)P’n(x) = nxPn(x) – nPn-1(x)
チェビシェフ多項式 Tn+1(x) = 2xTn(x) – Tn-1(x), T1(x) = x, T0(x) = 1 T’n(x) = -(n/(2(1 – x2)))(Tn+1(x) – Tn-1(x))
ラゲール多項式 (n + 1)Ln+1(x) = (2n + 1 – x)Ln(x) – nLn-1(x), L1(x) = 1 – x, L0(x) = 1 xL’n(x) = n(Ln(x) – Ln-1(x))
エルミート多項式 Hn+1(x) = 2xHn(x) – 2nHn-1(x), H1(x) = 2x, H0(x) = 1 H’n(x) = 2nHn-1(x)
それぞれのxのべきの展開形は次のとおりである.

直交多項式 展開形
ルジャンドル多項式 Pn(x) = (1/2n)Σ(-1)kC(n, k)C(2n-2k, n) xn-2k (k = 0~floor(n/2))
チェビシェフ多項式 Tn(x) = (n!/(1/2)n)Σ(n)l(l + 1/2)n-l/(l!(n – l)!)((x – 1)/2)l  (l = 0~n)
ラゲール多項式 Ln(x) = n!Σ(-1)k/((n – k)!(k!)2) xk (k = 0~n)
エルミート多項式 Hn(x) = n!Σ(-1)k/(k!(n – 2k)! (2x)n-2k (k = 0~floor(n/2))
注 – C(n, k) は二項係数を表す(C(n, k) = n!/(k!(n – k)!)).

直交多項式補間

次数nの直交多項式 pn(x) のゼロ点を標本点とするラグランジュ補間を考える. 直交性より次式の Pj(n-1)(x) はラグランジュ補間係数となっている.

  
  Pj(n-1)(x) = wjΣpk(xj)pk(x)/λk  (k = 0~n-1)

  ただし
  1/wj = Σ{pk(xj)}2k  (k = 0~n-1)
      = μn-1/(μnλn-1)pn-1(xj)p'n(xj)

 
これより次の直交多項式補間が得られる.

  
  fn(x) = Σf(xj)Pj(n-1)(x)  (j = 1~n)
    = Σ(1/λk){Σwjpk(xj)f(xj) (j = 1~n)}pk(x)  (k = 0~n-1)

 


参考文献

[1] 森正武「数値解析 (第2版)」(2002) 共立出版
[2] “NIST Handbook of Mathematical Functions”, May 2010