Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

fnval

Evaluar función de spline

Descripción

ejemplo

v = fnval(f,x) proporciona el valor de f (x) en los puntos en x de la función de spline f cuya descripción está incluida en f.

Si f tiene valor escalar y es univariada, la salida v se obtiene sustituyendo cada entrada de x por el valor de f en esa entrada. Esta es la finalidad en todos los demás casos, excepto en el caso de una función con valor d m-variada, en la que los vectores d sustituyen a los vectores m.

Para una función f univariada:

  • Si f tiene valor escalar, v es del mismo tamaño que x.

  • Si f tiene valor [d1,...,dr], y x tiene un tamaño [n1,...,ns], v tiene un tamaño [d1,...,dr, n1,...,ns], con v(:,...,:, j1,...,js) como el valor de f en x(j1,...,js), excepto porque:

    • n1 se ignora si es 1 y s es 2, es decir, si x es un vector fila;

    • MATLAB® ignora todas las dimensiones singleton finales de x.

Para una función f m-variada con m>1, con f con valor [d1,...,dr], x podría ser un arreglo o, si no, un arreglo de celdas {x1,...,xm}.

  • Si x es un arreglo de tamaño [n1,...,ns], n1 debe ser igual a m, y v tiene un tamaño [d1,...,dr, n2,...,ns], con v(:,...,:, j2,...,js) como el valor de f en x(:,j2,...,js), excepto porque:

    • d1, ..., dr se ignora en caso de que f tenga valor escalar, es decir, r y n1 son 1;

    • MATLAB ignora todas las dimensiones singleton finales de x.

  • Si x es un arreglo de celdas, debe tener el formato {x1,...,xm}, con xj como vector de longitud nj y, en ese caso, v tiene un tamaño [d1,...,dr, n1,...,nm], con v(:,...,:, j1,...,jm) como el valor de f en (x1(j1), ..., xm(jm)), excepto porque d1, ..., dr se ignora en caso de que f tenga valor escalar, es decir, r y n1 son 1.

Si f tiene una discontinuidad de salto en x, se devuelve el valor f(x +), es decir, el límite desde la derecha, excepto cuando x es igual al extremo derecho del intervalo básico de la forma; en el caso de este valor x, se devuelve el valor f(x–), es decir, el límite desde la izquierda.

fnval(x,f) es igual que fnval(f,x).

fnval(...,'l') trata la función f como continua desde la izquierda. Esto significa que si f tiene una discontinuidad de salto en x, se devuelve el valor f(x–), es decir, el límite desde la izquierda, excepto cuando x es igual al extremo izquierdo del intervalo básico; en el caso de este valor x, se devuelve el valor f(x +).

Si la función es multivariada, las declaraciones anteriores relativas a la continuidad desde la izquierda y la derecha se aplican por coordenadas.

Ejemplos

contraer todo

Este ejemplo muestra cómo interpolar algunos datos y representar y evaluar las funciones resultantes.

Defina algunos datos.

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]; 

Interpole los datos y represente la función resultante, f.

f = csapi( x, y )
f = struct with fields:
      form: 'pp'
    breaks: [0.0740 0.3100 0.3800 0.5300 0.5700 0.5800 0.5900 0.6100 0.6500 0.7100 0.8100 0.9700]
     coefs: [11x4 double]
    pieces: 11
     order: 4
       dim: 1

fnplt( f )

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

Encuentre el valor de la función f en x = 0.5.

fnval( f, 0.5 )
ans = 0.5294

Encuentre el valor de la función f en 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

Cree una función f2 que represente una superficie.

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 ); 

Represente la función f2.

fnplt( f2 )
axis( [-5, 5, -5, 5, -0.5, 1] );

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

Encuentre el valor de la función f2 en x = -2 e y = 3.

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

Argumentos de entrada

contraer todo

Función de spline que desea evaluar, especificada como objeto.

Puntos en los que desea evaluar la función de spline f, especificados como vector, matriz o arreglo de celdas.

Argumentos de salida

contraer todo

Valor f(x) en los puntos en x de la función de spline f, devuelto como escalar, vector, matriz o arreglo de celdas.

Algoritmos

Para cada entrada de x, la función determina el intervalo de salto o el intervalo de nudo relevantes y reúne la información pertinente. Dependiendo de si f está en formato ppform o B-form, la multiplicación anidada o la recurrencia de los B-spline (consulte, p. ej., [PGS; X.(3)]) son usados luego a modo de vector para la evaluación simultánea en todas las entradas de x. La evaluación de una función de spline polinómico multivariada saca el máximo partido de la estructura de producto tensorial.

La evaluación de un spline racional continúa la evaluación del spline correspondiente con valor vectorial dividiendo todos los componentes por su último componente excepto el último componente.

La evaluación de una función en formato stform hace un uso esencial de stcol e intenta mantener un tamaño razonable para las matrices involucradas.

Historial de versiones

Introducido en R2006b