fnjmp
ジャンプ、つまり、f(x+)-f(x-)
構文
jumps = fnjmp(f,x)
説明
f
によって記述された関数 f の x
(x
での値ではなく) を越えるジャンプ f(x+) – f(x–) を返し、一変量関数の場合にのみ機能する点を除き、jumps = fnjmp(f,x)
fnval(f,x)
と同様です。
これは、スプラインのスペシャリスト向けの関数です。
例
fnjmp(ppmak(1:4,1:3),1:4)
はベクトル [0,1,1,0]
を返します。これは、この場合の pp
関数が [1 ..2] で 1、[2 ..3] で 2、[3 .. 4] で 3 であり、したがって、1 と 4 にはジャンプがなく、2 と 3 の両方を越える 1 のジャンプがあるためです。
x
が cos([4:-1:0]*pi/4)
の場合、fnjmp(fnder(spmak(x,1),3),x)
はベクトル [12 -24 24 -24 12]
(丸めを除く) を返します。これは、対象のスプラインがいわゆる完全 3 次 B スプラインである、つまり、完全に定数の 3 次導関数 (基本区間で) をもつという事実に一致しています。修正されたコマンド
fnjmp(fnder(fn2fm(spmak(x,1),'pp'),3),x)
は、代わりにベクトル [0 -24 24 -24 0]
を返します。これは、B 型の場合とは対照的に、pp 型のスプラインはその基本区間の端点でいずれの導関数においても不連続点をもたないという事実と一致しています。fnjmp(fnder(spmak(x,1),3),-x)
はベクトル [12,0,0,0,12]
を返す点に注意してください。これは、理論的には x
に等しいはずの -x
が丸めによって x
とは異なることにより、spmak(x,1)
で与えられる B スプラインの 3 次導関数には -x(2)
、-x(3)
、および -x(4)
におけるジャンプがないためです。