AJUSTE DE CURVAS

12
 AJUSTE DE CURVAS A DATOS DE MEDICIONES Ajustar una curva implica ajustar una función g(x) a un conjunto de datos dado, (xi,yi) , y = 1, 2, ..., L. La función g(x) es un polinomio, una función no lineal o una combinaci ón li neal de funciones conocidas. La función g(x) que se elige para ajustar una curva contiene cierto número de coeficientes no determinados. En general, el número de puntos de datos por ajustar, L, es mayor que el número de coeficientes no determinados, k; por tanto, el método para determinar los coeficientes se basa en la minimización de las discrepancias entre la función determinada y los puntos de datos, y recibe el nombre de método de mínimos cuadrados. En el caso especial de L = k, el ajuste de la curva se reduce a un problema de interpolación porque la curva ajustada pasa por los puntos de datos. 1.- AJUSTE DE LÍNEAS RECTAS Supongase que interesa ajustar una función lineal al conjunto de datos de la tabla 1.1. La línea ajustada a un conjunto de datos se denomina línea de regresión. TABLA 1.1  i x y 1 0.1 0.61 2 0.4 0.92 3 0.5 0.99 4 0.7 1.52 5 0.7 1.47 6 0.7 2.03   La función lineal se expresa con 1.1 En donde c 1 y c 2 son constantes no determinadas. El númer o de puntos de datos es mayor que 2, la línea no se ajusta a todos los pun tos, se determina

Transcript of AJUSTE DE CURVAS

5/13/2018 AJUSTE DE CURVAS - slidepdf.com

http://slidepdf.com/reader/full/ajuste-de-curvas-55a74ef0ca4bb 1/12

AJUSTE DE CURVASA DATOS DE MEDICIONES 

Ajustar una curva implica ajustar una función g(x) a un conjunto de datos

dado, (xi,yi), y = 1, 2, ..., L. La función g(x) es un polinomio, una funciónno lineal o una combinación lineal de funciones conocidas. La función

g(x) que se elige para ajustar una curva contiene cierto número de

coeficientes no determinados. En general, el número de puntos de datos por ajustar, L, es mayor que el número de coeficientes no determinados, k; por 

tanto, el método para determinar los coeficientes se basa en la minimización

de las discrepancias entre la función determinada y los puntos de datos, y

recibe el nombre de método de mínimos cuadrados. En el caso especial de L= k, el ajuste de la curva se reduce a un problema de interpolación porque la

curva ajustada pasa por los puntos de datos.

1.- AJUSTE DE LÍNEAS RECTAS 

Supongase que interesa ajustar una función lineal al conjunto de datos de la

tabla 1.1. La línea ajustada a un conjunto de datos se denomina línea deregresión.

TABLA 1.1 

i x y

1 0.1 0.61

2 0.4 0.92

3 0.5 0.99

4 0.7 1.52

5 0.7 1.47

6 0.7 2.03

 

 La función lineal se expresa con

1.1 

En donde c1 y c2 son constantes no determinadas. El número de puntos de

datos es mayor que 2, la línea no se ajusta a todos los puntos, se determina

5/13/2018 AJUSTE DE CURVAS - slidepdf.com

http://slidepdf.com/reader/full/ajuste-de-curvas-55a74ef0ca4bb 2/12

minmizando las discrepancias entre la línea y los datos. La desviación de la

línea respecto de los puntos está definida por:

1.2

donde L es el número 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 mínimo de R ocurre cuando las derivadas parciales de R respecto de c1 y

c2 son cero:

1.4

La ecuación 1.4 puede reescribirse así:

1.5

donde

5/13/2018 AJUSTE DE CURVAS - slidepdf.com

http://slidepdf.com/reader/full/ajuste-de-curvas-55a74ef0ca4bb 3/12

La solución de la ecuación 1.5 es

Una forma equivalente de determinar los coeficientes es considerar el

 problema como una ecuación líneal sobredeterminada. Por ejemplo, si todos

los puntos de datos de la tabla 1.1 satisfacen la ecuación 1.1, escribimos:

; i = 1, 2, ... , L

o bien

1.6

donde

, ,

Se dice que la ecuación 1.6 es una ecuación lineal sobredeterminada porque

el número de ecuaciones, L , es mayor que el número de incógnitas. Para

obtener la solución, premultiplicamos a la ecuación 1.6 por la transpuesta deA:

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 ecuación 1.7 es un problema normal

de 2 por 2. La solución se obtiene con:

5/13/2018 AJUSTE DE CURVAS - slidepdf.com

http://slidepdf.com/reader/full/ajuste-de-curvas-55a74ef0ca4bb 4/12

La solución anterior concuerda con la ecuación 1.6

También podemos resolver una ecuación sobredeterminada en MATLABcon sólo:

Lo mismo puede lograrse también 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 línea recta es

la unidad.

Ejemplo 1 

Determinar la línea de regresión para los datos de la tabla 1.1 (y) resolviendola ecuación 1.5 y (ii) utilizando el comando polyfit. Una vez obtenida la

línea de regresión, examine la desviación de la línea respecto de los datos.

Solución 

Calculamos los coeficientes de la ecuación 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.3683 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.827Total; 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

