aptknt
許容可能な節点シーケンス
構文
knots = aptknt(tau,k)
[knots,k] = aptknt(tau,k)
説明
knots = aptknt(tau,k)
は、tau
が少なくとも k
のエントリをもち、非減少で、tau(i)
<tau(i+k-1)
(すべての i
について) を満たしている場合、データ サイト tau
での内挿に適した節点シーケンスをその節点シーケンスをもつ次数 k のスプラインにより返します。その場合、それらのサイトで与えられた値に一致する節点シーケンス knots
をもつ次数 k
のスプラインが 1 つだけ存在します。これは、返されたシーケンス knots
が Schoenberg-Whitney 条件を満たすためで
knots(i) < tau(i) < knots(i+k), i=1:length(tau)
それぞれ厳密な多重度 k
で発生する極端な節点でのみ等式が成り立ちます。
tau
のエントリ数が k
未満の場合は、k
が値 length(tau)
に減らされます。tau
が非減少でない場合、またはいくつかの i
について tau(i)
が tau(i+k-1)
と等しい場合、またはその両方の場合はエラーとなります。
また、[knots,k] = aptknt(tau,k)
は、使用された実際の k
(入力 k
と length(tau)
のうち小さいほうに等しい) も返します。
例
tau
が等間隔で (n
>=4 の場合に linspace(a,b,n)
に等しい)、y
が tau
と同じサイズのシーケンスの場合、sp = spapi(aptknt(tau,4),tau,y)
は、節点なしの端点条件を使用した 3 次スプライン内挿を返します。これは、コマンド spline(tau,y)
で生成されるものと同じ 3 次スプラインですが、pp 型ではなく B 型です。
注意事項
tau
がかなり不均一な場合、サイト tau
でのデータへの内挿に結果の節点シーケンスを使用すると、不十分な結果につながる場合があります。
アルゴリズム
シーケンス tau
の (k-1)
点平均 sum(tau(i+1:i+k-1))/(k-1)
は、aveknt(tau,k)
によって指定された場合、k
倍の tau(1)
と k
倍の tau(end)
によって拡張されます。つまり、コマンドは、tau
が少なくとも k
個のエントリをもち、k
が 1 より大きい場合、コマンドは augknt([tau(1),aveknt(tau,k),tau(end)],k)
と同じ結果を返します。