Sunteți pe pagina 1din 12

AJUSTE DE CURVAS A DATOS DE MEDICIONES

Ajustar una curva implica ajustar una funcin g(x) a un conjunto de datos dado, (xi,yi), y = 1, 2, ..., L. La funcin g(x) es un polinomio, una funcin no lineal o una combinacin lineal de funciones conocidas. La funcin g(x) que se elige para ajustar una curva contiene cierto nmero de coeficientes no determinados. En general, el nmero de puntos de datos por ajustar, L, es mayor que el nmero de coeficientes no determinados, k; por tanto, el mtodo para determinar los coeficientes se basa en la minimizacin de las discrepancias entre la funcin determinada y los puntos de datos, y recibe el nombre de mtodo de mnimos cuadrados. En el caso especial de L = k, el ajuste de la curva se reduce a un problema de interpolacin porque la curva ajustada pasa por los puntos de datos.

1.- AJUSTE DE LNEAS RECTAS Supongase que interesa ajustar una funcin lineal al conjunto de datos de la tabla 1.1. La lnea ajustada a un conjunto de datos se denomina lnea de regresin.

TABLA 1.1 i 1 2 3 4 5 6 x 0.1 0.4 0.5 0.7 0.7 0.7 y 0.61 0.92 0.99 1.52 1.47 2.03

La funcin lineal se expresa con 1.1 En donde c1 y c2 son constantes no determinadas. El nmero de puntos de datos es mayor que 2, la lnea no se ajusta a todos los puntos, se determina

minmizando las discrepancias entre la lnea y los datos. La desviacin de la lnea respecto de los puntos est definida por: 1.2 donde L es el nmero total de puntos de datos (6 en este ejemplo) y c1 y c2 son la constantes por determinar. La suma de las desviaciones elevadas al cuadrado es:

1.3 El mnimo de R ocurre cuando las derivadas parciales de R respecto de c1 y c2 son cero:

1.4

La ecuacin 1.4 puede reescribirse as:

1.5 donde

La solucin de la ecuacin 1.5 es

Una forma equivalente de determinar los coeficientes es considerar el problema como una ecuacin lneal sobredeterminada. Por ejemplo, si todos los puntos de datos de la tabla 1.1 satisfacen la ecuacin 1.1, escribimos: ; i = 1, 2, ... , L o bien 1.6 donde

Se dice que la ecuacin 1.6 es una ecuacin lineal sobredeterminada porque el nmero de ecuaciones, L , es mayor que el nmero de incgnitas. Para obtener la solucin, premultiplicamos a la ecuacin 1.6 por la transpuesta de A: 1.7 Puesto que AtA se convierte en una matriz cuadrada de 2 por 2 y Aty se convierte en un vector de longitud 2, la ecuacin 1.7 es un problema normal de 2 por 2. La solucin se obtiene con:

La solucin anterior concuerda con la ecuacin 1.6 Tambin podemos resolver una ecuacin sobredeterminada en MATLAB con slo:

Lo mismo puede lograrse tambin con polyfit. Supongamos que x y y son los conjuntos de datos por ajustar; entonces, c = polyfit(x, y, 1) devolver los coeficientes c1 y c2 en el vector c, donde el tercer argumento, "1", es el orden del polinomio ajustado y que en el caso de una lnea recta es la unidad. Ejemplo 1 Determinar la lnea de regresin para los datos de la tabla 1.1 (y) resolviendo la ecuacin 1.5 y (ii) utilizando el comando polyfit. Una vez obtenida la lnea de regresin, examine la desviacin de la lnea respecto de los datos. Solucin Calculamos los coeficientes de la ecuacin 1.5 como sigue: a2,1 z2 a1,1 z1 i xi yi xi2 xiyi 1 0.1 0.61 0.01 0.061 2 0.4 0.92 0.16 0.368 3 0.5 0.99 0.25 0.495 4 0.7 1.52 0.49 1.064 5 0.7 1.47 0.49 1.029 6 0.9 2.03 0.81 1.827 Total; 3.3 7.54 2.21 4.844 De la tabla anterior obtenemos a1,1 = 2.21, a1,2 = 3.3, z1 = 4.844 a2,1 = 3.3, a2,2 = 6, z2 = 7.54

