補間に使用される3次関数
数値解析において、3次エルミートスプラインまたは3次エルミート補間器は、各部分がエルミート形式で指定された3次多項式、つまり対応する領域間隔の端点での値と1次導関数によって指定されたスプラインです。[1]
3 次エルミート スプラインは、通常、連続関数を取得するために、指定された引数値 で指定された数値データを補間するために使用されます。データは、各 での目的の関数値と導関数で構成されている必要があります。(値のみが提供される場合、導関数はそれらから推定する必要があります。) エルミート公式は、各区間に個別に適用されます。結果として得られるスプラインは連続し、連続する 1 次導関数を持ちます。



3 次多項式スプラインは他の方法でも指定できますが、最も一般的なのはベジェ 3 次です。ただし、これら 2 つの方法では同じスプライン セットが提供され、ベジェ形式とエルミート形式の間でデータを簡単に変換できるため、これらの名前は同義語として使用されることがよくあります。
3次多項式スプラインは、コンピュータグラフィックスや幾何学的モデリングにおいて、平面または3次元空間の指定された点を通過する曲線や運動軌跡を得るために広く使用されています。これらのアプリケーションでは、平面または空間の各座標は、個別のパラメータtの3次スプライン関数によって個別に補間されます 。3次多項式スプラインは、オイラー・ベルヌーイ梁理論などの構造解析アプリケーションでも広く使用されています。3次多項式スプラインは、死亡率分析[2]や死亡率予測[3]にも適用されています。
3 次スプラインは、いくつかの方法で 2 つ以上のパラメータの関数に拡張できます。双 3 次スプライン (双 3 次補間) は、デジタル画像のピクセル値や地形の 高度データなど、規則的な長方形グリッド上のデータを補間するためによく使用されます。3 つの双 3 次スプラインによって定義される双 3 次表面パッチは、コンピュータ グラフィックスに不可欠なツールです。
3 次スプラインは、特にコンピュータ グラフィックスでは、 csplineと呼ばれることがよくあります。 エルミート スプラインは、Charles Hermiteにちなんで名付けられました。
単一区間の補間
単位間隔 [0, 1]
4 つのエルミート基底関数。各サブ区間の補間は、これら 4 つの関数の線形結合です。
単位区間 において、での開始点とでの開始接線、で終了接線を持つ で終了点が与えられると、多項式はt ∈ [0, 1]
で定義できます
。![{\displaystyle [0,1]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/738f7d23bb2d9642bab520020873cccbef49768d)









任意の間隔での補間
任意の区間での補間は、変数のアフィン変換(次数 1)によってを にマッピングすることによって行われます。式は
で、 は以下で定義される基底関数を参照します。単位区間の方程式と比較して、
接線値が でスケーリングされていることに注意してください。

![{\displaystyle [0,1]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/738f7d23bb2d9642bab520020873cccbef49768d)




ユニークさ
上記の式は、指定された接線を持つ 2 つの点間の一意の 3 次多項式パスを提供します。
証明。与えられた境界条件を満たす 2 つの 3 次多項式を とします。次に次のように定義します。




と はどちらも3次多項式なので、は最大でも3次多項式です。したがって、 はという形式である必要があります
。
導関数を計算すると、





さらに、


(1)と(2)を合わせると、 となり、したがって

表現
補間多項式は次のように表すことができます
。
ここで、、、はエルミート基底関数です。これらはさまざまな方法で表すことができ、それぞれの方法で異なる特性が明らかになります
。




「展開」列は、上記の定義で使用されている表現を示しています。「因数分解」列は、境界でと がゼロになることをすぐに示しています。さらに、とは 0 で重複度 2 のゼロを持ち、 とは1 で重複度 2 のゼロを持つため、それらの境界で傾きが 0 であると結論付けることができます。「Bernstein」列は、エルミート基底関数を3 次
ベルンシュタイン多項式に分解したものを示しています。





この接続を使用すると、 4 つの値に関して3 次ベジェ曲線で 3 次エルミート補間を表現し、 de Casteljau アルゴリズムを使用してエルミート補間を行うことができます。これは、3 次ベジェ パッチで、中央の 2 つの制御点が、それぞれの外側の点で補間曲線の接線を決定することを示しています。

多項式を標準形式で次のように記述することもできます
。ここで、制御点と接線は係数です。これにより、定数係数を一度計算して再利用できるため、 t
のさまざまな値で多項式を効率的に評価できます。

データセットの補間
のデータ セットは、各区間に上記の手順を適用することで補間できます。ここで、接線は適切な方法で選択されます。つまり、端点を共有する区間の接線は等しくなります。補間された曲線は区分 3 次エルミート スプラインで構成され、 で大域的に連続的に微分可能です。



接線の選択は一意ではなく、いくつかのオプションが利用可能です。
有限差分
差分接線の例
最も単純な選択は、一定の間隔の長さを必要としない 3 点差です。

内部ポイントについては、データセットのエンドポイントでの片側差です。

カーディナルスプライン
2D のカーディナル スプラインの例。線は曲線を表し、四角形は制御点を表します。曲線は最初と最後の点には達していないことに注意してください。ただし、これらの点は曲線の形状に影響します。使用される張力パラメータは 0.1 です。
カーディナルスプライン(正準スプラインとも呼ばれる)[4]は、次の式で得られる[5]。

は接線の計算に使用されます。パラメータcは張力パラメータであり、 [0, 1] の範囲内になければなりません。ある意味では、これは接線の「長さ」として解釈できます。c = 1 を選択すると、すべての接線がゼロになり、c = 0を選択すると、均一なパラメータ化の場合に Catmull-Rom スプラインが生成されます。
キャットマル・ロムスプライン
等間隔の横座標を持つ黒点のCatmull-Rom三次補間の幾何学的解釈。[6]
選択された接線については

カーディナルスプラインの特殊なケースである Catmull-Rom スプラインが得られます。これは、均一なパラメータ間隔を前提としています。
この曲線は、エドウィン・キャットマルとラファエル・ロムにちなんで名付けられました。この手法の主な利点は、元の点の集合に沿った点が、スプライン曲線の制御点も構成することです。[7]曲線の両端にさらに 2 つの点が必要です。均一なキャットマル・ロム実装では、ループと自己交差が発生する可能性があります。弦および求心キャットマル・ロム実装[8]はこの問題を解決しますが、若干異なる計算を使用します。[9]コンピュータグラフィックスでは、キャットマル・ロム スプラインは、キー フレーム間の滑らかな補間モーションを取得するために頻繁に使用されます。たとえば、離散キー フレームから生成されるほとんどのカメラ パス アニメーションは、キャットマル・ロム スプラインを使用して処理されます。キャットマル・ロム スプラインが人気を博している理由は、主に計算が比較的簡単であること、各キー フレームの位置に正確に到達すること、生成された曲線の接線が複数のセグメントにわたって連続していることが保証されることです。
コハネク・バルテルススプライン
Kochanek–Bartels スプラインは、データ ポイント、が与えられた場合に接線を選択する方法をさらに一般化したものであり、張力、バイアス、連続性パラメータの 3 つのパラメータを指定できます。



単調な三次補間
上記のいずれかのタイプの 3 次エルミート スプラインを単調なデータ セットの補間に使用する場合、補間された関数は必ずしも単調になるわけではありませんが、接線を調整することで単調性を維持できます。
端点で一致する導関数を持つ単位区間の補間
点の単一の座標とを、関数f ( x ) が整数座標x = n − 1、n、n + 1、n + 2で取る値として考えると 、



さらに、端点における接線は隣接する点の中心差として定義されていると仮定します。
実数xの補間f ( x ) を評価するには、まずx を整数部分nと小数部分uに分離します。




ここで、 はfloor 関数を表し、 x以下の最大の整数を返します。

するとCatmull-Romスプラインは[10]
となり
、ここで は行列転置を表します。下の等式はホーナー法の適用を表しています。


この記述は三次補間に関連しており、1 つの最適化では、同じuと異なるpを使用して CINT u を16 回計算する必要があります。
参照
参考文献
- ^ エルウィン・クライシグ (2005).高度工学数学(第9版). Wiley. p. 816. ISBN
9780471488859。
- ^ Stephen Richards (2020). 「退職後 死亡率のエルミートスプラインモデル」。Scandinavian Actuarial Journal。Taylor and Francis: 110–127。doi :10.1080/03461238.2019.1642239。
- ^ Sixian Tang、Jackie Li、Leonie Tickle (2022)。「人口 死亡率をモデル化するエルミートスプラインアプローチ」。Annals of Actuarial Science。ケンブリッジ大学出版局:1–42。doi :10.1017/S1748499522000173。
- ^ Petzold, Charles (2009)。「WPF と Silverlight の標準スプライン」。
- ^ 「Cardinal Splines」。Microsoft Developer Network 。 2018年5月27日閲覧。
- ^ 3 次補間は一意ではありません。Catmull-Rom スプラインとラグランジュ基底多項式を使用するこのモデルは、4 つの点すべてを通過します。注: 黒い点が黄色の点の左側にある場合、黄色の水平距離は負になります。黒い点が緑の点の右側にある場合、緑の水平距離は負になります。
- ^ Catmull, Edwin ; Rom, Raphael (1974)、「A class of local interpolating splines」、Barnhill, RE; Riesenfeld, RF (eds.)、Computer Aided Geometric Design、ニューヨーク: Academic Press、pp. 317–326
- ^ N. Dyn、MS Floater、K. Hormann。反復弦および求心パラメータ化に基づく4点曲線分割。Computer Aided Geometric Design、26(3):279–286、2009年。
- ^ PJ BarryとRN Goldman。Catmull-Romスプラインのクラスの再帰評価アルゴリズム。SIGGRAPH Computer Graphics、22(4):199–204、1988。
- ^ スプライン補間の 2 つの階層。多変量高次スプラインの実用的なアルゴリズム。
外部リンク
- スプライン曲線、ドナルド・H・ハウス教授、クレムソン大学
- 多次元エルミート補間と近似、パデュー大学、チャンドラジット・バジャジ教授
- Catmull-Rom スプラインの紹介、MVPs.org
- カーディナルスプラインとキャットマルロムスプラインの補間
- 補間方法: 線形、コサイン、キュービック、エルミート (C ソースを使用)
- 一般的なスプライン方程式