測定した点をすべて通る滑らかな曲線を描きたい。そのために点を増やし、より高い次数の多項式を使えば、点と点の間も正確になるように思えます。ところが、等間隔に並べた点を一つの多項式で結ぶと、点ではぴったり合っているのに、区間の端に近い場所で大きく外れることがあります。
ルンゲ現象は、多項式補間で点数を増やしたときに、こうした振れが悪化し得ることを示す例です。点を増やす効果は、その数だけでは決まりません。ここでは同じ関数を、等間隔の点と、両端に点を集めた配置で計算し、何が違うのかを見ていきます。
簡単にまとめると?
- n+1個の異なる点を通る、次数n以下の多項式は一つに定まります。ただし、点で一致することと、その間の誤差が小さいことは別です。
- 今回の滑らかな関数では、等間隔の点を11個から21個へ増やすと、評価した場所での最大誤差は約1.92から約59.8へ増えました。
- 両端を密にしたChebyshev–Lobatto点では、同じ比較で誤差が約0.132から約0.0177へ減ります。点を選べない場合は、区分的な低次補間なども候補になります。
点を通るという約束は、点の間まで及ばない
補間は、与えられた位置で与えられた値に一致する関数を作る操作です。例えば11個の異なる位置で値が分かっていれば、そのすべてを通る10次以下の多項式を一意に決められます。21個なら20次以下です。多項式とは、定数、x、x²などを係数付きで足し合わせた式です。[1][2]
次数を上げると、曲線は多くの点を通れるようになります。その一方で、区間全体を一つの式で結ぶため、ある点に合わせるための調整が遠くの形にも関わります。補間点ではずれがゼロでも、点と点の間で振れる余地が残ります。
このことは、補間多項式を各点の値の重み付き和として見ると分かりやすくなります。重みは場所xによって変わり、特定の補間点では、その点の重みだけが1、ほかは0になります。点の間では重みが負になることも、絶対値が1を超えることもあります。単純に隣の二点を混ぜているわけではありません。等間隔の高次補間では、特に端の近くで大きな重みが現れ、曲線の振れや入力誤差の増幅につながります。[1]
滑らかな山を、11点と21点で結ぶ
比較するのは、区間−1≦x≦1の関数f(x)=1/(1+25x²)です。中央x=0で1になり、両端では1/26になる、滑らかな山の形をしています。測定ノイズを加えず、この式から得た値を補間点に使います。
等間隔の場合、11点は0.2刻み、21点は0.1刻みです。それぞれを一つの10次以下、20次以下の多項式で結びました。作った曲線と元の関数の差は、区間内の2,001か所を0.001刻みで評価しています。ここでいう最大誤差はこの評価点で見つかった最大値であり、連続区間全体の厳密な最大値ではありません。
11点の最大絶対誤差は約1.92でした。21点へ増やすと約59.8になり、評価点の一つx=−0.975付近で大きく外れます。元の関数が0から1の間に収まるのに、補間曲線は端の近くで大きく負の側へ振れています。端点そのものも補間点なので、x=−1とx=1では正しい値に戻ります。問題は、端点とその隣の点の間にも現れるのです。

同じ点数でも、両端を密にすると変わる
次に点の位置だけを変えます。使うのはChebyshev–Lobatto点で、Chebyshevの第2種の点とも呼ばれます。区間[−1,1]では、k=0,…,nに対して次のように置きます。[1][2]
xk=−cos(kπ/n)
半円上に等間隔に並べた点を、横軸へ垂直に落とした配置と考えると、両端で間隔が狭くなる理由が見えます。中央の間隔は広く、端へ行くほど点が集まります。区間の両端も含まれています。
この配置で同じ関数を補間すると、11点の最大絶対誤差は約0.132、21点では約0.0177でした。等間隔の21点より、Chebyshev–Lobattoの11点のほうが、この例では小さな誤差になります。点の数だけで精度を比較できないことが、同じ関数・同じ評価位置で表れています。
両端を密にする配置は、区間の端で大きくなりやすい補間の不安定さを抑える助けになります。ただし、どんな関数でも有限個の点で正確になるという意味ではありません。急な変化や滑らかでない部分があれば、それに応じた点数や別の近似方法が必要です。
計算の桁数を増やしても、補間の形は変わらない
大きな振れを見ると、計算途中の丸めが原因に思えるかもしれません。今回の計算では、重心形式と呼ばれる補間の評価式を使い、60桁と80桁で結果を比べました。2,001か所の比較差は3×10−55未満で、20次の等間隔補間の大きな振れは残りました。さらに、Newtonの差分商から組み立てる別形式でも評価点を抜き出して照合しています。
これは、この例で起きている振れが、単に計算の桁数不足ではないことを示します。すべての点を通る一つの多項式として決まった形が、点の間で元の関数から離れています。計算方法を安定させることと、近似に適した点や関数の形を選ぶことは、両方必要です。[1]
点を選べる場合と、測定済みの場合
関数を好きな位置で計算できるなら、端を密にした点配置を初めから選べます。ところが、すでに等間隔で採った測定値しかない場合は、点の横座標だけをChebyshev点に付け替えてはいけません。その場所で測った値ではなくなるからです。
その場合は、隣接する少数の点を区間ごとに結ぶ方法や、スプラインのような区分的な低次多項式を検討できます。全点を一つの高次式へ押し込む以外にも、補間の組み立て方があります。Chebfunの公式例でも、等間隔データに対し単純な多項式補間とは異なる近似を使い、端での振れを比較しています。[3]
実データを扱うときは、曲線が既知の点を通るかだけでなく、補間に使わなかった点や端に近い領域でも誤差を調べることが大切です。ノイズがあるなら、全点への完全一致より、平滑化や近似の誤差を許すほうが目的に合う場合もあります。ルンゲ現象から得られる判断材料は、点を増やす前に、点の置き方と点の間を結ぶ方法を一緒に考えることです。
出典
- Tobin A. Driscoll・Richard J. Braun、Fundamentals of Numerical Computation, 9.3 Stability of polynomial interpolation。補間の条件、等間隔点の不安定性、Chebyshev点。取得時点のPython版。
- Lloyd N. Trefethen、Chebfun Guide, Chapter 4: Chebfun and Approximation Theory、4.1・4.3。第2種Chebyshev点の定義と多項式補間。表示上の最終改訂は2019年5月。
- Nick Trefethen、Chebfuns from equispaced data、2015年4月。等間隔データに対する補間・近似の比較。いずれも2026年10月25日取得。本文の数値例と図は、本文に示した条件での独自計算です。
