MATLAB Function Reference | ![]() ![]() |
spline
表示
yy = spline(x,
y,
xx) pp = spline(x,
y)
詳細
関数 spline
は、点x(j)
での値が、y(:,j)
であるスプライン関数を作成します。特に、与えられた値がベクトルの場合、スプライン関数は、点列y(:,1),y(:,2),
...
を通る曲線を示します。
yy = spline(x,y,xx)
は、補間されたキュービックスプラインの xx
での値を出力します。xx
が、メッシュ x
の設定された細かい点の場合、yy
は、それに対応する y
の点です。
pp = spline(x,y)
は、キュービックスプライン補間のpp型を出力します。このデータは、ppval
(や
Spline Toolboxで使用可能な他のスプライン関数)で使うことができます。
一般に、'節点なし'の端点条件が使用されます。しかし、y
が、x
の要素より2だけ多い場合、y(:,1)
と y(:,end)
は、キュービックスプラインの端点勾配として使用されます。
例題
t = 1900:10:1990; p = [ 75.995 91.972 105.711 123.203 131.669 ... 150.697 179.323 203.212 226.505 249.633 ];
は、1900年から1990年までのアメリカ合衆国の国勢調査の実施年のベクトルと、それに対応した合衆国の人口を百万人単位で表わしたベクトルです。
spline(t,
p,
2000)
は、外挿するためにキュービックスプラインを使い、2000年の人口を予測します。結果は、つぎのようになります。
ans = 270.6060
x = pi*[0:.5:2]; y = [0 1 0 -1 0 1 0; 1 0 1 0 -1 0 1]; pp = spline(x,y); yy = ppval(pp, linspace(0,2*pi,101)); plot(yy(1,:),yy(2,:),'-b',y(1,2:5),y(2,2:5),'or'), axis equal
は、oでマークした5個のデータ点y(:,2),...,y(:,6)
をもつ円のプロットを作成します。このy
は、x
よりも2多いデータ数である(すなわち、2列多い)ため、y(:,1)
とy(:,end)
は端点勾配として使用されます。
アルゴリズム
三重対角線形システム(たぶん、いくつかの直角に曲った角をもつ)は、補間するスプラインを作成する種々のキュービックの多項式の係数を示すために必要な情報に対して解かれます。spline
は、M-ファイル ppval
, mkpp
,unmkpp
を使います。これらのルーチンは、区分的多項式について機能する関数群です。spline
は、キュービックスプライン補間を行うために、非常に簡単な方法でこれらのルーチンを使います。より応用的な機能を使うためには、M-ファイルと
Spline Toolbox
を参照してください。
参考
interp1
, interp2
, interp3
, interpn
, ppval
参考文献
[1] de Boor, C., A Practical Guide to Splines, Springer-Verlag, 1978.
![]() |
spinmap | spones | ![]() |