Documentation |
Jumps, i.e., f(x+)-f(x-)
jumps = fnjmp(f,x)
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.
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 roundoff, 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).