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.

polyval

Evaluación de polinomios

Descripción

ejemplo

y = polyval(p,x) evalúa el polinomio p en cada punto de x. El argumento p es un vector de longitud n+1 cuyos elementos son los coeficientes (en potencias descendentes) de un polinomio de n-ésimo grado:

p(x)=p1xn+p2xn1+...+pnx+pn+1.

Los coeficientes de polinomios en p pueden calcularse con distintos fines mediante funciones como polyint, polyder y polyfit, pero puede especificar cualquier vector para los coeficientes.

Para evaluar un polinomio en el sentido de una matriz, utilice polyvalm en su lugar.

ejemplo

[y,delta] = polyval(p,x,S) utiliza la estructura de salida opcional S producida por polyfit para generar estimaciones de errores. delta es una estimación del error estándar al predecir una observación futura en x mediante p(x).

ejemplo

y = polyval(p,x,[],mu) o [y,delta] = polyval(p,x,S,mu) utilizan la salida opcional mu producida por polyfit para centrar y escalar los datos. mu(1) es mean(x), y mu(2) es std(x). Con estos valores, polyval centra x en cero y lo escala a la desviación estándar de unidad,

x^=xx¯σx.

Esta transformación de centrado y escalado mejora las propiedades numéricas del polinomio.

Ejemplos

contraer todo

Evalúe el polinomio p(x)=3x2+2x+1 en los puntos x=5,7,9. Los coeficientes de polinomios pueden representarse mediante el vector [3 2 1].

p = [3 2 1];
x = [5 7 9];
y = polyval(p,x)
y = 1×3

    86   162   262

Evalúe la integral definida

I=-13(3x4-4x2+10x-25)dx.

Cree un vector para representar el integrando polinómico 3x4-4x2+10x-25. El término x3 está ausente, por lo que tiene un coeficiente de 0.

p = [3 0 -4 10 -25];

Utilice polyint para integrar el polinomio utilizando una constante de integración igual a 0.

q = polyint(p)
q = 1×6

    0.6000         0   -1.3333    5.0000  -25.0000         0

Encuentre el valor de la integral evaluando q en los límites de integración.

a = -1;
b = 3;
I = diff(polyval(q,[a b]))
I = 49.0667

Ajuste un modelo lineal a un grupo de puntos de datos y represente los resultados, incluido un cálculo de un intervalo de predicción del 95%.

Cree unos pocos vectores de puntos de datos (x,y) de ejemplo. Utilice polyfit para ajustar un polinomio de primer grado a los datos. Especifique dos salidas para devolver los coeficientes del ajuste lineal, así como la estructura de estimación de errores.

x = 1:100; 
y = -0.3*x + 2*randn(1,100); 
[p,S] = polyfit(x,y,1); 

Evalúe el ajuste polinomial de primer grado de p en los puntos de x. Especifique la estructura de estimación de errores como la tercera entrada, para que polyval calcule una estimación del error estándar. La estimación del error estándar se devuelve en delta.

[y_fit,delta] = polyval(p,x,S);

Represente los datos originales, el ajuste lineal y un intervalo de predicción y±2Δ del 95%.

plot(x,y,'bo')
hold on
plot(x,y_fit,'r-')
plot(x,y_fit+2*delta,'m--',x,y_fit-2*delta,'m--')
title('Linear Fit of Data with 95% Prediction Interval')
legend('Data','Linear Fit','95% Prediction Interval')

Figure contains an axes object. The axes object with title Linear Fit of Data with 95% Prediction Interval contains 4 objects of type line. One or more of the lines displays its values using only markers These objects represent Data, Linear Fit, 95% Prediction Interval.

Cree una tabla con datos de población de los años 1750 a 2000 y represente los puntos de datos.

year = (1750:25:2000)';
pop = 1e6*[791 856 978 1050 1262 1544 1650 2532 6122 8170 11560]';
T = table(year, pop)
T=11×2 table
    year       pop   
    ____    _________

    1750     7.91e+08
    1775     8.56e+08
    1800     9.78e+08
    1825     1.05e+09
    1850    1.262e+09
    1875    1.544e+09
    1900     1.65e+09
    1925    2.532e+09
    1950    6.122e+09
    1975     8.17e+09
    2000    1.156e+10

plot(year,pop,'o')

Figure contains an axes object. The axes contains a line object which displays its values using only markers.

Utilice polyfit con tres salidas para ajustar un polinomio de grado 5 utilizando el centrado y el escalado, lo que mejora las propiedades numéricas del problema. polyfit centra los datos de year en 0 y los escala hasta alcanzar una desviación estándar de 1, con lo que se evita una matriz de Vandermonde mal condicionada en el cálculo del ajuste.

[p,~,mu] = polyfit(T.year, T.pop, 5);

Utilice polyval con cuatro entradas para evaluar p con los años escalados, (year-mu(1))/mu(2). Represente los resultados con respecto a los años originales.

f = polyval(p,year,[],mu);
hold on
plot(year,f)
hold off

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers

Argumentos de entrada

contraer todo

Coeficientes de polinomios, especificados como vector. Por ejemplo, el vector [1 0 1] representa el polinomio x2+1 y el vector [3.13 -2.21 5.99] representa el polinomio 3.13x22.21x+5.99.

Para obtener más información, consulte Crear y evaluar polinomios.

Tipos de datos: single | double
Soporte de números complejos:

Puntos de consulta, especificados como vector. polyval evalúa el polinomio p en los puntos de x y devuelve los valores de función correspondientes en y.

Tipos de datos: single | double
Soporte de números complejos:

Estructura de estimación de errores Esta estructura es una salida opcional de [p,S] = polyfit(x,y,n) que se puede utilizar para obtener estimaciones de errores. S contiene los siguientes campos:

CampoDescripción
RFactor triangular de una descomposición QR de la matriz de Vandermonde de x
dfGrados de libertad
normrNorma de los residuos

Si los datos de y son aleatorios, una estimación de la matriz de covarianzas de p es (Rinv*Rinv')*normr^2/df, en la que Rinv es la inversa de R.

Valores de centrado y escalado, especificados como vector de dos elementos. Este vector es una salida opcional de [p,S,mu] = polyfit(x,y,n) que se utiliza para mejorar las propiedades numéricas de ajustar y evaluar el polinomio p. El valor mu(1) es mean(x), y mu(2) es std(x). Estos valores se utilizan para centrar los puntos de consulta de x en cero con una desviación estándar de unidad.

Especifique mu para evaluar p en los puntos escalados, (x - mu(1))/mu(2).

Argumentos de salida

contraer todo

Valores de función, devueltos como vector del mismo tamaño que los puntos de consulta x. El vector contiene el resultado de evaluar el polinomio p en cada punto de x.

Error estándar para predicción, devuelto como vector del mismo tamaño que los puntos de consulta x. Por lo general, un intervalo de y ± Δ se corresponde con un intervalo de predicción de aproximadamente el 68% para observaciones futuras de muestras grandes, y y ± 2Δ con un intervalo de predicción de aproximadamente el 95%.

Si los coeficientes en p son estimaciones de mínimos cuadrados calculadas por polyfit y los errores en la entrada de datos en polyfit son independientes, normales y tienen varianza constante, entonces y ± Δ es al menos un intervalo de predicción del 50%.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido antes de R2006a