optknt
内挿に "最適な" 節点分布
構文
knots = optknt(tau,k,maxiter)
optknt(tau,k)
説明
knots = optknt(tau,k,maxiter)
は、サイト シーケンス tau
での、Sk,t からの内挿に "最良な" 節点シーケンス t
を提供します。この試みで使用される反復回数を制限するオプション入力 maxiter
は既定値の 10
です。ここでは、Micchelli/Rivlin/Winograd および Gaffney/Powell の意味で "最良" または "最適" が使用されており、「サイト tau(1)
, ..., tau(n)
で与えられた g に一致する内挿 Rg を提供する "再生方式" R では、‖g – Rg‖ ≤ constR ‖Dkg‖ (すべての平滑化関数 g について) の場合の最小定数 constR を決定できる」ことを意味します。
ここで、‖f‖:=suptau(1) < x < tau(n)|f(x)| です。その後、constR が可能な限り小さい場合の最適な再生方式をスキーム R として求めることができます。Micchelli/Rivlin/Winograd は、これを Sk,t からの内挿として示しています。t
は次の条件で一意に決定されます。
t(1)
=...
=t(k)
=tau(1);
t(n+1) = ... = t(n+k) = tau(n);
サイト
t(k+1)
, ...,t(n)
で符号が変化し、ほかでは変化しない、完全な定数関数 h が、以下を満たす
Gaffney/Powell は、これを内挿スキーマとして "最適" と呼びました。これは、与えられたデータへのすべての内挿によって形成される帯域に "中央の" 関数を提供し、さらに、これらの内挿では、M と –M (M が大きい場合) の間に k 次導関数があるためです。
optknt(tau,k)
は optknt(tau,k,10)
と同じです。
例
図については、例 "Spline Interpolation" の最後の部分を参照してください。次の非常に不均一な節点シーケンスの場合
t = [0, .0012+[0, 1, 2+[0,.1], 4]*1e-5, .002, 1];
コマンド optknt(t,3)
は失敗しますが、オプション パラメーター maxiter
で大きな値を使用したコマンド optknt(t,3,20)
は正常に実行されます。
アルゴリズム
これは、"PGS" の Fortran ルーチン SPLOPT
です。前述の符号関数 h の作成については、[1]で説明されているアルゴリズムに基づいています。基本的には、結果の非線形方程式系の解を求めるニュートン法です。aveknt(tau,k)
が t(k+1)
, ...,t(n)
の初期推定値を提供し、Schoenberg-Whitney 条件を維持するためにある程度の減衰が使用されます。
参照
[1] C. de Boor. "Computational aspects of optimal recovery." In Optimal Estimation in Approximation Theory, C.A. Micchelli & T.J. Rivlin eds., Plenum Publ., New York, 1977, 69-91.
[2] P.W. Gaffney & M.J.D. Powell. "Optimal interpolation." In Numerical Analysis, G.A. Watson ed., Lecture Notes in Mathematics, No. 506, Springer-Verlag, 1976, 90-99.
[3] C.A. Micchelli, T.J. Rivlin & S. Winograd. "The optimal recovery of smooth functions." Numer. Math. 80, (1974), 903-906.