Función polyval: evaluación de polinomios

Existe una forma sencilla en MATLAB para evaluar un polinomio para un conjunto de datos. Es decir, si dados varios valores de una variable x y deseamos evaluar un polinomio definido sobre una variable no es necesario repetir la operación de cálculo para todos y cada uno de los valores de x, sino que puede utilizarse una función predefinida. Para ello es necesario lo siguiente:

- Definir un vector que almacene los valores de x que se quieren evaluar

- Definir otro vector que almacene los coeficientes del polinomio, en orden decreciente de grado.

Así si, por ejemplo, disponemos de un vector coef definido como

>>coef=[2 0 1 -2];

que representa los coeficientes del polinomio 2x3+x-2 se puede evaluar dicho polinomio para todos los valores x que van desde 0 hasta 20 sin más que definir un nuevo vector que contenga dichos valores:

>>x=0:20;

y utilizar la función polyval

y=polyval(coef, x);

de modo que se almacene en el vector y el resultado de la evaluación. En este caso, será un vector de 21 componentes (mismo tamaño que x), cada una de las cuales es el resultado de evaluar el polinomio para cada una de las componentes de x.

Resulta especialmente útil combinar la función polyval con la función de ajuste por mínimos cuadradod polyfit, ya que polyfit devuelve los coeficientes del polinomio en el mismo formato (orden decreciente de grado) que requiere polyval.

Ejemplo: Representación gráfica de un polinomio de grado dos obtenido como ajuste por mínimos cuadrados de una nube de puntos representada por dos vectores x e y.

x=[.25 .5 .7 .8];

y=[.52 .99 1.3 1.45];

n=2;

coef=polyfit(x, y, n);

ypol=polyval(coef, x);

plot(x, ypol)