Скачки, т.е. f (x +)-f (x-)
jumps = fnjmp(f,x)
jumps = fnjmp(f,x)
похож на fnval(f,x)
за исключением того, что он возвращает скачок f (x +) – f (x –) через x
(а не значение в x
) функционального f, описанного f
и что он только работает на одномерные функции.
Это - функция для специалистов по сплайну.
fnjmp(ppmak(1:4,1:3),1:4)
возвращает векторный [0,1,1,0]
, поскольку функция pp
здесь 1 на [1.. 2], 2 на [2.. 3], и 3 на [3.. 4], следовательно имеет нуль, схватили 1 и 4 и скачок 1 через и 2 и 3.
Если x
является cos([4:-1:0]*pi/4)
, то fnjmp(fnder(spmak(x,1),3),x)
возвращает векторный [12 -24 24 -24 12]
(до округления). Это сопоставимо с тем, что рассматриваемый сплайн является так называемым совершенным кубическим B-сплайном, т.е. имеет абсолютно постоянную третью производную (на ее основном интервале). Измененная команда
fnjmp(fnder(fn2fm(spmak(x,1),'pp'),3),x)
возвращает вместо этого векторный [0 -24 24 -24 0]
, сопоставимый с тем, что, в отличие от B-формы, сплайн в ppform не имеет разрыва ни в одной из его производных в конечных точках его основного интервала. Обратите внимание на то, что fnjmp(fnder(spmak(x,1),3),-x)
возвращает векторный [12,0,0,0,12]
, поскольку -x
, хотя теоретически равный x
, отличается от x
округлением, следовательно третья производная B-сплайна, обеспеченного spmak(x,1)
, не имеет скачка через -x(2)
, -x(3)
и -x(4)
.