Выполните функцию сплайна
v = fnval(f,x)
fnval(x,f)
fnval(...,'l')
v = fnval(f,x)
и v = fnval(x,f)
оба предоставляет значению f (x) в точках в x
функции сплайна f, описание которого содержится в f
.
Примерно говоря, вывод v
получен, заменив каждую запись x
значением f при той записи. Это буквально верно в случае, если функция в f
является со скалярным знаком и одномерной, и является намерением во всех других случаях, за исключением того, что, для d
- оценил m
- функция варьируемой величины, это означает заменять m
- векторы d
- векторы. Полное изложение следующие.
Для одномерного f:
Если f со скалярным знаком, то v одного размера как x
.
Если f является [d1,...,dr]
- оцененный, и x
имеет размер [n1,...,ns]
, то v
имеет размер [d1,...,dr, n1,...,ns]
, с v(:,...,:, j1,...,js)
значение f в x(j1,...,js)
, – за исключением того, что
(1) n1
проигнорирован, если это - 1
, и s
является 2
, т.е. если x
является вектором - строкой; и
(2) MATLAB® игнорирует любые запаздывающие одноэлементные размерности x
.
Для m
- варьируемой величины f с m>1
, с f [d1,...,dr]
- оцененный, x
может быть или массивом или иначе массивом ячеек {x1,...,xm}
.
Если x
является массивом размера, [n1,...,ns]
говорит, то n1
должен равняться m
, и v
имеет размер [d1,...,dr, n2,...,ns]
, с v(:,...,:, j2,...,js)
значение f в x(:,j2,...,js)
, – за исключением того, что
(1) d1
..., dr
проигнорирован в случае, если f со скалярным знаком, т.е. и r
и n1
является 1
;
(2) MATLAB игнорирует любые запаздывающие одноэлементные размерности x
.
Если x
является массивом ячеек, то он должен иметь форму {x1,...,xm}
, с xj
вектор, длины nj
, и, в этом случае, v
имеет размер [d1,...,dr, n1,...,nm]
, с v(:,...,:, j1,...,jm)
значение f в (x1
(j1
)..., xm
(jm
)), – за исключением того, что d1
..., dr
проигнорирован в случае, если f со скалярным знаком, т.е. и r
и n1
является 1
.
Если f имеет разрыв скачка в x
, то значение, f (x +), т.е. предел справа, возвращен, кроме тех случаев, когда x
равняется правильному концу основного интервала формы; для такого x
значение возвращен f (x –), т.е. предел слева.
fnval(x,f)
совпадает с fnval(f,x)
.
fnval(...,'l')
обработки f как непрерывный слева. Это означает что, если f имеет разрыв скачка в x
, то значение f (x –), т.е. предел слева, возвращено, кроме тех случаев, когда x
равняется левому концу основного интервала; для такого x
значение возвращен f (x +).
Если функция многомерна, то вышеупомянутые операторы относительно непрерывности слева и права применяют coordinatewise.
Интерполируйте некоторые данные и постройте и выполните получившиеся функции.
Задайте некоторые данные.
x = [0.074 0.31 0.38 0.53 0.57 0.58 0.59 0.61 0.61 0.65 0.71 0.81 0.97]; y = [0.91 0.96 0.77 0.5 0.5 0.51 0.51 0.53 0.53 0.57 0.62 0.61 0.31];
Интерполируйте данные и постройте получившуюся функцию, f
.
f = csapi( x, y ) fnplt( f )
Найдите значение функционального f
в x = 0.5
.
fnval( f, 0.5 )
Найдите значение функционального f
в 0, 0.1, ..., 1
.
fnval( f, 0:0.1:1 )
Создайте функциональный f2
, который представляет поверхность.
x = 0.0001+(-4:0.2:4); y = -3:0.2:3; [yy, xx] = meshgrid( y, x ); r = pi*sqrt( xx.^2+yy.^2 ); z = sin( r )./r; f2 = csapi( {x,y}, z );
Постройте функциональный f2
.
fnplt( f2 ) axis( [-5, 5, -5, 5, -0.5, 1] );
Найдите значение функционального f2
в x = -2
и y = 3
.
fnval( f2, [-2; 3] )
Для каждой записи x
, соответствующего пропуска - или интервал узла определяется и собранная релевантная информация. В зависимости от того, является ли f
в ppform или в B-форме, вложенном умножении или повторении B-сплайна (см., например, [PGS; X. (3)]), затем используемый векторный вид для одновременной оценки при всех записях x
. Оценка многомерной полиномиальной функции сплайна в полной мере пользуется структурой продукта тензора.
Оценка рационального сплайна развивает оценку соответствующего сплайна с векторным знаком делением всех кроме его последнего компонента его последним компонентом.
Оценка функции в stform делает существенное использование stcol
и пытается сохранить матрицы включенными к разумному размеру.