Está en la página 1de 4

Dinmica de Mquinas Elctricas Ing. Mario G.

Macri
Ajuste de datos: interpolacin, regresin, races de polinomios Pgina 1
TRABAJO PRCTICO N
0
5:
AJUSTE DE DATOS, INTERPOLACIN Y REGRESIN, RAICES DE POLINOMIOS

ARCHIVOS EXTERNOS

Matlab permite importar datos usualmente presentados en forma tabulada, ya sea de manuales,
ensayos de laboratorio o sistemas de adquisicin de datos.

Por ejemplo los datos del ensayo de laboratorio del TP de la caracterstica de vaco:











Para ser llamada de otro programa se pueden guardar los datos en un archivo-m:






Observe en la pantalla de comandos de Matlab el efecto del punto y coma en la generacin de la
matriz: copie el array , ejecute y luego vea el contenido:

cvacio=[ 0.16 59.7; 0.26 80; 0.36 90; 0.57 100; 0.87 110; 1.32 120; 2 130];

cvacio

cvacio =

0.1600 59.7000
0.2600 80.0000
0.3600 90.0000
0.5700 100.0000
0.8700 110.0000
1.3200 120.0000
2.0000 130.0000








Iex E
1

0.16 59.7
0.26 80
0.36 90
0.57 100
0.87 110
1.32 120
2 130
%cvacio
%formato de la tabla [ Iex E1]
%unidades [A V]

cvacio=[ 0.16 59.7; 0.26 80; 0.36 90; 0.57 100; 0.87 110; 1.32 120; 2 130];
Dinmica de Mquinas Elctricas Ing. Mario G. Macri
Ajuste de datos: interpolacin, regresin, races de polinomios Pgina 2
TABLAS CON UNA ENTRADA

Para obtener los datos de una tabla que podra haberse obtenido de un manual, un ensayo o una
medicin (almacenada en un archivo-m) inclusive valores que luego Matlab interpola, se utilizan
las siguientes funciones:

table1

help table1

TABLE1 Table look-up.

Y = TABLE1(TAB,X0) returns a table of linearly interpolated rows from
table TAB, looking up X0 in the first column of TAB.

See also INTERP1, INTERP2, TABLE2.

Para el ejemplo visto podemos llamar al archivo-m denominado cvacio.m consultando que valor
tiene la Fem. para una corriente de excitacin de 1 [A] (valor que no existente en la tabla), me-
diante la funcin table1 de la siguiente manera

table1(cvacio,1)

ans =

112.8889 %valor interpolado


AJUSTE DE DATOS MEDIANTE POLINOMIOS (polyfit)

La idea bsica del ajuste por mnimos cuadrados es la siguiente: asumiendo que un experimento
arroja m pares de datos (xi yi), y que una curva de segundo orden podra parecer ajustarse a esos
datos experimentales se pueden interpretar las mediciones como la salida de una funcin con
errores introducidos por las mediciones:
3 2
2
1 c x c x c y + + =
El error es: y yi = = medido Valor ajuste de ecuacin la por calculado Valor
Se busca minimizar el error, pero la suma directa de los errores tiene la desventaja que los errores
positivos y negativos se cancelan y no representan el error total por ello se toman los cuadrados
de los errores, haciendo la suma cuadrtica:
( )
2
1
3 2
2
1

=
=
m
i
i i i c x c x c y

Siendo m la dimensin de los vectores x e y de datos
No se conocen los tres coeficientes, pero se desea estimarlos de tal manera que minimicen la su-
ma de los errores cuadrticos. Para ello se debe igualar a cero la derivada del error respecto a ca-
da coeficiente, con lo que se obtiene un sistema de ecuaciones como se vio en cursos de matem-
tica.

En esta seccin se analiza la funcin ployfit empleada para ajuste de polinomios.
help polyfit

Dinmica de Mquinas Elctricas Ing. Mario G. Macri
Ajuste de datos: interpolacin, regresin, races de polinomios Pgina 3
POLYFIT Polynomial curve fitting.
POLYFIT(x,y,n) finds the coefficients of a polynomial p(x) of
degree n that fits the data, p(x(i)) ~= y(i), in a least-squares sense.

[p,S] = POLYFIT(x,y,n) returns the polynomial coefficients p and a
matrix S for use with POLYVAL to produce error estimates on predictions.
If the errors in the data, y, are independent normal with constant
variance, POLYVAL will produce error bounds which contain at least 50%
of the predictions.