As, la ecuacin 1.5 se convierte en [2.21, 3.3; 3.3, 6] [c1;c2] = [4.844; 7.54] (A) La solucin es c1 = 1.7645, c2 = 0.2862 La lnea de regresin es entonces

g(x) = 1.7645*x + 0.2862 (B) En la fig. 1.1 se grafica la ecuacin (B) con los puntos de datos. Programa de MATLAB LIST81.M x = [0.1, 0.4, 0.5, 0.7, 0.7, 0.9]; y = [0.61, 0.92, 0.99, 1.52, 1.47, 2.03]; c = polyfit(x,y,1) c1 = x(1):0.1:x(length(x)) c2 = polyval(c,c1) plot(c1,c2);hold on plot(x,y,'x') axis([0,1,0,2.1]) xlabel('x') ylabel('y') Programa de MATLAB x = [0.1, 0.4, 0.5, 0.7, 0.7, 0.9]; y = [0.61, 0.92, 0.99, 1.52, 1.47, 2.03]; c = polyfit(x,y,1) a = input('escriba el valor de c1 : ') b = input('Escriba el valor de c2 : ')

g = a.*x + b plot(x,g,'xg',x,g,'m') axis([0,1,0,2.1]) xlabel('x') ylabel('y') text(0.35,1.8, 'g(x) = a*x + b ') Ahora resolveremos el mismo problema utilizando el comando polyfit. El guin slo tiene tres lneas: x = [0.1, 0.4, 0.5, 0.7, 0.7, 0.9] y = [0.61, 0.92, 0.99, 1.52, 1.47, 2.03] c = polyfit(x, y, 1) El resultado es: c = 1.7646 0.2862 Que es idntico a los coeficientes de la ecuacin (B). La desviacin de la lnea se analiza as: i x(i) y(i) g = c1*x + c2 Desviacin 1 0.1 0.61 0.4626 0.14738 2 0.4 0.92 0.9919 -0.07198 3 0.5 0.99 1.1684 -0.17844 4 0.7 1.52 1.5213 -0.00135 5 0.7 1.47 1.5213 -0.05135 6 0.9 2.03 1.8742 0.15574 2.- AJUSTE DE CURVAS NO LINEALES CON UNA FUNCIN DE POTENCIA Con ciertos tipos de datos, puede ser adecuado ajustar la funcin de potencia dada por g(x) = b xa 2.1 donde a y b son coeficientes no determinados. Para determinar los coeficientes, primero obtenemos el logaritmo de la ecuacin 2.1: log(g) = a log(x) + log(b ) 2.2 Con las definiciones

2.3 2.4 2.5 2.6 La ecuacin 2.2 se convierte en:

