スプライン補間

数値解析という数学の分野においてスプライン補間は、補間式がスプラインと呼ばれる特殊な区分多項式である補間形式である。つまり、単一の高次多項式をすべての値に一度に当てはめるのではなく、スプライン補間では、値の小さなサブセットに低次多項式を当てはめ、たとえば、10 点のペアすべてに単一の 9 次多項式を当てはめるのではなく、各 10 点のペアの間に 9 つの 3 次多項式を当てはめる。スプライン補間は、スプラインに低次多項式を使用しても補間誤差を小さくできるため、多項式補間よりも好まれることが多い。 [1]スプライン補間では、高次多項式を使用して補間するときに点の間で振動が発生する可能性があるルンゲ現象の問題も回避できる

導入

8点間の3次スプラインによる補間。造船用の手描きの技術図面は、スプライン補間の歴史的な例です。図面は、あらかじめ定義された点に沿って曲げられる柔軟な定規を使用して作成されました。

スプラインとは、もともと、あらかじめ定義された複数の点、つまり結び目を通過するように曲げられる弾性定規を指す用語でした。図に示すように、 これらは造船や建設の技術図面を手作業で作成するために使用されました。

同様の曲線を、一連の数式を用いてモデル化したいと考えています。から までの結び目の列があると仮定します各結び目のペアと の間にはと が結びついており、 が となります。つまり、から始まりで終わる多項式が存在することになります

あらゆる曲線の率は次のように定義される。

ここでおよびは の に関する1次および2次導関数である。スプラインが(すべての節点を通過するという制約の下で)曲がりを最小にする形状をとるようにするために、 と が節点を含むあらゆる場所で連続であると定義する。各連続多項式は、対応するデータ点のy値に等しい値、導関数、および節点における2次導関数を持つ必要がある。つまり、

これは、3次以上の多項式(3次多項式)を使用した場合にのみ実現できます。古典的なアプローチは、正確に3次多項式、つまり3次スプラインを使用することです。

上記の 3 つの条件に加えて、自然 3 次スプラインには次の条件があります

上記の 3 つの主な条件に加えて、クランプされた 3 次スプラインには、およびという条件があります。ここで、は補間関数の導関数です。

上記の3つの主な条件に加えて、ノットのないスプラインには、およびという条件があります[2]

補間3次スプラインを求めるアルゴリズム

から までの点が与えられたときに、各多項式を求めたいとします。そのために、曲線 の 1 つの部分、つまり から までを補間するものを考えますこの部分の端点は傾きが でとなります。より正確には、

完全な方程式は対称形で書くことができる

どこ

しかし、ととは何でしょう?これらの臨界値を導くには、次の点を考慮する必要があります。

すると、

式()と式(6 )でそれぞれt = 0t = 1と設定すると、式()から、確かに1次導関数q′x 1)= k 1q′x 2)= k 2が得られ、2次導関数も 得られる。

もし今( x i , y i ) とすると、i = 0, 1, ..., nn + 1点であり、

ここで、i = 1, 2, ..., n、およびは、 i = 1, ..., nに対してx i −1xx iの区間でy を補間するnの 3 次多項式であり、 i = 1, ..., n  − 1に対してq′ i ( x i ) = q′ i +1 ( x i )が成立する場合、 n個の多項式は、区間x 0xx nで微分可能な関数を定義し、

i = 1, ..., n ただし

シーケンスk 0k 1、 ...、k nにおいて、さらにi = 1、 ...、n − 1 に対してq′′ i ( x i ) = q′′ i +1 ( x i )が成り立つ 場合、結果の関数は連続した 2 次導関数を持ちます。

( 7),(),(10)および(11 )から、これが成り立つのは、

i = 1, ..., n − 1である 。関係式(15)は、n + 1個のk 0k 1、 ..., k nに対するn − 1個の線形方程式である

弾性定規をスプライン補間のモデルとすると、左端の「結び目」の左側と右端の「結び目」の右側では定規は自由に動くため、q′′ = 0となる直線の形をとる。q ′′はx連続関数となるため、 n − 1個の線形方程式(15に加えて「自然スプライン」は

つまり

最終的に、(15 )は( 16)および(17とともに、n + 1個のパラメータk0 k1...kn一意定義するn + 1個の線形方程式を構成します

他にも端点条件として、スプラインの端点における傾きを指定する「クランプスプライン」と、 x 1点とx n −1点における三次導関数が連続であることを要求する「ノットスプライン」があります。「ノットスプライン」の場合、追加の式は以下のようになります。

どこ

3点間の3次「自然」スプラインによる補間

3点の場合、の値は三重対角線形方程式を解くことによって求められる。

3つのポイント

それはわかる

そして(10)と(11) から

図には、2つの3次多項式から成り( 9 )で与えられるスプライン関数が表示されている。

参照

参考文献

  1. ^ Hall, Charles A.; Meyer, Weston W. (1976). 「3次スプライン補間の最適誤差境界」近似理論ジャーナル. 16 (2): 105– 122. doi : 10.1016/0021-9045(76)90040-X .
  2. ^ バーデン、リチャード、フェアーズ、ダグラス (2015).数値解析(第10版). Cengage Learning. pp.  142– 157. ISBN 9781305253667

さらに読む

  • シェーンベルク, アイザック J. (1946). 「解析関数による等距離データの近似問題への貢献:パートA. 平滑化または段階化の問題について。第一類の解析近似公式」.応用数学季刊誌. 4 (2): 45–99 . doi : 10.1090/qam/15914 .
  • シェーンベルク, アイザック J. (1946). 「解析関数による等距離データの近似問題への貢献:パートB. 接触補間の問題について。第二の解析近似公式」.応用数学季刊誌. 4 (2): 112– 141. doi : 10.1090/qam/16705 .
  • 3次スプライン補間オンライン計算および可視化ツール(JavaScriptソースコード付き)
  • 「スプライン補間」、数学百科事典EMS Press、2001 [1994]
  • JSXGraph を使用した動的 3 次スプライン
  • スプライン補間の理論と実践に関する講義
  • 等距離ノットのみを対象に、3 次スプライン補間の実行方法を段階的に説明する論文。
  • C言語の数値レシピ、第3章セクション3-3へ
  • 3次スプラインに関する注意
  • スプライン補間に関する情報(Fortran 77のコードを含む)
  • TinySpline:3次スプライン補間を実装するオープンソースのスプライン用Cライブラリ
  • SciPy スプライン補間:補間を実装するPythonパッケージ
  • 3次補間:3次スプライン補間用のオープンソースC#ライブラリ
Retrieved from "https://en.wikipedia.org/w/index.php?title=Spline_interpolation&oldid=1312937931"