fnval
スプライン関数を評価する
説明
は、v
= fnval(f
,x
)f
に説明が含まれているスプライン関数 f の x
の各点で値 f(x) を与えます。
f
がスカラー値であり、一変量である場合、x
の各エントリをそのエントリの f の値で置き換えることにより、出力 v
が得られます。他のすべての場合もこれを意図していますが、d
価 m
変量関数の場合は例外で、m
ベクトルが d
ベクトルで置き換えられます。
一変量関数 f の場合:
f がスカラー値の場合、v のサイズは
x
と同じサイズです。f の値が
[d1,...,dr]
でx
のサイズが[n1,...,ns]
の場合、x(j1,...,js)
での f の値がv(:,...,:, j1,...,js)
になり、v
のサイズは[d1,...,dr, n1,...,ns]
です。ただし、次の例外があります。n1
は、その値が1
でs
が2
の場合、つまりx
が行ベクトルの場合、無視されます。MATLAB® では
x
の末尾にある大きさが 1 の次元が無視されます。
f が m
変量 (m>1
) で、f の値が [d1,...,dr]
の場合、x
は配列か cell 配列 {x1,...,xm}
である場合があります。
x
がサイズ[n1,...,ns]
の配列の場合、n1
はm
と等しくなければならず、x(:,j2,...,js)
での f の値がv(:,...,:, j2,...,js)
になり、v
のサイズは[d1,...,dr, n2,...,ns]
です。ただし、次の例外があります。f がスカラー値、つまり
r
とn1
がどちらも1
の場合、d1
、...、dr
は無視されます。MATLAB では
x
の末尾にある大きさが 1 の次元が無視されます。
x
が cell 配列の場合、{x1,...,xm}
の形式でなければなりません。ここで、xj
は長さnj
のベクトルです。この場合、(x1
(j1
), ...,xm
(jm
)) での f の値がv(:,...,:, j1,...,jm)
になり、v
のサイズは[d1,...,dr, n1,...,nm]
です。ただし、f がスカラー値、つまりr
とn1
がどちらも1
の場合、d1
、...、dr
は無視されます。
f に x
でジャンプ不連続点がある場合、値 f(x +)、つまり右極限値が返されます。ただし、x
がこの形式の基本区間の右端に等しい場合、この x
については値 f(x–)、つまり左極限値が返されます。
fnval(...,'l')
は、f を左連続であるとして扱います。つまり、f に x
でジャンプ不連続点がある場合、値 f(x–)、つまり左極限値が返されます。ただし、x
が基本区間の左端に等しい場合、この x
については値 f(x +) が返されます。
関数が "多変量" の場合、左右からの不連続性に関する上の説明は座標ごとに適用されます。
例
入力引数
出力引数
アルゴリズム
x
の各エントリについて、この関数は、関連する分割区間またはノット区間を決定し、関連する情報を集めます。f
が pp 型か B 型かに応じて、入れ子にされた乗算または B スプラインの再帰 (たとえば、[PGS; X.(3)] を参照) が x
のすべてのエントリでの同時評価でベクトルのように使用されます。多変量多項式スプライン関数の評価では、テンソル積構造を最大限に活用します。
有理スプラインの評価では、すべての区分ごとに対応するベクトル値スプラインが順に評価されますが、最後の成分については最後の成分で評価されます。
st 型の関数の評価では、stcol
が重要な役割を果たし、関連する行列を妥当なサイズに維持することが試みられます。
バージョン履歴
R2006b で導入