Web教材一覧>
数値解析
(BOK大区分:1 基礎理論、中区分:2 アルゴリズムとプログラミング、中区分:2 アルゴリズム)
数値解析、補間、ラグランジュの補間多項式
右図のように、n+1個の点(黒点)(x0,y0),(x1,y1),(x2,y2),・・・,(xn,yn)が与えられているとき、その点を通るなめらかな曲線をひき、x0~xnの間の値xにおける点(赤点)のyの値を求めることを補間といいます。
n+1個の点を通る曲線は多様ですが、最も単純なのはn次式、
y=a0+a1x+a2x2+・・・+anxn
です。
そして、n+1個の点をn次式で補間するポピュラーな方法にラグランジュの補間多項式があります。
最も単純なのは、2点(x0,y0),(x1,y1)が与えられ、1次式により、x0~x1の間xに対するyを求める場合です。
2点(x0,y0),(x1,y1)を通る直線は、
y1-y0
y=────(x-x0)+y0
x1-x0
です。これを変形すると、次の式が得られます。
x-x1 x-x0
y=───×y0+───×y1
x0-x1 x1-x0
例えば、2点を(1,3)と(4,7)とし、x=3とすると、
x-x1 3-4 1 x-x0 3-1 14
───×y0=───×1=─、 ───×y1=───×7=──
x1-x0 1-4 3 x1-x0 4-1 3
ですから、求めるyは
1 14
y=─+──=5
3 3
になります。
これをn次式に一般化して、
y=L0y0+L1y1+L2y2+・・・+Lnyn
としたときの、Lkは、次の式になります。

例えば2点、1次式のときはn=1ですから、上の式でx2以上のものがある項は不要です。
ここで仮に、上の「kの項がない」ことを無視して書くと次のようになります。
(x-x0)(x-x1)
L=────────
(xk-x0)(xk-x1)
L0(k=0)では、このL式のkを0と書き変えれば、
(x-x0)(x-x1) (x-x0)
L0=──────── となりますが、k項、すなわち、──── を除くので、
(x0-x0)(x0-x1) (x0-x0)
正しいL0は
x-x1
L0=────
x0-x1
になります。
同様に、L1は、次のようになります。
(x-x0)(x-x1) x-x0
L1=────────=────
(x1-x0)(x1-x1) x1-x0
すなわち、yの値は次式で求められます。
x-x1 x-x0
y=───×y0+───×y1
x0-x1 x1-x0
これは、前述の「1次式での補間」で示した結果と一致します。
●問題
3点 (2,1),(3,0),(5,4) が与えられたとき、2次のラグランジュの補間多項式を用いて、x=4 のときのyを求めよ。
●解答
(x-x0) (x-x1) (x-x2) (x-x1) (x-x2) (4-3)×(4-5) -1
L0=────────────=────────=──────=──
(x0-x0)(x0-x1)(x0-x2) (x0-x1)(x0-x2) (2-3)×(2-5) 3
(x-x0) (x-x1) (x-x2) (x-x0) (x-x2) (4-2)×(4-5)
L1=────────────=────────=──────=1
(x1-x0)(x1-x1)(x1-x2) (x1-x0)(x1-x2) (3-2)×(3-5)
(x-x0) (x-x1) (x-x2) (x-x0) (x-x1) (4-2)×(4-3) 1
L2=────────────=────────=──────=──
(x2-x0)(x2-x1)(x2-x2) (x2-x0)(x2-x1) (5-2)×(5-3) 3
1 1
y=-─×1+1×0+─×4=1
3 3
n+1個の点をn次式で補間するのは、nが大きくなると、
・計算量が増大するだけでなく、
・右図(赤線、点A)のように、実務的ではない補間値になる
欠点があります。
それで、あえて全体を一つの式で表すのではなく、補間すべき周辺の数点だけを用いて、低次元の式(青線)で補間を行う(B点)ことがよく行われます。
その際、xの近傍の点の小さい側と大きい側が同じ(1次式や3次式を用いる)ならば、問題はないのですが、2次式を用いるときは、小さいほうが1点で大きいほうが2点の場合(a)と、小さいほうが2点で大きいほうが1点の場合(b)の2つの曲線が候補になります。
このような場合には、aとbの両方で計算して、重みづけをして平均をとるなどの方法も用いられます。