spaps
平滑化スプライン
構文
説明
[sp,
は平滑化された値も返します。values
] = spaps(x,y,tol) values
は fnval(sp,x)
と同じになります。
ここで、与えられたデータからの関数 f の距離は、次のように測定されます。
重み w
に既定値を選択すると、E(f) は の複合台形則近似となり、|z|2 は z のエントリの二乗和を示します。
さらに、"最も滑らかな" は、次の粗さ測定が最小化されることを意味します。
ここで、Dmf は f の m
階微分を示します。m
の既定値は 2
で、粗さ測定の重み λ の既定値は定数 1 です。これにより f は 3 次平滑化スプラインになります。
tol
が非負の場合、スプライン f は式 ρE(f) + F(Dmf) の一意の最小化関数となり、E(f) が tol
と等しくなるよう選択された平滑化パラメーター ρ (オプションで返される) が使用されます。したがって、m
が 2
である場合、pp 型への変換後、結果は csaps(x,y,ρ/(ρ + 1)) で得られるものと同じ (丸めを除く) になります。さらに、tol
がゼロの場合、次数 2m の "自然な" または変分スプライン内挿が返されます。さらに tol
が非常に大きくなると、m
より小さい次数の多項式によるデータの最小二乗近似が返されます。
tol
が負の場合、ρ は -tol
となります。
粗さ測定における重み関数 λ の既定値は定数関数 1 です。ただし、データ サイトでのみブレークを使用する、より一般的な区分的な定数関数にすることができます。ベクトル x
が厳格に増加すると仮定した場合、tol
を x
と同じサイズのベクトルとして入力して、このような区分的な定数 λ を指定します。この場合、tol(i)
は、区間 (x(i-1)
.. x(i)
) における λ の定数値 i=2:length(x)
として使用されますが、tol(1)
は引き続き指定された許容誤差として使用されます。
[sp,values,
は、3 番目の出力引数として使用される ρ の実際の値も返します。rho
] = spaps(x,y,tol)
[...] = spaps({x1,...,xr},y,tol,...)
は、特定の "グリッド データ" に対して指定された許容誤差内にほぼおさまる r
変量テンソル積平滑化スプラインの B 型を返します。"散布" データの場合は tpaps
を使用してください。ここでは、y
には対応するグリッド値を指定する必要があります。size(y)
は、関数がスカラー値である場合は [length(x1),...,length(xr)]
と等しくなり、関数が d
値である場合は [d,length(x1),...,length(xr)]
と等しくなります。さらに、tol
は r
エントリを持つ cell 配列でなければなりません。tol{i}
は、i
次変数の一変量 (ただしベクトル値) 平滑化スプラインが作成されている場合は i
番目のステップ中に使用される許容誤差です。m
のオプションの入力は r
ベクトル (セット {1,2,3}
からのエントリを使用) でなければなりません。また、w
のオプションの入力は長さ r
の cell 配列でなければなりません。w{i}
は空 (既定の選択が必要であることを示す) または xi
と同じ長さの正のベクトルです。
例
入力引数
出力引数
アルゴリズム
この関数では、Reinsch のアプローチ[1]を使用しています (適切な初期推定値が利用でき、また、ニュートン法が収束および高速な収束で保証されるように最適な平滑化パラメーターの方程式を選択するための方法を含む)。
参照
[1] C. Reinsch. "Smoothing by spline functions." Numer. Math. 10 (1967), 177–183.
バージョン履歴
R2006a より前に導入