See also POLY, POLYVAL, ROOTS.

Como ejemplo de aplicacin, se inicia una nueva sesin de Matlab y desde la ventana de coman-
dos se ejecuta:
cvacio %cargamos la tabla de caracterstica de vaco
Iex = cvacio(:,1); %separamos la corriente de excitacin
E1= cvacio(:,2); %separamos la Fem. E1
plot(Iex,E1) %graficamos E1= f(Iex)

Buscamos ajustar los puntos mediante una curva segn el criterio de los mnimos cuadrados.

Aplicamos la funcin ajustando los datos por un polinomio de segundo orden.
Escribimos entonces en la ventana de comando de Matlab:

[par, S] = polyfit(Iex, E1, 2); %ajustamos un polinomio de orden 2

par

par = -23.9130 83.6619 56.3897 %parmetros del polinomio ajustado con polyfit

El polinomio es entonces: y= -23.9130 x^2 + 83.6619 x + 56.3897 donde y = E1 y x = Iex

En nuestro ejemplo de la caracterstica de vaco buscamos el valor que tiene E1 para Iex=1[A]:

E1 = POLYVAL(par,1) %evaluamos el polinomio ajustado
% para el valor Iex=1
E1= 116.1386
Para realizar una estima del error en Iex=1 : [E1,delta] = POLYVAL(par,1,S)
Para realizar la estima en cada punto Iex: [E1,delta] = POLYVAL(par,Iex,S)

REGRESIN e INTERPOLACIN (polyval)

Se puede ahora hacer una regresin y evaluar valores de E1 para diferentes valores de Iex con la
posibilidad de interpolacin de valores mediante la funcin polyval:
help polyval

POLYVAL Polynomial evaluation.
If p is a vector of length d+1 whose elements are the coefficients
of a polynomial, then y = POLYVAL(p,x) is the value of the
polynomial evaluated at x.
y = p(1)*x^d + p(2)*x^(d-1) + ... + p(d)*x + p(d+1)
If X is a matrix or vector, the polynomial is evaluated at all
points in X.
[y,delta] = POLYVAL(p,x,S) uses the optional output generated by
Dinmica de Mquinas Elctricas Ing. Mario G. Macri
Ajuste de datos: interpolacin, regresin, races de polinomios Pgina 4
POLYFIT to generate error estimates, y +/- delta.
If the errors in the data input to POLYFIT are independent normal
with constant variance, y +/- delta contains at least 50% of the
predictions.

Ejemplo: evaluar el polinomio y= 3x^2+2x+1 en los valores de x 5, 7 y 9

par = [3 2 1]; %define los parmetros del polinomio en orden de potencias decrecientes
polyval(par,[5 7 9]) %aplica la funcin polyval
resulta: ans = 86 162 262

Obtencin de las races de un polinomio (funcin roots)

>> help roots
ROOTS Find polynomial roots.
ROOTS(C) computes the roots of the polynomial whose coefficients
are the elements of the vector C. If C has N+1 components,
the polynomial is C(1)*X^N + ... + C(N)*X + C(N+1).

Ejemplo: Si y= 3x^2+2x+1 (caso del ejemplo anterior)

par = [3 2 1]; %parmetros (coeficientes) en orden decreciente de las potencias
>> raices=roots(par) %se aplica la funcin roots
raices =
-0.3333 + 0.4714i
-0.3333 - 0.4714i

Si se tienen las races con la funcin poly se recupera el polinomio:

POLY Convert roots to polynomial.

POLY(V), when V is a vector, is a vector whose elements are
the coefficients of the polynomial whose roots are the
elements of V . For vectors, ROOTS and POLY are inverse
functions of each other, up to ordering, scaling,

>> poly(raices) %se aplica la funcin poly
ans = 1.0000 0.6667 0.3333 % si bien parece diferente,
%dividiendo por 3 se obtiene el resultado

Problema a resolver:

1) Ajustar la caracterstica de vaco con polinomios de orden 2, 3 y 4 graficando en forma super-
puesta sobre la caracterstica de vaco los polinomios ajustados para visualizar las diferencias.
Comentar los resultados.

2) Evaluar el polinomio ajustado en un punto intermedio de la caracterstica de vaco Iex=1,5 con
un polinomio de orden adecuado.

3) Qu ocurre si se quiere evaluar mas all de los datos conocidos, (extrapolar)?, por ejemplo
que FEM E se tiene con Iex= 3A

También podría gustarte