fnval

Выполните функцию сплайна

Описание

пример

v = fnval(f,x) вводит значение f (x) в точках в x из функции сплайна f, описание которого содержится в f.

Если f является со скалярным знаком и одномерным, выход v получен, заменив каждую запись x значением f при той записи. Это - намерение во всех других случаях, за исключением того, что, для d- ценный m- изменитесь функция, d- векторы заменяют mВекторы.

Для одномерного f:

  • Если f со скалярным знаком, то v одного размера с x.

  • Если f является [d1,...,dr]- ценный, и x имеет размер [n1,...,ns], затем v имеет размер [d1,...,dr, n1,...,ns], с v(:,...,:, j1,...,js) значение f в x(j1,...,js), – за исключением того, что:

    • n1 проигнорирован, если это - 1 и s 2, т.е. если x вектор-строка;

    • 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), – за исключением того, что:

    • d1..., dr проигнорирован в случае, если f со скалярным знаком, т.е. оба r и n1 1;

    • 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 –), i.e., предел слева, возвращен.

fnval(x,f) совпадает с fnval(f,x).

fnval(...,'l') обработки f как непрерывный слева. Это означает это, если f имеет разрыв скачка в x, затем значение f (x –), т.е. предел слева, возвращено, кроме тех случаев, когда x равняется левому концу основного интервала; для такого x, значение f (x +) возвращено.

Если функция многомерна, то вышеупомянутые операторы относительно непрерывности слева и права применяют мудрую координату.

Примеры

свернуть все

В этом примере показано, как интерполировать некоторые данные и построить и выполнить получившиеся функции.

Задайте некоторые данные.

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 )
f = struct with fields:
      form: 'pp'
    breaks: [1x12 double]
     coefs: [11x4 double]
    pieces: 11
     order: 4
       dim: 1

fnplt( f )

Figure contains an axes. The axes contains an object of type line.

Найдите значение функционального f в x = 0.5.

fnval( f, 0.5 )
ans = 0.5294

Найдите значение функционального f в 0, 0.1, ..., 1.

fnval( f, 0:0.1:1 )
ans = 1×11

    0.3652    1.0220    1.1579    0.9859    0.7192    0.5294    0.5171    0.6134    0.6172    0.4837    0.2156

Создайте функциональный 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] );

Figure contains an axes. The axes contains an object of type surface.

Найдите значение функционального f2 в x = -2 и y = 3.

fnval( f2, [-2; 3] )
ans = -0.0835

Входные параметры

свернуть все

Функция сплайна, которую вы хотите выполнить в виде объекта.

Точки, в которых вы хотите выполнить функцию сплайна fВ виде вектора, матричного или массива ячеек.

Выходные аргументы

свернуть все

Значение f (x) в точках в x из сплайна функционируют f, возвращенный как скаляр, вектор, матричный или массив ячеек.

Алгоритмы

Для каждой записи x, функция определяет соответствующий интервал пропуска или интервал узла и собирает релевантную информацию. В зависимости от ли f находится в ppform или в B-форме, вложенном умножении или повторении B-сплайна (см., например, [PGS; X. (3)]), затем используемый векторный вид для одновременной оценки при всех записях x. Оценка многомерной полиномиальной функции сплайна в полной мере пользуется структурой продукта тензора.

Оценка рационального сплайна развивает оценку соответствующего сплайна с векторным знаком делением всех кроме его последнего компонента его последним компонентом.

Оценка функции в stform делает существенное использование stcol, и попытки сохранить матрицы включенными к разумному размеру.

Представленный в R2006b