前のページ|次のページ

MSPLINT関数

単調性維持スプライン補間の縦座標を返します。

カテゴリ: 数学

構文

MSPLINT(X, n, X1 <, X2, …, Xn>, Y1 <, Y2, …, Yn> <, D1, Dn>)

必須引数

X

スプラインの縦座標を計算する横座標を指定する数値定数、変数または式を指定します。

n

ノット数を指定する数値定数、変数または式です。Nは正の整数にする必要があります。

X1, …, Xn

ノットの横座標を指定する数値定数、変数または式です。これらの値は欠損値で、非減少順に並べる必要があります。それ以外の場合、結果は未定義になります。MSPLINTではX1からXn引数の順序は確認されません。

Y1, ..., Yn

ノットの座標を指定する数値定数、変数または式です。Y1からYn引数の数は、X1からXn引数の数と同じにする必要があります。

オプション引数

D1, Dn

X1Xnのスプラインの導関数を指定する任意の数値定数、変数または式です。これらの導関数は、X2より小さい、または x sub n minus 1 end sub. 別の形式を利用するにはイメージをクリックします。.

詳細

MSPLINT関数は、単一横座標Xの単調性維持スプライン補間の縦座標を返します。
スプライン補間は、順序対(X1, Y1)、(X2, Y2)、…、(Xn, Yn)で指定する各点を通る関数です。これらの点はノットと呼ばれます。
次の両方の条件を満たすと、スプラインは単調性を維持します。
  • 非減少座標の2つ以上の連続するノットに対し、間隔内のすべての補間値も非減少になる。
  • 非増加座標の2つ以上の連続するノットに対し、間隔内のすべての補間値も非増加になる。
ただし、D1またはDnの値を誤った符号で指定すると、X2より小さいまたは x sub n minus 1 end sub. 別の形式を利用するにはイメージをクリックします。 .
引数D1Dnを省略または欠損すると、次のアクションが実行されます。
  • n=1に対し、MSPLINTはY1を返す。
  • n=2に対し、MSPLINTは線形補間または補外を使用する。
引数D1Dnが非欠損値、またはn>=3のとき、次のアクションが実行されます。
  • X<X1またはX>Xnのとき、MSPLINTは線形補外を使用する。
  • X1<=X<=Xnのとき、MSPLINTは三次スプライン補間を使用する。
2つのノットの横座標が等しいけれども縦座標が異なる場合、スプラインはその横座標で不連続になります。2つのノットの横座標が等しく、縦座標が等しい場合、スプラインはその横座標で連続になりますが、通常第1導関数はその横座標で不連続になります。それ以外の場合、スプラインは連続で、第1導関数は連続になります。
Xが欠損している、または結果を計算するために必要なその他の引数が欠損していると、MSPLINTは欠損値を返します。MSPLINTでは、欠損値の引数のすべては確認されません。引数D1Dnは任意であり、結果を計算するために必要ではないため、1つまたは両方が欠損しており、エラーが発生しない場合には、MSPLINTは非欠損の結果を返します。

MSPLINT関数の例を次に示します。
data msplint;
   do x=0 to 100 by .1;
      msplint=msplint(x, 9,
         10, 20, 25, 50, 55, 70, 70, 80, 90,
         20, 30, 30, 40, 70, 60, 50, 40, 40);
      output;
   end;
run;
data knots;
   input x y;
   datalines;
10 20
20 30
25 30
50 40
55 70
70 60
70 50
80 40
90 40
;
data plot;
   merge knots msplint;
   by x;
run;
title "Comparison of Splines";                                                                                                          
title2 "Non-monotonicity-preserving and Monotonicity-preserving 
        Splines";                                                               
legend1 value=('Non-monotonicity-preserving spline'                                                                                     
               'Monotonicity-preserving spline') label=none;                                                                            
symbol1 value=dot  interpol=spline color=black width=5;                                                                                 
symbol2 value=none interpol=join   color=red;                                                                                           
proc gplot data=plot;                                                                                                                   
   plot y*x=1 msplint*x=2/overlay legend=legend1;                                                                                       
run; 
quit; 
スプラインの比較

参考文献

Fritsch, F. N., and J. Butland. “A method for constructing local monotone piecewise cubic interpolants.” 1984. Siam Journal of Scientific and Statistical Computing 5:2: 300-304.
前のページ|次のページ|ページの先頭へ