5/13/2018 AJUSTE DE CURVAS - slidepdf.com

http://slidepdf.com/reader/full/ajuste-de-curvas-55a74ef0ca4bb 5/12

 

Así, la ecuación 1.5 se convierte en

[2.21, 3.3; 3.3, 6] [c1;c2] = [4.844; 7.54] (A)

 

La solución es

c1 = 1.7645, c2 = 0.2862

 La línea de regresión es entonces

g(x) = 1.7645*x + 0.2862 (B)

 En la fig. 1.1 se grafica la ecuación (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 : ')

5/13/2018 AJUSTE DE CURVAS - slidepdf.com

http://slidepdf.com/reader/full/ajuste-de-curvas-55a74ef0ca4bb 6/12

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 guión sólo tiene tres líneas:

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 idéntico a los coeficientes de la ecuación (B).

La desviación de la línea se analiza así:

i x(i) y(i) g = c1*x + c2 Desviación

1 0.1 0.61 0.4626 0.147382 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.001355 0.7 1.47 1.5213 -0.051356 0.9 2.03 1.8742 0.15574

2.- AJUSTE DE CURVAS NO LINEALES CON UNA FUNCIÓN DEPOTENCIA 

Con ciertos tipos de datos, puede ser adecuado ajustar la función 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 ecuación 2.1:

log(g) = a log(x) + log(b ) 2.2

 Con las definiciones 

5/13/2018 AJUSTE DE CURVAS - slidepdf.com

http://slidepdf.com/reader/full/ajuste-de-curvas-55a74ef0ca4bb 7/12

2.3

2.4

2.5

2.6

La ecuación 2.2 se convierte en:

Entonces el problema se reduce a una regresión lineal, que ya vimos en la

sección 1. La ecuación 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 guión produce:

5/13/2018 AJUSTE DE CURVAS - slidepdf.com

http://slidepdf.com/reader/full/ajuste-de-curvas-55a74ef0ca4bb 8/12

c = 0.2093 1.8588

 

Las constantes de la función 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 distintasen la fig. 3.

3.- AJUSTE DE CURVAS CON UN POLINOMIO DE ORDENSUPERIOR  El principio de los mínimos 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 desviación de la curva respecto de cada punto de datos es

; i = 1,2, ... , L 3.2

donde L es el número 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,

5/13/2018 AJUSTE DE CURVAS - slidepdf.com

http://slidepdf.com/reader/full/ajuste-de-curvas-55a74ef0ca4bb 9/12

; k = 1,2, ..., n+1 3.5

que también puede escribirse en la forma de matrices así:

3.6

Una forma equivalente de deducir la ecuación 3.6 es partir de una ecuación

sobredeterminada. La forma matricial de la ecuación es

3.7

 

donde

A =

Cuando L > n + 1, la ecuación está sobredeterminada porque el número de

ecuaciones es mayor que el número de coeficientes no determinados. Si premultiplicamos ambos miembros por A’ obtenemos:

3.8

Que es igual a la ecuación 3.6 y se puede resolver como problema normal

con

En MATLAB, podemos obtener la solución de la ecuación 3.7 simplementecon

5/13/2018 AJUSTE DE CURVAS - slidepdf.com

http://slidepdf.com/reader/full/ajuste-de-curvas-55a74ef0ca4bb 10/12

Como se anuncio en la sección 1, otra forma equivalente pero más sencilla

de encontrar los coeficientes de un polinomio ajustado de datos consiste enutilizar polyfit:

c = polyfit(x, y, n)

 

Ejemplo 3 

Ajuste el siguiente conjunto de datos a un polinomio cuadrático:

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.

Solución 

Encontramos los coeficientes del polinomio cuadrático con el comando polyfit y luego trazamos la curva. El siguiente guión 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]) 

5/13/2018 AJUSTE DE CURVAS - slidepdf.com

http://slidepdf.com/reader/full/ajuste-de-curvas-55a74ef0ca4bb 11/12

xlabel(‘X’) ylabel(‘Y’)

La gráfica del resultado se muestra en la fig. 4.

4.- AJUSTE DE CURVAS CON UNA COMBINACIÓN LINEAL DEFUNCIONES CONOCIDAS 

Al ajustar una función a puntos de datos, podemos utilizar una combinaciónde cualesquier funciones conocidas, incluidos polinomios.

4.1

donde f 1, f 2, ... son funciones preescritas, c1, c2, ... son coeficientes no

determinados y k es el número total de funciones prescritas. Si ajustamos la

ecuación 4.1 a cada punto de datos, podremos escribir una función

sobredeterminada así:

4.2

Con

; ;

donde L > k. Los coeficientes están determinados por 

Ejemplo 4. 

Determine los coeficientes de la función

ajustado a los datos de la siguiente tabla:

 

x y

5/13/2018 AJUSTE DE CURVAS - slidepdf.com

http://slidepdf.com/reader/full/ajuste-de-curvas-55a74ef0ca4bb 12/12

0.1 0.61

0.4 0.92

0.5 0.99

0.7 1.52

0.7 1.47

0.9 2.03

 

Solución El argumento de resolución se implementa en el listado 3. La curva

determinada se grafica en la fig. 5

List83 

clc; clear; clgdata = [ 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 ’ )