← 戻る ライブラリ › 応用数学と計算数学 › 数値解析学 応用数学と計算数学
補間と近似 与えられたデータ点を通る、あるいは複雑な関数に近い関数を構成すること。
直観 直感:点を曲線でつなぐ 気象観測所が1日のうちの数回、気温を記録したり、センサーがいくつかの離散的な測定値を報告したり、技術者がわずかな表形式の値しか持たない場合を考えよう——いずれの場合も、有限個の点 ( x 0 , y 0 ) , ( x 1 , y 1 ) , … , ( x n , y n ) (x_0,y_0), (x_1,y_1), \dots, (x_n,y_n) ( x 0 , y 0 ) , ( x 1 , y 1 ) , … , ( x n , y n ) のリストがあり、その間の値を推測したり、それらすべてを通る滑らかな曲線を描きたいと考える。補間とは、これらの各点を正確に通る関数を構成する技術であり、より広い意味での近似は、点ごとに一致させる必要はなく、複雑な関数に近い関数を求めることである。
この3次曲線 P ( x ) = x 3 − x 2 − 2 x + 2 P(x)=x^3-x^2-2x+2 P ( x ) = x 3 − x 2 − 2 x + 2 は、4点 ( − 1 , 2 ) (-1,2) ( − 1 , 2 ) 、( 0 , 2 ) (0,2) ( 0 , 2 ) 、( 1 , 0 ) (1,0) ( 1 , 0 ) 、( 2 , 2 ) (2,2) ( 2 , 2 ) を通る次数 3 3 3 以下の唯一の多項式である:a , b , c , d a,b,c,d a , b , c , d をドラッグして、たった4つの係数が4つのデータ点を通る曲線を決めるのにちょうど十分であることを観察せよ——これが多項式補間の本質である。 大学 定義:補間問題 定義: 多項式補間
n + 1 n+1 n + 1 個の相異なる節点 x 0 , x 1 , … , x n x_0, x_1, \dots, x_n x 0 , x 1 , … , x n と値 y 0 , y 1 , … , y n y_0, y_1, \dots, y_n y 0 , y 1 , … , y n (通常はある関数 f f f について y i = f ( x i ) y_i=f(x_i) y i = f ( x i ) )が与えられたとき、補間問題はすべての i i i について P ( x i ) = y i P(x_i)=y_i P ( x i ) = y i を満たす次数 n n n 以下の多項式 P P P を求めることである。ラグランジュ基底多項式 L i L_i L i は明示的な構成法を与える。
L i ( x ) = ∏ j ≠ i x − x j x i − x j L_i(x) = \prod_{j \ne i} \dfrac{x - x_j}{x_i - x_j} L i ( x ) = j = i ∏ x i − x j x − x j 各基底多項式 L i L_i L i は、他のすべての節点で0になり、自分自身の節点で 1 1 1 になるように作られている:j ≠ i j\ne i j = i のとき x = x j x=x_j x = x j を代入すると分子の因子 ( x j − x j ) = 0 (x_j-x_j)=0 ( x j − x j ) = 0 となり L i ( x j ) = 0 L_i(x_j)=0 L i ( x j ) = 0 、一方 x = x i x=x_i x = x i を代入すると分子と分母が一致し L i ( x i ) = 1 L_i(x_i)=1 L i ( x i ) = 1 となる。これらの構成要素を目標値で重み付けして足し合わせると、補間多項式が直接得られる。
P ( x ) = ∑ i = 0 n y i L i ( x ) P(x) = \sum_{i=0}^{n} y_i\, L_i(x) P ( x ) = i = 0 ∑ n y i L i ( x ) 補間・近似法の比較 方法 考え方 節点をまたぐ滑らかさ 弱点 ラグランジュ すべての節点を通る単一の多項式 P ( x ) = ∑ i y i L i ( x ) P(x)=\sum_i y_i L_i(x) P ( x ) = ∑ i y i L i ( x ) 無限に滑らか(1つの多項式なので) 等間隔節点での高次多項式は激しく振動する(ルンゲ現象) ニュートンの差分商 ラグランジュと同じ多項式を節点ごとに逐次構成する 無限に滑らか(同じ多項式) 節点の追加は安価だが、同じ高次振動の問題を抱える 自然3次スプライン 区分的3次関数、各小区間ごとに1つの3次式を滑らかに接続 C 2 C^2 C 2 (2階導関数まで連続)単一の大域的な公式は存在せず、各区間について線形方程式系を解く必要がある
大学 重要な定理 n + 1 n+1 n + 1 個の相異なる節点 x 0 , x 1 , … , x n x_0, x_1, \dots, x_n x 0 , x 1 , … , x n と値 y 0 , y 1 , … , y n y_0, y_1, \dots, y_n y 0 , y 1 , … , y n が与えられたとき、すべての i = 0 , … , n i=0,\dots,n i = 0 , … , n について P ( x i ) = y i P(x_i)=y_i P ( x i ) = y i を満たす次数 n n n 以下の多項式 P P P がちょうど1つ存在する。
なぜ正しいのか? n次多項式にはちょうどn+1個の自由な係数があり、n+1個の点の値を固定することはちょうどそれだけの自由度を使い切る——多くも少なくもない——ため、1つの解が入る余地はあっても、異なる2つの解が入る余地はない。
証明 ステップ1(存在)。ラグランジュ構成 P ( x ) = ∑ i = 0 n y i L i ( x ) P(x) = \sum_{i=0}^{n} y_i L_i(x) P ( x ) = ∑ i = 0 n y i L i ( x ) (L i ( x ) = ∏ j ≠ i x − x j x i − x j L_i(x) = \prod_{j\ne i} \dfrac{x-x_j}{x_i-x_j} L i ( x ) = ∏ j = i x i − x j x − x j )はすでにすべての k k k について P ( x k ) = y k P(x_k)=y_k P ( x k ) = y k を満たす。なぜなら L i ( x k ) L_i(x_k) L i ( x k ) は i = k i=k i = k のとき 1 1 1 、それ以外のとき 0 0 0 となり、和は単一の項 y k ⋅ 1 = y k y_k \cdot 1 = y_k y k ⋅ 1 = y k に潰れるからである。よって少なくとも1つの有効な P P P が存在し、各 L i L_i L i はちょうど次数 n n n (n n n 個の1次因子の積)を持つので、P P P の次数は n n n 以下である。
ステップ2(2つの解を仮定する)。Q Q Q を、すべての i i i について Q ( x i ) = y i Q(x_i)=y_i Q ( x i ) = y i を満たす次数 n n n 以下の別の任意の多項式とする。差 D ( x ) = P ( x ) − Q ( x ) D(x) = P(x) - Q(x) D ( x ) = P ( x ) − Q ( x ) を考える。P P P と Q Q Q がともに次数 n n n 以下なので、D D D もそうである。
ステップ3(差の根を数える)。各節点 x i x_i x i に対し D ( x i ) = P ( x i ) − Q ( x i ) = y i − y i = 0 D(x_i) = P(x_i)-Q(x_i) = y_i - y_i = 0 D ( x i ) = P ( x i ) − Q ( x i ) = y i − y i = 0 。n + 1 n+1 n + 1 個の相異なる節点 x 0 , x 1 , … , x n x_0, x_1, \dots, x_n x 0 , x 1 , … , x n があるので、D D D は少なくとも n + 1 n+1 n + 1 個の相異なる根を持つ。
ステップ4(Dが恒等的に0であることを示す)。次数 n n n 以下の非零多項式は多くとも n n n 個の根しか持てない(各根は1つの1次因子を与え、次数 n n n の多項式はそのような因子を n n n 個より多く含みえない)。D D D は n + 1 n+1 n + 1 個の根を持ち、これはその次数が許す数を超えるので、D D D が零多項式でない限り矛盾する。よって D ( x ) ≡ 0 D(x)\equiv0 D ( x ) ≡ 0 、すなわち Q = P Q=P Q = P である。したがってステップ1で見つけた補間多項式は唯一である。
f f f が相異なる節点 x 0 , x 1 , … , x n x_0, x_1, \dots, x_n x 0 , x 1 , … , x n と点 x x x を含む区間上で ( n + 1 ) (n+1) ( n + 1 ) 回連続微分可能であり、P P P がこれらの節点で f f f を補間する次数 n n n の多項式であるとする。このとき、その区間内にある ξ \xi ξ が存在して f ( x ) − P ( x ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! ∏ i = 0 n ( x − x i ) f(x) - P(x) = \dfrac{f^{(n+1)}(\xi)}{(n+1)!} \prod_{i=0}^{n} (x - x_i) f ( x ) − P ( x ) = ( n + 1 )! f ( n + 1 ) ( ξ ) ∏ i = 0 n ( x − x i ) を満たす。
なぜ正しいのか? 補間多項式は節点ではfと正確に一致するが、節点の間ではfについて何も知らない。そのため残りの誤差はすべての節点で消えなければならない——まさに積の項が強制すること——であり、それは次数nの多項式が捉えきれないfの曲がり具合を測る残りの導関数によってスケールされる。
証明 ステップ1(巧妙な補助関数)。節点のいずれでもない点 x x x を固定する(節点であれば誤差は自明に 0 0 0 )。w ( t ) = ∏ i = 0 n ( t − x i ) w(t) = \prod_{i=0}^{n} (t - x_i) w ( t ) = ∏ i = 0 n ( t − x i ) とし、定数 c = f ( x ) − P ( x ) w ( x ) c = \dfrac{f(x)-P(x)}{w(x)} c = w ( x ) f ( x ) − P ( x ) (w ( x ) ≠ 0 w(x)\ne0 w ( x ) = 0 なので well-defined)を定義する。補助関数 g ( t ) = f ( t ) − P ( t ) − c w ( t ) g(t) = f(t) - P(t) - c\, w(t) g ( t ) = f ( t ) − P ( t ) − c w ( t ) を定義する。
ステップ2(gの根を数える)。各節点 x i x_i x i において、補間の性質より f ( x i ) − P ( x i ) = 0 f(x_i)-P(x_i)=0 f ( x i ) − P ( x i ) = 0 、かつ w w w の定義より w ( x i ) = 0 w(x_i)=0 w ( x i ) = 0 なので、すべての n + 1 n+1 n + 1 個の節点で g ( x i ) = 0 g(x_i)=0 g ( x i ) = 0 となる。また c c c の選び方により g ( x ) = f ( x ) − P ( x ) − c w ( x ) = f ( x ) − P ( x ) − [ f ( x ) − P ( x ) ] = 0 g(x) = f(x)-P(x) - c\,w(x) = f(x)-P(x) - [f(x)-P(x)] = 0 g ( x ) = f ( x ) − P ( x ) − c w ( x ) = f ( x ) − P ( x ) − [ f ( x ) − P ( x )] = 0 である。よって g g g は n + 2 n+2 n + 2 個の相異なる根を持つ:n + 1 n+1 n + 1 個の節点と x x x 自身である。
ステップ3(ロルの定理を繰り返し適用する)。g g g の連続する根の各組の間(n + 2 n+2 n + 2 個の根の間に n + 1 n+1 n + 1 個のそのような間隔がある)で、ロルの定理により g ′ g' g ′ が消える点が存在するので、g ′ g' g ′ は少なくとも n + 1 n+1 n + 1 個の根を持つ。この議論を g ′ , g ′ ′ , … g', g'', \dots g ′ , g ′′ , … に繰り返し適用すると、微分するたびに根が1つずつ失われるので、n + 1 n+1 n + 1 回適用した後、g ( n + 1 ) g^{(n+1)} g ( n + 1 ) はその区間内に少なくとも1つの根 ξ \xi ξ を持つ。
ステップ4(微分して誤差を解く)。P P P の次数は n n n 以下なので、その ( n + 1 ) (n+1) ( n + 1 ) 階導関数は 0 0 0 である;また w w w は次数 n + 1 n+1 n + 1 のモニック多項式なので、すべての t t t について w ( n + 1 ) ( t ) = ( n + 1 ) ! w^{(n+1)}(t) = (n+1)! w ( n + 1 ) ( t ) = ( n + 1 )! である。g g g を微分すると g ( n + 1 ) ( t ) = f ( n + 1 ) ( t ) − 0 − c ( n + 1 ) ! g^{(n+1)}(t) = f^{(n+1)}(t) - 0 - c\,(n+1)! g ( n + 1 ) ( t ) = f ( n + 1 ) ( t ) − 0 − c ( n + 1 )! となり、g ( n + 1 ) ( ξ ) = 0 g^{(n+1)}(\xi)=0 g ( n + 1 ) ( ξ ) = 0 とおくと c = f ( n + 1 ) ( ξ ) ( n + 1 ) ! c = \dfrac{f^{(n+1)}(\xi)}{(n+1)!} c = ( n + 1 )! f ( n + 1 ) ( ξ ) が得られる。c = f ( x ) − P ( x ) w ( x ) c=\dfrac{f(x)-P(x)}{w(x)} c = w ( x ) f ( x ) − P ( x ) を思い出して誤差について解くと、まさに f ( x ) − P ( x ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! ∏ i = 0 n ( x − x i ) f(x) - P(x) = \dfrac{f^{(n+1)}(\xi)}{(n+1)!} \prod_{i=0}^{n} (x - x_i) f ( x ) − P ( x ) = ( n + 1 )! f ( n + 1 ) ( ξ ) ∏ i = 0 n ( x − x i ) が得られる。
x 0 < x 1 < ⋯ < x n x_0<x_1<\dots<x_n x 0 < x 1 < ⋯ < x n を満たす n + 1 n+1 n + 1 個の点 ( x 0 , y 0 ) , … , ( x n , y n ) (x_0,y_0),\dots,(x_n,y_n) ( x 0 , y 0 ) , … , ( x n , y n ) が与えられたとき、各小区間 [ x i , x i + 1 ] [x_i,x_{i+1}] [ x i , x i + 1 ] 上で3次多項式であり、[ x 0 , x n ] [x_0,x_n] [ x 0 , x n ] 全体で2回連続微分可能であり、すべての i i i について S ( x i ) = y i S(x_i)=y_i S ( x i ) = y i を満たし、自然境界条件 S ′ ′ ( x 0 ) = S ′ ′ ( x n ) = 0 S''(x_0)=S''(x_n)=0 S ′′ ( x 0 ) = S ′′ ( x n ) = 0 を満たす唯一の関数 S S S が存在する。
なぜ正しいのか? 多くの点を通る単一の高次多項式は波打つ傾向があるが、多くの緩やかな3次片をつなぎ合わせ、継ぎ目で滑らかに一致することだけを要求すると、激しい振動なしにデータに適合するのにちょうど十分な自由度が得られ、自然境界条件は系全体を解けるようにするために必要なちょうど2つの追加の方程式を与える。
証明 ステップ1(未知数:各節点での2階導関数)。i = 0 , … , n i=0,\dots,n i = 0 , … , n について M i = S ′ ′ ( x i ) M_i = S''(x_i) M i = S ′′ ( x i ) とする。自然境界条件により直ちに M 0 = 0 M_0=0 M 0 = 0 と M n = 0 M_n=0 M n = 0 が定まり、残り n − 1 n-1 n − 1 個の未知数 M 1 , … , M n − 1 M_1,\dots,M_{n-1} M 1 , … , M n − 1 を決定すればよい。
ステップ2(各3次片をM値から再構成する)。[ x i , x i + 1 ] [x_i,x_{i+1}] [ x i , x i + 1 ] 上では、S S S が3次なので S ′ ′ S'' S ′′ は線形であり、( x i , M i ) (x_i,M_i) ( x i , M i ) と ( x i + 1 , M i + 1 ) (x_{i+1},M_{i+1}) ( x i + 1 , M i + 1 ) を通る直線でなければならない。この線形関数を2回積分し、S ( x i ) = y i S(x_i)=y_i S ( x i ) = y i と S ( x i + 1 ) = y i + 1 S(x_{i+1})=y_{i+1} S ( x i + 1 ) = y i + 1 を用いて2つの積分定数を固定すると、その区間上の S S S が M i , M i + 1 , y i , y i + 1 M_i, M_{i+1}, y_i, y_{i+1} M i , M i + 1 , y i , y i + 1 と間隔 h i = x i + 1 − x i h_i=x_{i+1}-x_i h i = x i + 1 − x i によって完全に決まる。よってすべての M i M_i M i が分かれば S S S は完全に決まる。
ステップ3(傾きを一致させると線形方程式系が得られる)。構成により S S S と S ′ ′ S'' S ′′ はすでに各節点で連続である。各内部節点 x i x_i x i (i = 1 , … , n − 1 i=1,\dots,n-1 i = 1 , … , n − 1 )で1階導関数 S ′ S' S ′ も両側から一致することを要求すると、内部節点ごとに連続する3つの未知数を関連づける線形方程式が1つ得られる:h i − 1 M i − 1 + 2 ( h i − 1 + h i ) M i + h i M i + 1 = 6 ( y i + 1 − y i h i − y i − y i − 1 h i − 1 ) h_{i-1} M_{i-1} + 2(h_{i-1}+h_i) M_i + h_i M_{i+1} = 6\left(\dfrac{y_{i+1}-y_i}{h_i} - \dfrac{y_i-y_{i-1}}{h_{i-1}}\right) h i − 1 M i − 1 + 2 ( h i − 1 + h i ) M i + h i M i + 1 = 6 ( h i y i + 1 − y i − h i − 1 y i − y i − 1 ) 。これにより n − 1 n-1 n − 1 個の未知数 M 1 , … , M n − 1 M_1,\dots,M_{n-1} M 1 , … , M n − 1 (M 0 = M n = 0 M_0=M_n=0 M 0 = M n = 0 を用いて)についての n − 1 n-1 n − 1 個の線形方程式が得られる。
ステップ4(系は唯一の解を持つ)。この系の係数行列は三重対角であり、対角成分は 2 ( h i − 1 + h i ) 2(h_{i-1}+h_i) 2 ( h i − 1 + h i ) 、非対角成分は h i − 1 h_{i-1} h i − 1 と h i h_i h i である;すべての間隔について h i > 0 h_i>0 h i > 0 なので 2 ( h i − 1 + h i ) > h i − 1 + h i 2(h_{i-1}+h_i) > h_{i-1}+h_i 2 ( h i − 1 + h i ) > h i − 1 + h i が成り立ち、この行列は狭義優対角であり、狭義優対角行列は常に正則である。よって M 1 , … , M n − 1 M_1,\dots,M_{n-1} M 1 , … , M n − 1 についての線形系はちょうど1つの解を持ち、ステップ2によりこれはちょうど1つのスプライン S S S を定めるので、存在と一意性の両方が証明される。
大学 実世界での応用と具体例 補間は、データがサンプリングされているが連続曲線が必要とされるあらゆる場所に存在する:コンピュータフォントやアニメーションのパスはスプラインで描かれ、GPS受信機はわずかな衛星の読み取り値を滑らかな軌道に補間し、画像や音声のリサンプリングはリサイズや再生速度変更時にピクセルやサンプルの間を補間し、技術者はわずかな温度や圧力でしか測定されていない材料特性や熱力学データの疎な表を補間する。金融アナリストは、わずかな満期でしか観測されない債券価格からイールドカーブを補間し、その間の満期を持つ商品を価格付けする。
例: ラグランジュ補間による3つの測定値からの傾向予測
ある研究室が3つの測定値 ( 0 , 1 ) (0,1) ( 0 , 1 ) 、( 1 , 3 ) (1,3) ( 1 , 3 ) 、( 2 , 7 ) (2,7) ( 2 , 7 ) を記録した。これら3点を通るラグランジュ補間多項式を用いて、x = 3 x=3 x = 3 での値を推定せよ。
解答 ステップ1:x = 3 x=3 x = 3 で評価した3つの基底多項式を書く。節点 x 0 = 0 , x 1 = 1 , x 2 = 2 x_0=0,x_1=1,x_2=2 x 0 = 0 , x 1 = 1 , x 2 = 2 について:L 0 ( 3 ) = ( 3 − 1 ) ( 3 − 2 ) ( 0 − 1 ) ( 0 − 2 ) = 2 2 = 1 L_0(3)=\dfrac{(3-1)(3-2)}{(0-1)(0-2)}=\dfrac{2}{2}=1 L 0 ( 3 ) = ( 0 − 1 ) ( 0 − 2 ) ( 3 − 1 ) ( 3 − 2 ) = 2 2 = 1 、L 1 ( 3 ) = ( 3 − 0 ) ( 3 − 2 ) ( 1 − 0 ) ( 1 − 2 ) = 3 − 1 = − 3 L_1(3)=\dfrac{(3-0)(3-2)}{(1-0)(1-2)}=\dfrac{3}{-1}=-3 L 1 ( 3 ) = ( 1 − 0 ) ( 1 − 2 ) ( 3 − 0 ) ( 3 − 2 ) = − 1 3 = − 3 、L 2 ( 3 ) = ( 3 − 0 ) ( 3 − 1 ) ( 2 − 0 ) ( 2 − 1 ) = 6 2 = 3 L_2(3)=\dfrac{(3-0)(3-1)}{(2-0)(2-1)}=\dfrac{6}{2}=3 L 2 ( 3 ) = ( 2 − 0 ) ( 2 − 1 ) ( 3 − 0 ) ( 3 − 1 ) = 2 6 = 3 。
ステップ2:各基底値をそのデータ値で重み付けする。値は y 0 = 1 , y 1 = 3 , y 2 = 7 y_0=1, y_1=3, y_2=7 y 0 = 1 , y 1 = 3 , y 2 = 7 なので、推定値は P ( 3 ) = y 0 L 0 ( 3 ) + y 1 L 1 ( 3 ) + y 2 L 2 ( 3 ) = 1 ( 1 ) + 3 ( − 3 ) + 7 ( 3 ) P(3) = y_0 L_0(3) + y_1 L_1(3) + y_2 L_2(3) = 1(1) + 3(-3) + 7(3) P ( 3 ) = y 0 L 0 ( 3 ) + y 1 L 1 ( 3 ) + y 2 L 2 ( 3 ) = 1 ( 1 ) + 3 ( − 3 ) + 7 ( 3 ) である。
ステップ3:合計する。P ( 3 ) = 1 − 9 + 21 = 13 P(3) = 1 - 9 + 21 = 13 P ( 3 ) = 1 − 9 + 21 = 13 。
ステップ4:明示的な多項式で検算する。3点を通る2次多項式を直接解くと P ( x ) = x 2 + x + 1 P(x)=x^2+x+1 P ( x ) = x 2 + x + 1 が得られ、実際 P ( 3 ) = 9 + 3 + 1 = 13 P(3)=9+3+1=13 P ( 3 ) = 9 + 3 + 1 = 13 となり、多項式の係数を一切明示的に書かずにラグランジュ形式の計算が確認できる。
例: 端付近で補間誤差が爆発する理由:ルンゲ現象への第一歩
[ − 1 , 1 ] [-1,1] [ − 1 , 1 ] 上の 5 5 5 個の等間隔節点 x 0 = − 1 , x 1 = − 0.5 , x 2 = 0 , x 3 = 0.5 , x 4 = 1 x_0=-1, x_1=-0.5, x_2=0, x_3=0.5, x_4=1 x 0 = − 1 , x 1 = − 0.5 , x 2 = 0 , x 3 = 0.5 , x 4 = 1 を取る。中心付近の点 x = 0.1 x=0.1 x = 0.1 と端付近の点 x = 0.9 x=0.9 x = 0.9 において節点多項式 w ( x ) = ∏ i = 0 4 ( x − x i ) w(x)=\prod_{i=0}^{4}(x-x_i) w ( x ) = ∏ i = 0 4 ( x − x i ) を計算し、その大きさを比較せよ。
解答 ステップ1:w ( 0.1 ) w(0.1) w ( 0.1 ) を計算する。w ( 0.1 ) = ( 0.1 + 1 ) ( 0.1 + 0.5 ) ( 0.1 − 0 ) ( 0.1 − 0.5 ) ( 0.1 − 1 ) = ( 1.1 ) ( 0.6 ) ( 0.1 ) ( − 0.4 ) ( − 0.9 ) w(0.1)=(0.1+1)(0.1+0.5)(0.1-0)(0.1-0.5)(0.1-1) = (1.1)(0.6)(0.1)(-0.4)(-0.9) w ( 0.1 ) = ( 0.1 + 1 ) ( 0.1 + 0.5 ) ( 0.1 − 0 ) ( 0.1 − 0.5 ) ( 0.1 − 1 ) = ( 1.1 ) ( 0.6 ) ( 0.1 ) ( − 0.4 ) ( − 0.9 ) であり、これを展開すると 0.02376 0.02376 0.02376 となる。
ステップ2:w ( 0.9 ) w(0.9) w ( 0.9 ) を計算する。w ( 0.9 ) = ( 0.9 + 1 ) ( 0.9 + 0.5 ) ( 0.9 − 0 ) ( 0.9 − 0.5 ) ( 0.9 − 1 ) = ( 1.9 ) ( 1.4 ) ( 0.9 ) ( 0.4 ) ( − 0.1 ) w(0.9)=(0.9+1)(0.9+0.5)(0.9-0)(0.9-0.5)(0.9-1) = (1.9)(1.4)(0.9)(0.4)(-0.1) w ( 0.9 ) = ( 0.9 + 1 ) ( 0.9 + 0.5 ) ( 0.9 − 0 ) ( 0.9 − 0.5 ) ( 0.9 − 1 ) = ( 1.9 ) ( 1.4 ) ( 0.9 ) ( 0.4 ) ( − 0.1 ) であり、これを展開すると − 0.09576 -0.09576 − 0.09576 となるので ∣ w ( 0.9 ) ∣ = 0.09576 |w(0.9)|=0.09576 ∣ w ( 0.9 ) ∣ = 0.09576 。
ステップ3:比較する。0.9 0.9 0.9 と 0.1 0.1 0.1 はともに [ − 1 , 1 ] [-1,1] [ − 1 , 1 ] の内部に十分収まっているにもかかわらず、∣ w ( 0.9 ) ∣ ≈ 0.0958 |w(0.9)| \approx 0.0958 ∣ w ( 0.9 ) ∣ ≈ 0.0958 は ∣ w ( 0.1 ) ∣ ≈ 0.0238 |w(0.1)| \approx 0.0238 ∣ w ( 0.1 ) ∣ ≈ 0.0238 のおよそ 4 4 4 倍である。
ステップ4:誤差公式と結び付ける。補間誤差は f ( x ) − P ( x ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! w ( x ) f(x)-P(x)=\dfrac{f^{(n+1)}(\xi)}{(n+1)!}w(x) f ( x ) − P ( x ) = ( n + 1 )! f ( n + 1 ) ( ξ ) w ( x ) であるから、端付近で ∣ w ( x ) ∣ |w(x)| ∣ w ( x ) ∣ が大きいことは、そこでの誤差限界を直接膨らませる;f ( x ) = 1 1 + 25 x 2 f(x)=\dfrac{1}{1+25x^2} f ( x ) = 1 + 25 x 2 1 のように高階導関数が非常に速く増大する関数では、この端での増幅(等間隔節点をさらに増やすとさらに悪化する)こそが、ルンゲ現象として知られる激しい振動を生み出す原因であり、単一の等間隔多項式の次数を上げる代わりに3次スプラインや不均一な(チェビシェフ)節点を用いる動機となっている。
よくある誤り. 1つの補間多項式に等間隔のデータ点をもっと追加すれば常にフィットが改善すると考えたくなるが、鋭い特徴を持つ関数ではこれが劇的に悪化させることがある:典型例は [ − 1 , 1 ] [-1,1] [ − 1 , 1 ] 上の f ( x ) = 1 1 + 25 x 2 f(x)=\dfrac{1}{1+25x^2} f ( x ) = 1 + 25 x 2 1 であり、f f f 自体は完全に滑らかで有界であるにもかかわらず、等間隔節点を通る次数 n n n の補間多項式は n n n が大きくなるにつれて x = ± 1 x=\pm1 x = ± 1 付近で巨大な振動を発達させる。解決策は同じ節点間隔で次数を上げることではなく、3次スプラインのような区分的な方法に切り替えるか、節点を端点付近に集める(チェビシェフ節点)ことである。 歴史的ノート
ジョゼフ=ルイ・ラグランジュは1795年に補間多項式の明示的な基底多項式形式を発表し、補間多項式の存在と一意性を透明にする簡潔な閉じた公式を与えた。それ以前の数学者たち(ニュートンとその差分商形式を含む)はすでにより漸進的な方法で補間多項式を計算していたにもかかわらずである。3次スプラインと、高次補間がいつうまくいかなくなるかについての慎重な分析は、コンピュータが大規模な数値データ表を日常的なものにし、素朴な高次多項式フィッティングの失敗——カール・ルンゲの1901年の例にちなんで名付けられたルンゲ現象——が理論的な好奇心ではなく実際的な懸念となって初めて、はるかに後になって現れた。
ジョゼフ=ルイ・ラグランジュ
5 5 5 個の相異なるデータ点が与えられたとき、存在一意性定理により保証される唯一の補間多項式の次数はいくらか。
4 4 4 以下ちょうど 5 5 5 3 3 3 以下次数に上限はない ラグランジュ基底多項式 L i ( x i ) L_i(x_i) L i ( x i ) のそれ自身の節点 x i x_i x i における値はいくらか。
ある技術者が、ある材料の熱伝導率の 9 9 9 個の等間隔測定値に単一の次数 8 8 8 の多項式をフィットさせた。測定範囲の両端付近で、真の熱伝導率は滑らかに変化しているにもかかわらず、フィットした曲線は激しく振動する。標準的な解決策は何か。
単一の高次多項式を区分3次スプラインに置き換える 同じ等間隔の点を使ってさらに多項式の次数を上げる 無視する。高次補間は常により正確だから 測定値をすべてより少ない小数桁に丸める
∣ f ( n + 1 ) ( x ) ∣ ≤ M |f^{(n+1)}(x)| \le M ∣ f ( n + 1 ) ( x ) ∣ ≤ M があるところである区間上で成り立ち、節点多項式が ∣ w ( x ) ∣ ≤ W |w(x)| \le W ∣ w ( x ) ∣ ≤ W を満たすとき、ラグランジュ誤差公式は ∣ f ( x ) − P ( x ) ∣ |f(x)-P(x)| ∣ f ( x ) − P ( x ) ∣ にどんな限界を与えるか。
M W ( n + 1 ) ! \dfrac{MW}{(n+1)!} ( n + 1 )! M W M W ( n + 1 ) ! MW\,(n+1)! M W ( n + 1 )! M W ( n + 1 ) ! \dfrac{M}{W\,(n+1)!} W ( n + 1 )! M M + W M+W M + W