Cubic function used for interpolation
数値解析 において 、 3次エルミートスプライン または 3次エルミート補間器 は、各部分が エルミート形式 で指定された 3次 多項式、つまり対応する 領域 間隔の端点での 値と1次導 関数によって指定された スプライン です。 [1]
3次エルミートスプラインは、通常、与えられた引数値 における数値データの 補間 に用いられ 、 連続関数 を得ます。データは、各 における目的の関数値と導関数から構成されます 。(値のみが与えられている場合は、導関数はそれらから推定する必要があります。)エルミート公式は各区間に個別に適用されます 。結果として得られるスプラインは連続となり、1次導関数も連続となります。 x 1 , x 2 , … , x n {\displaystyle x_{1},x_{2},\ldots ,x_{n}} x k {\displaystyle x_{k}} ( x k , x k + 1 ) {\displaystyle (x_{k},x_{k+1})}
3次多項式 スプラインは他の方法でも指定できますが、最も一般的なのは ベジェ3次スプライン です。しかし、これら2つの方法で得られるスプラインセットは同じであり、ベジェ形式とエルミート形式の間でデータの変換も容易であるため、これらの名前はしばしば同義語として使用されます。
3次多項式スプラインは、 コンピュータグラフィックス や 幾何学的モデリングにおいて、 平面 または3次元 空間 上の特定の点を通過する 曲線 や運動 軌跡 を得るために広く用いられています 。これらのアプリケーションでは、平面または空間の各座標は、個別のパラメータ tを持つ3次スプライン関数によって個別に補間されます。3次多項式スプラインは、 オイラー・ベルヌーイ梁理論 などの構造解析アプリケーションでも広く用いられています。3次多項式スプラインは、死亡率分析 [2] や死亡率予測 [3] にも応用されています。
3次スプラインは、いくつかの方法で2つ以上のパラメータを持つ関数に拡張できます。双3次スプライン( 双3次補間)は、 デジタル画像の ピクセル 値 や 地形の 高度 データなど、規則的な長方形グリッド上のデータを補間するためによく使用されます。3つの双3次スプラインで定義される 双3次曲面パッチは 、コンピュータグラフィックスにおいて不可欠なツールです。
3次スプラインは、特にコンピュータグラフィックスでは Cスプライン と呼ばれることが多いです。エルミートスプラインは、 シャルル・エルミート にちなんで名付けられました。
単一区間の補間
単位間隔 [0, 1] 4つのエルミート基底関数。各部分区間における補間関数は、これら4つの関数の線形結合です。 単位区間 において 、 の開始点 と の終了点 、 の 開始接線と の 終了 接線が与えられている 場合、多項式は によって定義されます。 ここで 、t ∈ [0, 1] です。 [ 0 , 1 ] {\displaystyle [0,1]} p 0 {\displaystyle {\boldsymbol {p}}_{0}} t = 0 {\displaystyle t=0} p 1 {\displaystyle {\boldsymbol {p}}_{1}} t = 1 {\displaystyle t=1} m 0 {\displaystyle {\boldsymbol {m}}_{0}} t = 0 {\displaystyle t=0} m 1 {\displaystyle {\boldsymbol {m}}_{1}} t = 1 {\displaystyle t=1} p ( t ) = ( 2 t 3 − 3 t 2 + 1 ) p 0 + ( t 3 − 2 t 2 + t ) m 0 + ( − 2 t 3 + 3 t 2 ) p 1 + ( t 3 − t 2 ) m 1 , {\displaystyle {\boldsymbol {p}}(t)=\left(2t^{3}-3t^{2}+1\right){\boldsymbol {p}}_{0}+\left(t^{3}-2t^{2}+t\right){\boldsymbol {m}}_{0}+\left(-2t^{3}+3t^{2}\right){\boldsymbol {p}}_{1}+\left(t^{3}-t^{2}\right){\boldsymbol {m}}_{1},}
任意の間隔での補間 任意の区間における 補間は 、後者を アフィン (次数1)の変数変換 によってに写像することによって行われます。式は で 、 、および は以下に定義される基底関数を指します。 単位区間 における式と比較して、 接線値は でスケーリングされていることに注意してください 。 x {\displaystyle x} ( x k , x k + 1 ) {\displaystyle (x_{k},x_{k+1})} [ 0 , 1 ] {\displaystyle [0,1]} p ( x ) = h 00 ( t ) p k + h 10 ( t ) ( x k + 1 − x k ) m k + h 01 ( t ) p k + 1 + h 11 ( t ) ( x k + 1 − x k ) m k + 1 , {\displaystyle {\boldsymbol {p}}(x)=h_{00}(t){\boldsymbol {p}}_{k}+h_{10}(t)(x_{k+1}-x_{k}){\boldsymbol {m}}_{k}+h_{01}(t){\boldsymbol {p}}_{k+1}+h_{11}(t)(x_{k+1}-x_{k}){\boldsymbol {m}}_{k+1},} t = ( x − x k ) / ( x k + 1 − x k ) {\displaystyle t=(x-x_{k})/(x_{k+1}-x_{k})} h {\displaystyle h} x k + 1 − x k {\displaystyle x_{k+1}-x_{k}}
ユニークさ 上記の式は、指定された接線を持つ 2 つのポイント間の一意の 3 次多項式パスを提供します。
証明。 与えられた境界条件を満たす2つの3次多項式を とします。 そして、次を定義します 。 P , Q {\displaystyle P,Q} R = Q − P , {\displaystyle R=Q-P,}
R ( 0 ) = Q ( 0 ) − P ( 0 ) = 0 , {\displaystyle R(0)=Q(0)-P(0)=0,} R ( 1 ) = Q ( 1 ) − P ( 1 ) = 0. {\displaystyle R(1)=Q(1)-P(1)=0.} と はどちら も 三次多項式なので、 は最大でも三次多項式である。したがって、 は の 形になる
。 導関数を計算すると、 Q {\displaystyle Q} P {\displaystyle P} R {\displaystyle R} R {\displaystyle R} R ( x ) = a x ( x − 1 ) ( x − r ) . {\displaystyle R(x)=ax(x-1)(x-r).} R ′ ( x ) = a x ( x − 1 ) + a x ( x − r ) + a ( x − 1 ) ( x − r ) . {\displaystyle R'(x)=ax(x-1)+ax(x-r)+a(x-1)(x-r).}
さらに、
R ′ ( 0 ) = Q ′ ( 0 ) − P ′ ( 0 ) = 0 , {\displaystyle R'(0)=Q'(0)-P'(0)=0,} R ′ ( 0 ) = 0 = a r , {\displaystyle R'(0)=0=ar,} 1
R ′ ( 1 ) = Q ′ ( 1 ) − P ′ ( 1 ) = 0 , {\displaystyle R'(1)=Q'(1)-P'(1)=0,} R ′ ( 1 ) = 0 = a ( 1 − r ) . {\displaystyle R'(1)=0=a(1-r).} 2
( 1 )と( 2 )を合わせると、 となり 、 したがって a = 0 {\displaystyle a=0} R = 0 , {\displaystyle R=0,} P = Q . {\displaystyle P=Q.}
表現 単位区間上の補間多項式は(任意の区間については上記の再スケール版を参照)、次のように表すことができます 。 ここで 、、、 は エルミート基底関数です。これらは様々な方法で表すことができ、それぞれ異なる性質を示します。 p ( t ) = h 00 ( t ) p 0 + h 10 ( t ) m 0 + h 01 ( t ) p 1 + h 11 ( t ) m 1 {\displaystyle {\boldsymbol {p}}(t)=h_{00}(t){\boldsymbol {p}}_{0}+h_{10}(t){\boldsymbol {m}}_{0}+h_{01}(t){\boldsymbol {p}}_{1}+h_{11}(t){\boldsymbol {m}}_{1}} h 00 {\displaystyle h_{00}} h 10 {\displaystyle h_{10}} h 01 {\displaystyle h_{01}} h 11 {\displaystyle h_{11}}
拡大 因数分解された バーンスタイン h 00 ( t ) {\displaystyle h_{00}(t)} 2 t 3 − 3 t 2 + 1 {\displaystyle 2t^{3}-3t^{2}+1} ( 1 + 2 t ) ( 1 − t ) 2 {\displaystyle (1+2t)(1-t)^{2}} B 0 ( t ) + B 1 ( t ) {\displaystyle B_{0}(t)+B_{1}(t)} h 10 ( t ) {\displaystyle h_{10}(t)} t 3 − 2 t 2 + t {\displaystyle t^{3}-2t^{2}+t} t ( 1 − t ) 2 {\displaystyle t(1-t)^{2}} 1 3 B 1 ( t ) {\displaystyle {\tfrac {1}{3}}B_{1}(t)} h 01 ( t ) {\displaystyle h_{01}(t)} − 2 t 3 + 3 t 2 {\displaystyle -2t^{3}+3t^{2}} t 2 ( 3 − 2 t ) {\displaystyle t^{2}(3-2t)} B 3 ( t ) + B 2 ( t ) {\displaystyle B_{3}(t)+B_{2}(t)} h 11 ( t ) {\displaystyle h_{11}(t)} t 3 − t 2 {\displaystyle t^{3}-t^{2}} t 2 ( t − 1 ) {\displaystyle t^{2}(t-1)} − 1 3 B 2 ( t ) {\displaystyle -{\tfrac {1}{3}}B_{2}(t)}
「展開」列は、上記の定義で用いられた表現を示しています。「因数分解」列は、 境界において とが零であることがすぐに分かります。さらに 、とには0において 重複度2の零点 があり 、 とには1において重複度2の零点があるため、これらの境界において傾きは0であると結論付けることができます。「ベルンシュタイン」列は、エルミート基底関数を3次の ベルンシュタイン多項式 に分解したものです 。 h 10 {\displaystyle h_{10}} h 11 {\displaystyle h_{11}} h 01 {\displaystyle h_{01}} h 11 {\displaystyle h_{11}} h 00 {\displaystyle h_{00}} h 10 {\displaystyle h_{10}} B k ( t ) = ( 3 k ) ⋅ t k ⋅ ( 1 − t ) 3 − k . {\displaystyle B_{k}(t)={\binom {3}{k}}\cdot t^{k}\cdot (1-t)^{3-k}.}
この関係を用いることで、4つの値に関して3次エルミート補間を3次 ベジェ曲線 で表現し、 ド・カステルジョーアルゴリズム を用いてエルミート補間を行うことができます 。これは、3次ベジェパッチにおいて、中央の2つの制御点が、それぞれの外側の点における補間曲線の接線を決定することを示しています。 p 0 , p 0 + 1 3 m 0 , p 1 − 1 3 m 1 , p 1 {\textstyle {\boldsymbol {p}}_{0},{\boldsymbol {p}}_{0}+{\frac {1}{3}}{\boldsymbol {m}}_{0},{\boldsymbol {p}}_{1}-{\frac {1}{3}}{\boldsymbol {m}}_{1},{\boldsymbol {p}}_{1}}
多項式は標準形で次のように書くこともできます 。ここで、制御点と接線は係数です。これにより、定数係数を一度計算して再利用できるため、 t の様々な値における多項式を効率的に評価できます。 p ( t ) = ( 2 p 0 + m 0 − 2 p 1 + m 1 ) t 3 + ( − 3 p 0 + 3 p 1 − 2 m 0 − m 1 ) t 2 + m 0 t + p 0 {\displaystyle {\boldsymbol {p}}(t)=\left(2{\boldsymbol {p}}_{0}+{\boldsymbol {m}}_{0}-2{\boldsymbol {p}}_{1}+{\boldsymbol {m}}_{1}\right)t^{3}+\left(-3{\boldsymbol {p}}_{0}+3{\boldsymbol {p}}_{1}-2{\boldsymbol {m}}_{0}-{\boldsymbol {m}}_{1}\right)t^{2}+{\boldsymbol {m}}_{0}t+{\boldsymbol {p}}_{0}}
データセットの補間 の データセットは、 各区間に上記の手順を適用することで補間できます。ここで、接線は適切な方法で選択されます。つまり、端点を共有する区間の接線は等しくなります。補間された曲線は区分3次エルミートスプラインで構成され、 において大域的に連続的に微分可能です 。 ( x k , p k ) {\displaystyle (x_{k},{\boldsymbol {p}}_{k})} k = 1 , … , n {\displaystyle k=1,\ldots ,n} ( x 1 , x n ) {\displaystyle (x_{1},x_{n})}
接線の選択は一意ではなく、いくつかのオプションが利用可能です。
有限差分 差分接線の例 最も単純な選択は、一定の間隔の長さを必要としない 3 点差です。
m k = 1 2 ( p k + 1 − p k x k + 1 − x k + p k − p k − 1 x k − x k − 1 ) {\displaystyle {\boldsymbol {m}}_{k}={\frac {1}{2}}\left({\frac {{\boldsymbol {p}}_{k+1}-{\boldsymbol {p}}_{k}}{x_{k+1}-x_{k}}}+{\frac {{\boldsymbol {p}}_{k}-{\boldsymbol {p}}_{k-1}}{x_{k}-x_{k-1}}}\right)} 内部ポイントについては 、データセットのエンドポイントでの片側差です。 k = 2 , … , n − 1 {\displaystyle k=2,\dots ,n-1}
カーディナルスプライン 2Dにおけるカーディナルスプラインの例。直線は曲線を表し、四角形は制御点を表します 。曲線は最初の点と最後の点には達していませんが、これらの点は曲線の形状に影響を与えます。張力パラメータは0.1です。 p k {\displaystyle {\boldsymbol {p}}_{k}} カーディナル スプライン( 正準スプラインとも呼ばれる )[4] は、 次の 式で得られる [5] 。
m k = ( 1 − c ) p k + 1 − p k − 1 x k + 1 − x k − 1 {\displaystyle {\boldsymbol {m}}_{k}=(1-c){\frac {{\boldsymbol {p}}_{k+1}-{\boldsymbol {p}}_{k-1}}{x_{k+1}-x_{k-1}}}} 接線の計算にはパラメータ c が使用されます。パラメータ cは 張力 パラメータであり 、区間 [0, 1] 内になければなりません。ある意味では、これは接線の「長さ」と解釈できます。c = 1 を 選択 するとすべての接線がゼロになり、 c = 0 を選択すると一様パラメータ化の場合に Catmull-Rom スプラインが生成されます。
キャットマル・ロムスプライン 等間隔の横軸を持つ黒点のCatmull-Rom三次補間の幾何学的解釈。 [6] 選択された接線については
m k = p k + 1 − p k − 1 2 {\displaystyle {\boldsymbol {m}}_{k}={\frac {{\boldsymbol {p}}_{k+1}-{\boldsymbol {p}}_{k-1}}{2}}} カーディナルスプラインの特殊なケースであるCatmull-Romスプラインが得られます。これはパラメータ間隔が均一であることを前提とし て い ます 。
曲線は、 エドウィン・キャットマル と ラファエル・ロム にちなんで名付けられました。この手法の主な利点は、元の点セットに沿った点がスプライン曲線の制御点も構成することです。 [7] 曲線の両端に2つの追加点が必要です。均一なキャットマル・ロム実装では、ループと自己交差が発生する可能性があります。弦および 求心的なキャットマル ・ロム実装 [8] はこの問題を解決しますが、若干異なる計算を使用します。 [9] コンピュータグラフィックス では、キャットマル・ロムスプラインは、 キーフレーム 間の滑らかな補間モーションを取得するために頻繁に使用されます 。たとえば、離散キーフレームから生成されるほとんどのカメラパスアニメーションは、キャットマル・ロムスプラインを使用して処理されます。キャットマル・ロムスプラインが人気があるのは、主に計算が比較的簡単であること、各キーフレームの位置に正確に到達すること、生成された曲線の接線が複数のセグメントにわたって連続していることが保証されることです。
コハネク・バーテルススプライン Kochanek –Bartels スプライン は、 データ ポイント 、 が与えられた場合に接線を選択する方法をさらに一般化したものであり 、 張力、バイアス、連続性パラメータの 3 つのパラメータを指定できます。 p k − 1 {\displaystyle {\boldsymbol {p}}_{k-1}} p k {\displaystyle {\boldsymbol {p}}_{k}} p k + 1 {\displaystyle {\boldsymbol {p}}_{k+1}}
単調な3次補間 上記のいずれかのタイプの 3 次エルミート スプラインを 単調 データ セットの 補間 に使用する場合、補間関数は必ずしも単調にはなりませんが、接線を調整することで単調性を維持できます。
端点で一致する導関数を持つ単位区間上の補間 点の単一の座標と を、関数 f ( x )が整数座標 x = n − 1、 n 、 n + 1、 n + 2で取る値として考えると 、 p n − 1 , p n , p n + 1 {\displaystyle {\boldsymbol {p}}_{n-1},{\boldsymbol {p}}_{n},{\boldsymbol {p}}_{n+1}} p n + 2 {\displaystyle {\boldsymbol {p}}_{n+2}}
p n = f ( n ) ∀ n ∈ Z . {\displaystyle p_{n}=f(n)\quad \forall n\in \mathbb {Z} .} さらに、端点における接線は、隣接する点の中心差として定義されていると仮定します。 m n = f ( n + 1 ) − f ( n − 1 ) 2 = p n + 1 − p n − 1 2 ∀ n ∈ Z . {\displaystyle m_{n}={\frac {f(n+1)-f(n-1)}{2}}={\frac {p_{n+1}-p_{n-1}}{2}}\quad \forall n\in \mathbb {Z} .}
実数 x の補間 f ( x ) を評価するには、まず x を 整数部分 n と小数部分 u に分離します。
x = n + u , {\displaystyle x=n+u,} n = ⌊ x ⌋ = floor ( x ) , {\displaystyle n=\lfloor x\rfloor =\operatorname {floor} (x),} u = x − n = x − ⌊ x ⌋ , {\displaystyle u=x-n=x-\lfloor x\rfloor ,} 0 ≤ u < 1 , {\displaystyle 0\leq u<1,} ここで、は floor 関数 を表し、 x 以下の最大の整数を返します 。 ⌊ x ⌋ {\displaystyle \lfloor x\rfloor }
すると、Catmull-Romスプラインは [10] で表され、
ここで は 転置行列 を 表す。下の式は ホーナー法 の適用を表している 。 f ( x ) = f ( n + u ) = CINT u ( p n − 1 , p n , p n + 1 , p n + 2 ) = [ 1 u u 2 u 3 ] [ 0 1 0 0 − 1 2 0 1 2 0 1 − 5 2 2 − 1 2 − 1 2 3 2 − 3 2 1 2 ] [ p n − 1 p n p n + 1 p n + 2 ] = 1 2 [ − u 3 + 2 u 2 − u 3 u 3 − 5 u 2 + 2 − 3 u 3 + 4 u 2 + u u 3 − u 2 ] T [ p n − 1 p n p n + 1 p n + 2 ] = 1 2 [ u ( ( 2 − u ) u − 1 ) u 2 ( 3 u − 5 ) + 2 u ( ( 4 − 3 u ) u + 1 ) u 2 ( u − 1 ) ] T [ p n − 1 p n p n + 1 p n + 2 ] = 1 2 ( ( u 2 ( 2 − u ) − u ) p n − 1 + ( u 2 ( 3 u − 5 ) + 2 ) p n + ( u 2 ( 4 − 3 u ) + u ) p n + 1 + u 2 ( u − 1 ) p n + 2 ) = 1 2 ( ( − u 3 + 2 u 2 − u ) p n − 1 + ( 3 u 3 − 5 u 2 + 2 ) p n + ( − 3 u 3 + 4 u 2 + u ) p n + 1 + ( u 3 − u 2 ) p n + 2 ) = 1 2 ( ( − p n − 1 + 3 p n − 3 p n + 1 + p n + 2 ) u 3 + ( 2 p n − 1 − 5 p n + 4 p n + 1 − p n + 2 ) u 2 + ( − p n − 1 + p n + 1 ) u + 2 p n ) = 1 2 ( ( ( − p n − 1 + 3 p n − 3 p n + 1 + p n + 2 ) u + ( 2 p n − 1 − 5 p n + 4 p n + 1 − p n + 2 ) ) u + ( − p n − 1 + p n + 1 ) ) u + p n , {\displaystyle {\begin{aligned}f(x)=f(n+u)&={\text{CINT}}_{u}(p_{n-1},p_{n},p_{n+1},p_{n+2})\\&={\begin{bmatrix}1&u&u^{2}&u^{3}\end{bmatrix}}{\begin{bmatrix}0&1&0&0\\-{\tfrac {1}{2}}&0&{\tfrac {1}{2}}&0\\1&-{\tfrac {5}{2}}&2&-{\tfrac {1}{2}}\\-{\tfrac {1}{2}}&{\tfrac {3}{2}}&-{\tfrac {3}{2}}&{\tfrac {1}{2}}\end{bmatrix}}{\begin{bmatrix}p_{n-1}\\p_{n}\\p_{n+1}\\p_{n+2}\end{bmatrix}}\\&={\frac {1}{2}}{\begin{bmatrix}-u^{3}+2u^{2}-u\\3u^{3}-5u^{2}+2\\-3u^{3}+4u^{2}+u\\u^{3}-u^{2}\end{bmatrix}}^{\mathrm {T} }{\begin{bmatrix}p_{n-1}\\p_{n}\\p_{n+1}\\p_{n+2}\end{bmatrix}}\\&={\frac {1}{2}}{\begin{bmatrix}u{\big (}(2-u)u-1{\big )}\\u^{2}(3u-5)+2\\u{\big (}(4-3u)u+1{\big )}\\u^{2}(u-1)\end{bmatrix}}^{\mathrm {T} }{\begin{bmatrix}p_{n-1}\\p_{n}\\p_{n+1}\\p_{n+2}\end{bmatrix}}\\&={\tfrac {1}{2}}{\Big (}{\big (}u^{2}(2-u)-u{\big )}p_{n-1}+{\big (}u^{2}(3u-5)+2{\big )}p_{n}+{\big (}u^{2}(4-3u)+u{\big )}p_{n+1}+u^{2}(u-1)p_{n+2}{\Big )}\\&={\tfrac {1}{2}}{\big (}(-u^{3}+2u^{2}-u)p_{n-1}+(3u^{3}-5u^{2}+2)p_{n}+(-3u^{3}+4u^{2}+u)p_{n+1}+(u^{3}-u^{2})p_{n+2}{\big )}\\&={\tfrac {1}{2}}{\big (}(-p_{n-1}+3p_{n}-3p_{n+1}+p_{n+2})u^{3}+(2p_{n-1}-5p_{n}+4p_{n+1}-p_{n+2})u^{2}+(-p_{n-1}+p_{n+1})u+2p_{n}{\big )}\\&={\tfrac {1}{2}}{\Big (}{\big (}(-p_{n-1}+3p_{n}-3p_{n+1}+p_{n+2})u+(2p_{n-1}-5p_{n}+4p_{n+1}-p_{n+2}){\big )}u+(-p_{n-1}+p_{n+1}){\Big )}u+p_{n},\end{aligned}}} T {\displaystyle \mathrm {T} }
この記述は 三次補間 に関連しており、1 つの最適化では同じ u と異なる p を使用してCINT u を 16 回計算する必要があります。
参照
参考文献 ^ エルウィン・クライシグ (2005). 高度工学数学 (第9版). Wiley. p. 816. ISBN 9780471488859 。 ^ Stephen Richards (2020). 「退職後死亡率のエルミートスプラインモデル」. Scandinavian Actuarial Journal (2). Taylor and Francis: 110– 127. doi :10.1080/03461238.2019.1642239. ^ Sixian Tang、Jackie Li、Leonie Tickle (2022). 「人口死亡率のモデリングにおけるエルミートスプラインアプローチ」 Annals of Actuarial Science 17 (2) . Cambridge University Press: 1– 42. doi :10.1017/S1748499522000173. ^ Petzold, Charles (2009). 「WPFとSilverlightにおける標準スプライン」 ^ 「カーディナルスプライン」。Microsoft Developer Network 。 2018年5月27日 閲覧。 ^ 3次補間は一意ではありません。Catmull-Romスプラインとラグランジュ基底多項式を用いたこのモデルは、4点すべてを通過します。注:黒点が黄色の点の左側にある場合、黄色の水平距離は負の値になります。黒点が緑の点の右側にある場合、緑の水平距離は負の値になります。 ^ Catmull, Edwin ; Rom, Raphael (1974)、「局所補間スプラインのクラス」、Barnhill, RE; Riesenfeld, RF (編)、 『Computer Aided Geometric Design』 、ニューヨーク: Academic Press、pp. 317– 326 ^ N. Dyn, MS Floater, K. Hormann. 反復弦および求心パラメータ化に基づく4点曲線分割. コンピュータ支援幾何学設計, 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 ソースを使用) 一般的なスプライン方程式