fnjmp
Jumps, i.e., f(x+)-f(x-)
Syntax
jumps = fnjmp(f,x)
Description
jumps = fnjmp(f,x)
is like
fnval(f,x)
except that it returns the jump
f(x+) –
f(x–) across x
(rather
than the value at x
) of the function f
described by f
and that it only works for univariate
functions.
This is a function for spline specialists.
Examples
fnjmp(ppmak(1:4,1:3),1:4)
returns the vector
[0,1,1,0]
since the pp
function here is 1
on [1 .. 2], 2 on [2 .. 3], and 3 on [3 .. 4], hence has zero jump at 1 and 4 and a
jump of 1 across both 2 and 3.
If x
is cos([4:-1:0]*pi/4)
, then
fnjmp(fnder(spmak(x,1),3),x)
returns the vector [12
-24 24 -24 12]
(up to round-off). This is consistent with the fact
that the spline in question is a so called perfect cubic B-spline, i.e., has an absolutely constant third
derivative (on its basic interval). The modified command
fnjmp(fnder(fn2fm(spmak(x,1),'pp'),3),x)
returns instead the vector [0 -24 24 -24 0]
, consistent with
the fact that, in contrast to the B-form, a spline in ppform does not have a
discontinuity in any of its derivatives at the endpoints of its basic interval. Note that fnjmp(fnder(spmak(x,1),3),-x)
returns the vector [12,0,0,0,12]
since
-x
, though theoretically equal to x
,
differs from x
by round-off, hence the third derivative of the
B-spline provided by spmak(x,1)
does not have a jump across
-x(2)
,-x(3)
, and
-x(4)
.