beamer-tu-logo
Ajuste de curvas.
Regresi ´ on.
Curso: M ´etodos Num ´ericos en Ingenier´ıa Profesor: Dr. Jos ´e A. Otero Hern ´andez Correo: j.a.otero@itesm.mx
web: http://metodosnumericoscem.weebly.com
Universidad: ITESM CEM
T ´ opicos
1
Introducci ´ on
2
Regresi ´ on por m´ınimos cuadrados Regresi ´on lineal por m´ınimos cuadrados Ejemplo
Programa MATLAB: linregr.m
Regresi ´on cuadr ´atica por m´ınimos cuadrados Programa MATLAB: cuadregr.m
Ejemplo
beamer-tu-logo
T ´ opicos
1
Introducci ´ on
2
Regresi ´ on por m´ınimos cuadrados Regresi ´on lineal por m´ınimos cuadrados Ejemplo
Programa MATLAB: linregr.m
Regresi ´on cuadr ´atica por m´ınimos cuadrados Programa MATLAB: cuadregr.m
Ejemplo
Ajuste de curvas
Es com ´un que los datos se den como valores discretos, Se podr´ıa necesitar la estimaci ´on de un punto entre valores discretos,
Se podr´ıa necesitar una curva que ajuste los datos para obtener estimaciones intermedias,
Se podr´ıa necesitar una version simplificada de una funci ´on complicada,
Estas aplicaciones se conocen como ajuste de curvas.
beamer-tu-logo
M ´etodos generales para el ajuste de curvas
Regresi ´ on: Si los datos exhiben un grado significativo de error
o ”ruido”, entonces la estrategia ser ´a obtener una sola curva
que represente la tendencia general de los datos.
M ´etodos generales para el ajuste de curvas
Interpolaci ´ on: Si se sabe que los datos son muy precisos,
entonces la estrategia ser ´a colocar una curva o una serie de
curvas que pasen por cada uno de los puntos.
beamer-tu-logo
T ´ opicos
1
Introducci ´ on
2
Regresi ´ on por m´ınimos cuadrados Regresi ´on lineal por m´ınimos cuadrados Ejemplo
Programa MATLAB: linregr.m
Regresi ´on cuadr ´atica por m´ınimos cuadrados Programa MATLAB: cuadregr.m
Ejemplo
Regresi ´on lineal por m´ınimos cuadrados
Regresi ´ on lineal por m´ınimos cuadrados
beamer-tu-logo Regresi ´on lineal por m´ınimos cuadrados
Regresi ´ on lineal por m´ınimos cuadrados
Problema: Ajustar a una l´ınea recta (y = a
0+ a
1x) el conjunto de puntos:
(x
1, y
1),(x
2, y
2),· · · ,(x
n, y
n).
El error (e) es la diferencia entre el modelo (linea recta) y la data, es decir es la diferencia entre el valor verdadero de y y el valor aproximado a
0+ a
1x. Por lo cual, se puede determinar como:
e = y − a
0− a
1x
Para cada punto (x
i, y
i) se define un error e
i. La estrategia para ajustar la linea recta consiste en minimizar la suma de los cuadrados de los errores entre los valores verdaderos y los valores aproximados. Esto es:
S
r=
n
X
i=1
e
2i=
n
X
i=1
(y
i− a
0− a
1x
i)
2Regresi ´on lineal por m´ınimos cuadrados
Ajuste de una l´ınea recta por m´ınimos cuadrados
Para determinar los valores de a
0y a
1, hay que derivar S
rcon respecto a cada uno de los coeficientes (a
0, a
1) e igual a cero:
∂S
r∂a
0= −2
n
X
i=1
(y
i− a
0− a
1x
i) = 0
∂S
r∂a
1= −2
n
X
i=1
(y
i− a
0− a
1x
i) x
i= 0
beamer-tu-logo Regresi ´on lineal por m´ınimos cuadrados
Ajuste de una l´ınea recta por m´ınimos cuadrados
0 =
n
X
i=1
y
i−
n
X
i=1
a
0−
n
X
i=1
a
1x
i0 =
n
X
i=1
y
ix
i−
n
X
i=1
a
0x
i−
n
X
i=1
a
1x
2iAjuste de una l´ınea recta por m´ınimos cuadrados
n
X
i=1
y
i= na
0+
n
X
i=1
x
i! a
1n
X
i=1
x
iy
i=
n
X
i=1
x
i! a
0+
n
X
i=1
x
2i!
a
1Regresi ´on lineal por m´ınimos cuadrados
Ajuste de una l´ınea recta por m´ınimos cuadrados
a
1= n
n
P
i=1
x
iy
i− P
ni=1
x
in
P
i=1
y
in
n
P
i=1
x
2i−
nP
i=1
x
i 2a
0=
n
P
i=1
y
in − a
1n
P
i=1
x
in
beamer-tu-logo Ejemplo
Ejemplo 1
Ajuste a una l´ınea recta los valores de x y y dados en la siguiente tabla:
x
iy
i1 0.5
2 2.5
3 2.0
4 4.0
5 3.5
6 6.0
7 5.5
Ejemplo
Soluci ´ on
c l e a r;c l c;
x = [ 1 2 3 4 5 6 7 ] ;
y= [ 0 . 5 2 . 5 2 . 0 4 . 0 3 . 5 6 . 0 5 . 5 ] ; n=length( x ) ;
sxy=sum( x . ∗ y ) sx2=sum( x . ∗ x ) sx=sum( x ) sy=sum( y )
a1 = ( n∗ sxy−sx ∗ sy ) / ( n∗sx2 −(sx ) ˆ 2 ) a0=sy / n−a1∗ sx / n
beamer-tu-logo Ejemplo
Soluci ´ on
% S o l u c i o n ejemplo 1 sxy = 119.5000 sx2 = 140
sx = 28
sy = 24
a1 = 0.8393 a0 = 0.0714
y = 0.0714+0.8393∗ x
Programa MATLAB: linregr.m
Programa Matlab
f u n c t i o n [ a ] = l i n r e g r ( x , y )
% l i n r e g r : A j u s t e de c ur va con r e g r e s i o n l i n e a l
% Entrada : x , y−−−−S a l i d a : a = [ a1 , a0 ] n = length( x ) ;
i f length( y ) ˜ = n , e r r o r( ’ x−y d i f e r e n t e s l o n g i t u d e s ’ ) ; end sx = sum( x ) ; sy = sum( y ) ;
sx2 = sum( x . ∗ x ) ; sxy = sum( x . ∗ y ) ; a ( 1 ) = ( n∗ sxy−sx ∗ sy ) / ( n∗sx2−sx ˆ 2 ) ; a ( 2 ) = sy / n−a ( 1 ) ∗ sx / n ;
% P l o t e o de l a data y l i n e a r e c t a a j u s t a d a xp = linspace(min( x ) ,max( x ) , 2 ) ;
yp = a ( 1 ) ∗xp+a ( 2 ) ;
p l o t( x ’ , y ’ , ’ o ’ , xp , yp ) ;g r i d on
beamer-tu-logo Programa MATLAB: linregr.m
Ejemplo 1: Programa Matlab
Regresi ´on cuadr ´atica por m´ınimos cuadrados
Regresi ´ on cuadr ´atica por m´ınimos cuadrados Problema: Ajustar a un polinomio cuadr ´atico (y = a
0+ a
1x + a
2x
2) el conjunto de puntos:
(x
1, y
1),(x
2, y
2),· · · ,(x
n, y
n).
El error (e) se puede determinar como:
e = y − a
0− a
1x − a
2x
2Para cada punto (x
i, y
i) se define un error e
i.
La estrategia para ajustar el polinomio cuadr ´atico consiste en
minimizar la suma de los cuadrados de los errores entre los
valores verdaderos y los valores aproximados. Esto es:
beamer-tu-logo Regresi ´on cuadr ´atica por m´ınimos cuadrados
Ajuste del polinomio cuadr ´atico por m´ınimos cuadrados Para determinar los valores de a
0, a
1y a
2, hay que derivar S
rcon respecto a cada uno de los coeficientes (a
0, a
1, a
2) e igual a cero:
∂S
r∂a
0= −2
n
X
i=1
y
i− a
0− a
1x
i− a
2x
2i= 0
∂S
r∂a
1= −2
n
X
i=1
y
i− a
0− a
1x
i− a
2x
2ix
i= 0
∂S
r∂a
2= −2
n
X
i=1
y
i− a
0− a
1x
i− a
2x
2ix
2i= 0
Regresi ´on cuadr ´atica por m´ınimos cuadrados
Ajuste del polinomio cuadr ´atico por m´ınimos cuadrados
n
X
i=1
y
i= n a
0+
n
X
i=1
x
i! a
1+
n
X
i=1
x
2i! a
2 nX
i=1
x
iy
i=
n
X
i=1
x
i! a
0+
n
X
i=1
x
2i! a
1+
n
X
i=1
x
3i! a
2n
X
i=1
x
2iy
i=
n
X
i=1
x
2i! a
0+
n
X
i=1
x
3i! a
1+
n
X
i=1
x
4i!
a
2beamer-tu-logo Regresi ´on cuadr ´atica por m´ınimos cuadrados
Programa para la soluci ´ on del sistema
c l e a r;c l c;
syms a0 a1 a2 n sx sy sx2 sxy sx3 sx4 sx2y ; eq1=n∗a0+sx ∗a1+sx2 ∗a2−sy ;
eq2=sx ∗a0+sx2 ∗a1+sx3 ∗a2−sxy ; eq3=sx2 ∗a0+sx3 ∗a1+sx4 ∗a2−sx2y ;
[ a0 a1 a2 ] = s o l v e ( eq1 , eq2 , eq3 , a0 , a1 , a2 )
Regresi ´on cuadr ´atica por m´ınimos cuadrados
Soluci ´ on del sistema
a0 = ( sx2y ∗ sx2ˆ2− sxy ∗ sx2 ∗sx3−sx4 ∗ sy ∗ sx2+sy ∗ sx3ˆ2−sx ∗ sx2y ∗ sx3+sx ∗ sx4 ∗ sxy ) / ( sx4 ∗ sx ˆ2−2∗ sx ∗ sx2 ∗ sx3+sx2ˆ3−n∗ sx4 ∗ sx2+n∗ sx3 ˆ 2 )
a1 = ( sx2 ˆ 2 ∗ sxy+n∗ sx2y ∗sx3−n∗ sx4 ∗ sxy−sx ∗ sx2 ∗ sx2y+sx ∗ sx4 ∗ sy
−sx2 ∗ sx3 ∗ sy ) / ( sx4 ∗ sx ˆ2−2∗ sx ∗ sx2 ∗ sx3+sx2ˆ3−n∗ sx4 ∗ sx2+n
∗ sx3 ˆ 2 )
a2 = ( sx2y ∗ sxˆ2− sxy ∗ sx ∗sx2−sx3 ∗ sy ∗ sx+sy ∗ sx2ˆ2−n∗ sx2y ∗ sx2+n
∗ sx3 ∗ sxy ) / ( sx4 ∗ sx ˆ2−2∗ sx ∗ sx2 ∗ sx3+sx2ˆ3−n∗ sx4 ∗ sx2+n∗
sx3 ˆ 2 )
beamer-tu-logo Programa MATLAB: cuadregr.m
f u n c t i o n [ a ] = c u a d r e g r ( x , y )
% c u a d r e g r : A j u s t e de c ur va con r e g r e s i o n c u a d r a t i c a
% Entrada : x , y−−−−S a l i d a : a = [ a2 , a1 , a0 ] n = length( x ) ;
i f length( y ) ˜ = n , e r r o r( ’ x−y d i f e r e n t e s l o n g i t u d e s ’ ) ; end sx=sum( x ) ; sy=sum( y ) ; sx2=sum( x . ∗ x ) ; sxy=sum( x . ∗ y ) ; sx3=sum( x . ∗ x . ∗ x ) ; sx4=sum( x . ∗ x . ∗ x . ∗ x ) ; sx2y=sum( x . ∗ x . ∗ y ) ; a ( 3 ) = ( sx2y ∗ sx2ˆ2− sxy ∗ sx2 ∗sx3−sx4 ∗ sy ∗ sx2+sy ∗ sx3ˆ2−sx ∗ sx2y
∗ sx3+sx ∗ sx4 ∗ sxy ) / ( sx4 ∗ sx ˆ2−2∗ sx ∗ sx2 ∗ sx3+sx2ˆ3−n∗ sx4 ∗ sx2+n∗ sx3 ˆ 2 ) ;
a ( 2 ) = ( sx2 ˆ 2 ∗ sxy+n∗ sx2y ∗sx3−n∗ sx4 ∗ sxy−sx ∗ sx2 ∗ sx2y+sx ∗ sx4 ∗ sy−sx2 ∗ sx3 ∗ sy ) / ( sx4 ∗ sx ˆ2−2∗ sx ∗ sx2 ∗ sx3+sx2ˆ3−n∗ sx4 ∗ sx2 +n∗ sx3 ˆ 2 ) ;
a ( 1 ) = ( sx2y ∗ sxˆ2− sxy ∗ sx ∗sx2−sx3 ∗ sy ∗ sx+sy ∗ sx2ˆ2−n∗ sx2y ∗ sx2 +n∗ sx3 ∗ sxy ) / ( sx4 ∗ sx ˆ2−2∗ sx ∗ sx2 ∗ sx3+sx2ˆ3−n∗ sx4 ∗ sx2+n∗
sx3 ˆ 2 ) ;
% P l o t e o de l a data y l i n e a r e c t a a j u s t a d a xp = linspace(min( x ) ,max( x ) , 1 0 0 ) ;
yp = a ( 3 ) +a ( 2 ) ∗xp+a ( 1 ) ∗xp . ˆ 2 ; p l o t( x ’ , y ’ , ’ o ’ , xp , yp ) ;g r i d on
Ejemplo
Ejemplo 2
Ajuste a un polinomio cuadr ´atico los valores de x y y dados en la siguiente tabla:
x
iy
i1 0.5
2 2.5
3 2.0
4 4.0
5 3.5
6 6.0
beamer-tu-logo Ejemplo