Entonces el problema se reduce a una regresin lineal, que ya vimos en la seccin 1. La ecuacin 2.7 se ajusta al conjunto de datos (log(yi), log(xi). Ejemplo 2.Un conjunto de datos (graficado en la fig. 2) est dado por: x = [0.15, 0.4, 0.6, 1.01, 1.5, 2.2, 2.4, 2.7, 2.9, 3.5, 3.8, 4.4, 4.6, 5.1, 6.6, 7.6] y = [4.4964, 5.1284, 5.6931, 6.2884, 7.0989, 7.5507, 7.5106, 8.0756, 7.8708, 8.2403, 8.5303, 8.7394, 8.9981, 9.1450, 9.5970, 9.9115] c = polyfit(log(x), log(y), 1)

El guin produce:

c = 0.2093 1.8588 Las constantes de la funcin de potencia son: a = c1 = 0.2093 b = exp(c2) = exp(1.8588) = 6.4160 Por ltimo, la forma de potencias es g(x) = b *xa = 6.4160*x0.2093 El conjunto de datos y la curva ajustada se grafican de tres formas distintas en la fig. 3.

3.- AJUSTE DE CURVAS CON UN POLINOMIO DE ORDEN SUPERIOR El principio de los mnimos cuadrados puede extenderse al ajuste de un polinomio de orden superior a los datos de mediciones. Escribimos un polinomio de orden n as: 3.1 La desviacin de la curva respecto de cada punto de datos es ; i = 1,2, ... , L 3.2 donde L es el nmero de puntos de datos dados. La suma de las derivaciones elevadas al cuadrado es

3.3 A fin de minimizar R, igualamos a cero las derivadas parciales de R respecto de cj: , j = 1,2, ..., n+1 3.4 o, lo que es lo mismo,

; k = 1,2, ..., n+1 3.5 que tambin puede escribirse en la forma de matrices as:

3.6 Una forma equivalente de deducir la ecuacin 3.6 es partir de una ecuacin sobredeterminada. La forma matricial de la ecuacin es

3.7 donde

A= Cuando L > n + 1, la ecuacin est sobredeterminada porque el nmero de ecuaciones es mayor que el nmero de coeficientes no determinados. Si premultiplicamos ambos miembros por A obtenemos: 3.8 Que es igual a la ecuacin 3.6 y se puede resolver como problema normal con

En MATLAB, podemos obtener la solucin de la ecuacin 3.7 simplemente con

Como se anuncio en la seccin 1, otra forma equivalente pero ms sencilla de encontrar los coeficientes de un polinomio ajustado de datos consiste en utilizar polyfit: c = polyfit(x, y, n) Ejemplo 3 Ajuste el siguiente conjunto de datos a un polinomio cuadrtico: x = [0.1, 0.4, 0.5, 0.7, 0.7, 0.9]; y = [0.61,0.92, 0.99, 1.52, 1.47, 2.03]; y grafique tanto el conjunto de datos como la curva ajustada. Solucin Encontramos los coeficientes del polinomio cuadrtico con el comando polyfit y luego trazamos la curva. El siguiente guin produce la respuesta:

List82 Clear, clg x = [0.1, 0.4, 0.5, 0.7, 0.7, 0.9]; y = [0.61,0.92, 0.99, 1.52, 1.47, 2.03]; cc = polyfit(x, y, 1) xx = x(polival(cc,xx)) plot(xx, yy); hold on plot(x, y, x) axis([0,1, 0,3])

xlabel(X) ylabel(Y) La grfica del resultado se muestra en la fig. 4. 4.- AJUSTE DE CURVAS CON UNA COMBINACIN LINEAL DE FUNCIONES CONOCIDAS Al ajustar una funcin a puntos de datos, podemos utilizar una combinacin de cualesquier funciones conocidas, incluidos polinomios. 4.1 donde f1, f2, ... son funciones preescritas, c1, c2, ... son coeficientes no determinados y k es el nmero total de funciones prescritas. Si ajustamos la ecuacin 4.1 a cada punto de datos, podremos escribir una funcin sobredeterminada as: 4.2 Con

; donde L > k. Los coeficientes estn determinados por

Ejemplo 4. Determine los coeficientes de la funcin

ajustado a los datos de la siguiente tabla:

0.1 0.4 0.5 0.7 0.7 0.9

0.61 0.92 0.99 1.52 1.47 2.03

Solucin El argumento de resolucin se implementa en el listado 3. La curva determinada se grafica en la fig. 5 List83 clc; clear; clg data = [ 0.1 0.61; 0.92; 0.99; 0.7 1.52 0.7 1.47 2.03 ] x = data(:,1); y = data (:,2); A(:,1) = ones(x); A(:,2) = x; A(:,3) = sin(x); A(:, 4) = exp(x); c = A\y xx = 0 : 0.01 : 1 ; g = c(1) * ones(xx) c(2) * xx + c(3) * sin(xx) + c(4) * exp(xx); axis(square);
plot(x, y, * , xx, g); xlabel( x ); ylabel( y )

S-ar putea să vă placă și