Está en la página 1de 50

REGRESIÓN POR MÍNIMOS CUADRADOS

n n n
m x  b1   y
i 1 i 1 i 1
n n n
m x  b x   yx
2

i 1 i 1 i 1

m
 x  y  n  xy
 x   n  x2 2

b
 x  xy   y x 2

 x   n  x
2 2

Por:
MsC. Luís Antonio Bautista Hernández
luisantonio.bautista@gmail.com

Octubre de 2009
INTRODUCCIÓN

La regresión por mínimos cuadrados es una de las técnicas mas utilizadas en la


investigación científica y como tal es la herramienta fundamental en al análisis de datos
numéricos. El objetivo principal de la regresión por mínimos cuadrados es determinar
la ecuación matemática que relaciona a las variables involucradas durante un
experimento al medir un fenómeno físico o químico; a la ecuación resultante se le
denomina el modelo matemático del fenómeno físico o químico en consideración.

La técnica de regresión comúnmente conocida es la regresión lineal para dos variables y


será el punto de partida para este documento. De otra parte se abordará la regresión no
lineal y las técnicas de linealización; adicionalmente se considerará la regresión lineal
multivariable para el caso específico en tres dimensiones y finalmente se considerará el
caso de regresión no lineal multivariable y sus técnicas de linealización.

Se hará énfasis en el empleo de la herramienta computacional Matlab para que sirva de


guía tanto a estudiantes como docentes y les permita realizar el análisis de datos de una
manera más fácil a la hora de realizar el análisis de datos numéricos.

Con este documento pretendo mostrar a los docentes acostumbrados atrabajar con el
papel milimetrado, logarítmico y semilogarítmico que las herramientas computacionales
actuales permiten realizar el mismo trabajo incluso de una manera mas precisa. De otra
parte se plantea la posibilidad de abordar el problema de la regresión al caso
multivariable.

Se abordará el problema de la regresión desde dos puntos de vista: por un lado de


presenta la regresión para datos discretos lo que corresponde a situaciones de
laboratorio y de otra parte se considerará la regresión para variables variable continua
útil a la hora de definir un modelo matemático.

Como tema adicional se tendrá en cuenta la regresión para fenómenos periódicos


mediante las series de Fourier.
1,1 EMPLEO DE MATLAB COMO HERRAMIENTA COMPUTACIONAL
El Matlab es una herramienta muy útil y fue desarrollada para facilitar los cómputos de
tipo matricial.

En este documento se mostrará como emplear esta herramienta en diferentes actividades


como son: representación gráfica de funciones y datos puntuales, definición de vectores,
planteamiento de matrices, suma de elementos de una matriz, eliminación Gaussiana de
matrices entre otras.

El entorno de Matlab presenta una ventana de historial donde se almacenan todas las
instrucciones ejecutadas y una ventana de comandos donde se digitan las instrucciones a
realizar. La ventana de comandos se identifica mediante un título (Command Window)
y presenta un signo (>>) que indica al usuario que se encuentra dispuesto a ejecutar
alguna orden.

Ilustración de la ventana de órdenes de Matlab.

A manera de guía se muestra enseguida una lista de órdenes con pequeños ejemplos que
podrá comprobar mediante el software.

1,1,1 CREACIÓN DE VARIABLES Y OPERACIONES ENTRE VARIABLES


-Creación de una variable real. a=2
-Borrar una variable clear a
-Borrar todas las variables clear
-Borrar la pantalla clc
-Visualizar las variables. who
-Creación de una variable compleja. a=2+3i
-Raíz cuadrada de una variable. sqrt(2+3i)
-Seno de una variable. sin(2+3i)
-Coseno de una variable. cos(2+3i)
-Tangente de una variable. tan(3-4i)
-Logaritmo natural de una variable. log(2.34)
-Exponencial de una variable eX exp(x)

1,1,2 CREACIÓN DE MATRICES Y OPERACIONES ENTRE MATRICES.


-Creación de un vector fila. a=[2 3 4 6]
-Creación de un vector columna. a=[2;3;4;5;6]
-Creación de una matriz a=[2 3 4 5;2 4 6 8]
-Creación de un vector fila ordenado a=2:0.5:5
-Creación de un vector ordenado a=linspace(2,3,30)
-Transpuesta de una matriz [2 3 4;5 6 7]'
-Elemento de una matriz a(2)
-Eliminar un elemento de una matriz a(3)=[]
-Suma de matrices [2 3 4]+[1 4 6]
-Producto de matrices [2 4;5 7]*[1 5;8 2]
-Inversa de una matriz inv([3 5;8 3])
-Producto cruz de dos vectores. cross([2 3 4],[5 7 8])
-Producto punto de dos vectores. dot([2 6 3],[1 6 8])
-Suma de los elementos de un vector. sum([2 3 4 5 5 7])
sum([2;3;4;4])
-Producto entre elementos de dos vectores [3 6 7].*[6 8 4]
-Potencia de los elementos de un vector [2 3 4 6].^3
-Determinante de una matriz. det([2 4 5;2 7 6;8 5 3])
-Eliminación Gaussiana de una matriz. rref([2 3 4 6;2 7 6 4;3 7 6 4])
-Tamaño de una matriz size([2 3 4 5;6 7 8 4])

1,1,3 CREACIÓN DE GRÁFICAS


-Evaluación de una función a partir de los elementos de un vector.
x=[2 3 4 5 6 7 8 9]
y=eval(vectorize('3*x^2+5*sin(x)'))
-Gráfica de una función como una línea roja plot(x,y,'r-')
-Gráfica de una función como puntos rojos plot(x,y,'r.')
-Título de una gráfica. title('Titulo de la gráfica')
-Titulo del eje x de una gráfica. xlabel('eje x')
-Título del eje y de una gráfica. ylabel('eje y')
-Activar coordenadas de una gráfica grid on
-Desactivar coordenadas de una gráfica grid off
-Congelar una gráfica. hold on
-Creación de un comentario. %%Comentario.

Nota:
En este documento las líneas de órdenes de Matlab se encuentran en cuadros
sombreados dispuestas de tal manera que el usuario puede copiar las órdenes y proceder
a pegarlas en Matlab 7.0, para luego ser ejecutadas y verificar su validez.
1,2 REGRESIÓN LINEAL SIMPLE
La regresión lineal simple es el caso mas conocido por la literatura en la cual se supone
que los datos de laboratorio presentan una gráfica de comportamiento lineal como se
muestra en la figura.

X Y
x1 y1
x2 y2
x3 y3

xn yn

Para este caso se supone que debe existir una ecuación de la forma y  m( x )  b .
Se espera que la recta que mejor se ajuste a los datos sea la que presente una menor
desviación a partir de los datos de laboratorio.

La técnica de regresión parte del hecho de que los coeficientes desconocidos de la recta
apropiados serán los que generen en total el menor error de desviación entre los datos de
laboratorio y la recta teórica.

 
Para cada dato la desviación está dada por la expresión: e  m( x )  b  y , de tal
modo que para la totalidad de los datos se determina el error total como la suma de los
errores parciales para cada experimento.
n
E   m( x i )  b  y i , sin embargo este método no es empleado en la realidad
i 1
ya que de hacerlo se incurre en el hecho de que un error positivo se anule con un error
negativo lo cual indicaría falsamente que no hay error. Para resolver esta dificultad los
matemáticos decidieron sumar el cuadrado de cada uno de los errores parciales a lo que
n

llamaron el error cuadrático total. E   m( x i )  b  y i  , de esta manera los


2 2

i 1
valores de (m) y (b) que mejor se ajusten serán los que hagan que el error cuadrático
total sea el menor posible por lo que se trata de un problema de optimización en varias
variables para lo cual se propone que las derivadas parciales con respecto a las variables
desconocidas del error cuadrático total se hagan cero así:
 2  n
E   m(x i )  b  yi 2  0
m m i1
 2  n
E   m(x i )  b  yi 2  0
b b i1

Al derivar se obtiene el siguiente sistema de ecuaciones:


n
2 m( x i )  b  y i x i  0
i 1
n
2 m( x i )  b  y i   0
i 1
Simplificando y reordenando se tiene:

n n n
m x i  b1   y i
i 1 i 1 i 1
n n n
m x  b x i   y i x i
2
i
i 1 i 1 i 1

La solución analítica de este sistema de ecuaciones es la siguiente:

m
 x  y  n  xy b
 x  xy   y x 2

 x   n  x 2 2
 x   n  x
2 2

Las anteriores son las fórmulas reconocidas en la mayoría de texto de estadística.

Ejemplo:
Durante un experimento se recolectaron los siguientes datos numéricos
correspondientes a las variables (x) y (y).

X Y
1 -2
2 0.1
3 2.5
4 4.7
5 6.5
6 9.8
7 11
8 14
9 16
10 20

La gráfica de estos datos es la siguiente:

20

15

10

-5
1 2 3 4 5 6 7 8 9 10

Se puede observar visualmente que los datos presentan un comportamiento lineal por lo
que se propone una ecuación de de la forma: y  m( x )  b
Los coeficientes (m) y (b) se determinan mediante las siguientes ecuaciones:

m
 x  y  n  xy b
 x  xy   y x 2

 x   n  x
2 2
 x   n  x
2 2

Para facilitar su cálculo se elabora la siguiente tabla:

X Y XY X2
1.0000 -2.0000 -2.0000 1.0000
2.0000 0.1000 0.2000 4.0000
3.0000 2.5000 7.5000 9.0000
4.0000 4.7000 18.8000 16.0000
5.0000 6.5000 32.5000 25.0000
6.0000 9.8000 58.8000 36.0000
7.0000 11.0000 77.0000 49.0000
8.0000 14.0000 112.0000 64.0000
9.0000 16.0000 144.0000 81.0000
10.0000 20.0000 200.0000 100.0000

Luego se determinan las sumas de cada una de las columnas.

X Y XY X2
1.0000 -2.0000 -2.0000 1.0000
2.0000 0.1000 0.2000 4.0000
3.0000 2.5000 7.5000 9.0000
4.0000 4.7000 18.8000 16.0000
5.0000 6.5000 32.5000 25.0000
6.0000 9.8000 58.8000 36.0000
7.0000 11.0000 77.0000 49.0000
8.0000 14.0000 112.0000 64.0000
9.0000 16.0000 144.0000 81.0000
10.0000 20.0000 200.0000 100.0000

ΣX=55 ΣY=82.6 ΣXY=648.8 ΣX2=385

Ahora se determinan los coeficientes (m) y (b).

(55)(82.6)  (10)(648 .8) (55)(648.8)  (82.6)(385)


m  2.3576 ; b   4.7067
55 2
 (10)(385) 552  (10)(385)
y  2.375(x)  4.7067
20

15

10

-5
1 2 3 4 5 6 7 8 9 10

En la gráfica puede apreciarse visualmente que la ecuación obtenida es una muy buena
aproximación.

Lista de Ordenes de Matlab.

%Se ingresas los datos


x=[1 2 3 4 5 6 7 8 9 10];
y=[-2 0.1 2.5 4.7 6.5 9.8 11 14 16 20];
%Se grafican los puntos.
plot(x,y,'ro');
n=10;
%Se calcula los coeficientes.
m=(sum(x)*sum(y)-n*sum(x.*y))/(sum(x)^2-n*sum(x.*x));
b=(sum(x)*sum(x.*y)-sum(y)*sum(x.*x))/(sum(x)^2-n*sum(x.*x));
%Se define la ecuación de regresión.
yt=m*x+b;
hold on;
%Se grafica la función teórica.
plot(x,yt,'b-');
title('x vs y');
1,3 REGRESIÓN NO LINEAL
La mayoría de los fenómenos físicos y químicos presentan un comportamiento no lineal
por lo que es necesario realizar un proceso adicional de identificación del modelo
matemático.

Para aplicar adecuadamente la regresión para comportamientos no lineales se


recomienda seguir estos pasos:

En primer lugar es necesario representar gráficamente los datos de laboratorio.


A partir de la gráfica obtenida se propone una posible ecuación que pueda ajustarse a la
totalidad de los puntos observados.
Una vez identificada la ecuación que mejor se ajuste a los datos de laboratorio se
recomienda realizar propiamente el método de regresión.

Ejemplo:
Durante un experimento se obtuvo la siguiente tabla de datos:

y -5 -4 -3 -2 -1 0 1 2 3 4 5
y -50 -32 -20 -9 -2 2.5 4 2 -2 -9 -21

La representación gráfica de estos datos es la siguiente:

10

-10

-20

-30

-40

-50
-5 -4 -3 -2 -1 0 1 2 3 4 5

Se puede observar un comportamiento parabólico por lo que se propone un polinomio


de la forma: y  ax 2  bx  c

Se propone la suma de los cuadrados de los errores.


E   ax i2  bx i  c  y i 
n
2 2

i 1
Ahora se proponen las derivadas de la sumatoria.
 2
 
n
E  2 ax i2  bx i  c  y i x i2  0
a i 1

 2
 
n
E  2 ax i2  bx i  c  y i x i  0
b i 1

 2
 
n
E  2 ax i2  bx i  c  y i  0
c i 1

Se obtiene el siguiente sistema de ecuaciones:


n n n n
a  x i4  b x 3i  c x i2   x i2 y i
i 1 i 1 i 1 i 1
n n n n
a  x 3i  b x i2  c x i   x i y i
i 1 i 1 i 1 i 1
n n n n
a  x i2  b x i  c1   y i
i 1 i 1 i 1 i 1

Se obtiene la siguiente matriz que representa el sistema de ecuaciones:

1958 0 110  2655 


 
 0 110 0 319 
 110 11  136.5 
 0

Realizando eliminación gaussiana se tiene:


 1 0 0  1.5035 
 
0 1 0 2.9 
 0 0 1 2.6259 
 

Luego la ecuación de regresión es: y  1.5x 2  2.9x  2.63


Podemos visualizar la ecuación.
10

-10

-20

-30

-40

-50
-5 -4 -3 -2 -1 0 1 2 3 4 5

Se puede observar que se trata de una buena aproximación.

Lista de Ordenes de Matlab.


x=[-5 -4 -3 -2 -1 0 1 2 3 4 5];
y=[-50 -32 -20 -9 -2 2.5 4 2 -2 -9 -21];
plot(x,y,'ro');grid;
A=[sum(x.^4) sum(x.^3) sum(x.^2) sum(x.^2.*y);sum(x.^3) sum(x.^2) sum(x)
sum(x.*y);sum(x.^2) sum(x) size(x,2) sum(y)];
B=rref(A);
xt=-5:0.1:5;
a=B(1,4);b=B(2,4);c=B(3,4);
yt=a.*(xt.^2)+b.*xt+c;
hold on;
plot(xt,yt);
1,4 TECNICAS DE LINEALIZACIÓN
En algunos casos no lineales es posible encontrar un comportamiento lineal realizando
una búsqueda de posibles tendencias. Un método muy frecuente que resulta útil en la
mayoría de los experimentos es la aplicación de logaritmos a los datos de laboratorio
como se explica enseguida. En esta situación generalmente se presentan dos
situaciones: un caso logarítmico y un caso semilogarítmico.

1,4,1 CASO LOGARÍTMICO:

Para el caso en el cual se presenta la relación y  ax , la cual no tiene


n

comportamiento lineal. Si aplicamos logaritmo a la expresión se tiene:


ln( y)  ln( a )  n ln( x) , si además hacemos un cambio de variables
Sea x 2  ln( x ) , y 2  ln( y) , la ecuación se transforma en:
y 2  c  n ( x 2 ) la cual corresponde a un comportamiento lineal.
1,4,2 CASO SEMILOGARÍTMICO:
y  a (b x ) , se aplica logaritmos y se obtiene:
Para el caso
ln( y)  ln( a )  x ln( b) , mediante el cambio de variables x2  x ,
y 2  ln( y) , se obtiene la ecuación: y 2  c  n ( x 2 )
Ejemplo:
Durante el experimento para determinar la relación entre la longitud del péndulo simple
y su correspondiente periodo de oscilaciones se obtuvo la siguiente tabla de datos.

L 0.1 0.2 0.4 0.6 0.8 1 1.2 1.5


T 0.6344 0.8971 1.2687 1.5539 1.7943 2.0061 2.1975 2.4569

Su representación gráfica demuestra que no hay un comportamiento lineal entre las


variables. Determine el modelo matemático que relaciona a estas variables.

Solución:
Se visualizan diferentes combinaciones de las variables aplicando el logaritmo a cada
una de ellas, para este caso se consideran cuatro combinaciones así: L vs T, ln(L) vs T,
L vs ln(T) y ln(L) vs ln(T).
L vs T
2.6

2.4

2.2

1.8

1.6

1.4

1.2

0.8

0 0.5 1 1.5

ln(L) vs T
2.6

2.4

2.2

1.8

1.6

1.4

1.2

0.8

-2.5 -2 -1.5 -1 -0.5 0 0.5


L vs Ln(T)
1

0.5

-0.5
0 0.5 1 1.5

Ln(L) vs Ln(T)
1

0.5

-0.5
-2.5 -2 -1.5 -1 -0.5 0 0.5

Puede observarse gráficamente que la combinación Ln(L) vs Ln(T) presenta un


comportamiento lineal.
Se propone al cambio de variables. x  ln( L) , y  ln( T) . Luego el modelo matemático
es de la forma y  ax  b y paso seguido se aplica la técnica de regresión lineal así:

Ln(L) -2.3026 -1.6094 -0.9163 -0.5108 -0.2231 0 0.1823 0.4055


Ln(T) -0.4551 -0.1085 0.208 0.4408 0.5846 0.6962 0.7873 0.8989

Luego se plantea el sistema de ecuaciones de regresión:


a  x  b( n )   y
a  x 2  b x   xy

Esto conduce a la siguiente matriz y su correspondiente eliminación gaussiana.


  4.9745 8 3.0822   1 0 0.5 
  ,  
 9.2402  4.9745 1.1570   0 1 0.6962 

Luego la ecuación de regresión es: y  0.5x  0.6962


Recuperando variables se tiene: Ln(T)  0.5Ln (L)  0.6962

Aplicando propiedades logarítmicas se tiene la siguiente expresión:


Ln (T)  Ln (L )  ln e
0.5
 0.6962
, es lo mismo que Ln(T)  Ln(L 0.5 0.6962
e )
Se concluye finalmente que T  2.0061(L ) cuya gráfica se muestra enseguida:
0.5

2.6

2.4

2.2

1.8

1.6

1.4

1.2

0.8

0 0.5 1 1.5

Lista de Ordenes de Matlab.


L=[0.1 0.2 0.4 0.6 0.8 1 1.2 1.5];
T=[0.6344 0.8971 1.2687 1.5539 1.7943 2.0061 2.1975 2.4569];
figure;plot(L,T,'r.');title('L vs T');grid;
figure;plot(L,T,'r.');title('L vs T');grid;
figure;plot(log(L),T,'r.');title('ln(L) vs T');grid;
figure;plot(L,log(T),'r.');title('L vs Ln(T)');grid;
figure;plot(log(L),log(T),'r.');title('Ln(L) vs Ln(T)');grid;

La combinación Log(L) vs Log(T) presenta un comportamiento lineal.


x=log(L);
y=log(T);
A=[sum(x) size(x,2) sum(y);sum(x.*x) sum(x) sum(x.*y)];
B=rref(A)
a=B(1,3);b=B(2,3);
yt=a*x+b;

Nota Importante:
En técnicas de linealización eliminar valores negativos.
Debe tenerse en cuenta que si a los datos a los cuales se les va a aplicar las técnicas de
linealización presentan valores negativos, se recomienda eliminarlos antes de aplicar
logaritmos. La perdida de alguna información no afectará notablemente la ecuación de
regresión siempre y cuando no se presente perdida de mucha información.

Ejemplo
Durante un experimento se presentaron los siguientes datos. Determine la relación
matemática entre las variables.

x -7 -3 1 2 3 5 6 8 9 10
y 0.1346 0.6815 3.45 5.175 7.7625 17.4656 26.1984 58.9465 88.4197 132.6296

x=[-7 -3 1 2 3 5 6 8 9 10];
y=[0.1346 0.6815 3.45 5.175 7.7625 17.4656 26.1984 58.9465 88.4197 132.6296];
plot(x,y,'r.');
title('x vs y');grid;

La gráfica de los datos se muestra enseguida.


x vs y
140

120

100

80

60

40

20

0
-8 -6 -4 -2 0 2 4 6 8 10

Se observa que el comportamiento no es lineal y se procede a liminar los datos


negativos.
x([1 2])=[];y([1 2])=[];

Se realiza la regresión con los siguientes datos.

x 1 2 3 5 6 8 9 10
y 3.45 5.175 7.7625 17.4656 26.1984 58.9465 88.4197 132.6296

Se elabora la gráfica de los datos resultantes.


plot(x,y,'r.');
title('x vs y');grid;
x vs y
140

120

100

80

60

40

20

0
1 2 3 4 5 6 7 8 9 10

Paso seguido se elaboran diferentes combinaciones de gráficas para identificar el


adecuado comportamiento lineal.

figure;plot(x,y,'r.');title('x vs y');grid;
figure;plot(log(x),y,'r.');title('Ln(x) vs y');grid;
figure;plot(x,log(y),'r.');title('x vs Ln(y)');grid;
figure;plot(log(x),log(y),'r.');title('Ln(x) vs Ln(y)');grid;
Ln(x) vs y
140

120

100

80

60

40

20

0
0 0.5 1 1.5 2 2.5

x vs Ln(y)
5

4.5

3.5

2.5

1.5

1
1 2 3 4 5 6 7 8 9 10
Ln(x) vs Ln(y)
5

4.5

3.5

2.5

1.5

1
0 0.5 1 1.5 2 2.5

Se observa que la relación (x) vs (ln(y)) presenta un comportamiento lineal por lo que
se propone el cambio de variables: x 2  x , y 2  ln( y) y se propone la expresión de
regresión correspondiente: y 2  a ( x 2 )  b

Se plantean las ecuaciones de regresión mediante la matriz ampliada del sistema:

x2=x;y2=log(y);
A=[sum(x2) size(x2,2) sum(y2);sum(x2.*x2) sum(x2) sum(x2.*y2)];
B=rref(A);

Ahora se determinan los coeficientes de la ecuación de regresión.

a=B(1,3);b=B(2,3);

 x2 n  a    y 2 
     
 x2
 2  x 2  b    x 2 y 2 

 x2 n y   44 8 24.5037 
  = 
 320 44 166 .3968 
2
 x2 x2 x y 
 2 2 2  

Por eliminación gaussiana se tiene:


 1 0 0.4055 
 
 0 1 0.8329 
La ecuación de regresión es: y 2  0.4055 ( x 2 )  0.8329

Se recuperan las variables: ln( y)  0.4055(x)  0.8329


Aplicando logaritmos se tiene:

ln( y)  ln( e0.4055( x )0.8329)  ln(( e0.4055) x e0.8329)  ln( 2.3(1.5x ))

Se concluye finalmente que la ecuación de regresión es: y  2.3(1.5x )

Se grafica la ecuación de regresión final y para ello se define un nuevo vector para las
(x) y un nuevo vector para las (y) que contenga mas información de modo que la gráfica
resultante parezca continua.

xt=-7:0.1:10;
yt=eval(vectorize('2.3*(1.5^xt)'));
plot(x,y,'ro');
hold on;
plot(xt,yt);title('x vs y');grid;

x vs y
140

120

100

80

60

40

20

0
-8 -6 -4 -2 0 2 4 6 8 10

Se observa finalmente que la curva obtenida se ajusta muy bien a los datos
proporcionados.
1,5 REGRESIÓN LINEAL MULTIVARIABLE.
La regresión lineal multivariable es muy común en la mayoría de fenómenos que
involucran problemas físicos o químicos.

El planteamiento de la ecuación de regresión es como se indica enseguida.

Dada la función: y  a 1x1  a 2 x 2  a 3 x3   a n xn


Se propone la suma de los cuadrados de las desviaciones.
n
E   a 1x1i  a 2 x 2i  a 3 x3i   a n xn i  y i 
2 2

i 1
Paso seguido se plantean las derivadas parciales del error cuadrático.

E 2 n
 2 a 1x1i  a 2 x 2i  a 3 x3i   a n xn i  y i x1i  0
a 1 i 1

E 2 n
 2 a 1x1i  a 2 x 2i  a 3 x3i   a n xn i  y i x 2i  0
a 2 i 1

E 2 n
 2 a 1x1i  a 2 x 2i  a 3 x3i   a n xn i  y i x3i  0
a 3 i 1

E 2 n
 2 a 1x1i  a 2 x 2i  a 3 x3i   a n xn i  y i xn i  0
a n i 1

Se simplifican y reordenan las ecuaciones para obtener el siguiente sistema de


ecuaciones:

n n

 a x1 x1  a
i 1
1 i i 2 x 2i x1i  a 3 x3i x1i    a n xn i x1i    y i x1i
i 1
n n

 a x1 x 2
i 1
1 i i  a 2 x 2i x 2i  a 3 x3i x 2i    a n xn i x 2i    y i x 2i
i 1
n n

 a x1 x3
i 1
1 i i  a 2 x 2i x3i  a 3 x3i x3i    a n xn i x3i    y i x3i
i 1

n n

 a x1 xn
i 1
1 i i  a 2 x 2i xn i  a 3 x3i xn i    a n xn i xn i    y i xn i
i 1
Ejemplo.
Durante un experimento se obtuvieron los siguientes datos:

x 1 2 3 4 5 6 7 8 9
y 2 5 4 7 6 8 4 6 1
z 1.55 4.35 7.15 9.95 12.75 15.55 18.35 21.15 23.95

Si se presume que presentan un comportamiento lineal de la forma: z  ax  by  c ,


determine la ecuación de regresión.

Se propone el sistema de ecuaciones de regresión.

a  x  b y  cn   z
a  x  b xy  c x   zx
2

a  xy  b y 2  c y   yz

La matriz ampliada del sistema de ecuaciones es la siguiente:


 x y n  z   45 43 9 110.15 

  x  xy  x  xz  =  285 215 45 580.75 
2

 xy
  y 2  y  yz   215 247 43 621.85 
La eliminación gaussiana es:
1 0 0 0. 5 
 
0 1 0 2. 3 
 0 0 1  1.25 
 
Lo que corresponde a la función: z  0.5x  2.3y  1.25

Lista de Instrucciones de Matlab.


%%Ingreso de datos:
x=[1 2 3 4 5 6 7 8 9];
y=[2 5 4 7 6 8 4 6 1];
z=[1.55 4.35 7.15 9.95 12.75 15.55 18.35 21.15 23.95];
%%Se plantea la matriz ampliada del sistema de ecuaciones de regresión.
A=[sum(x) sum(y) size(x,2) sum(z);sum(x.*x) sum(x.*y) sum(x) sum(x.*z);sum(x.*y)
sum(y.*y) sum(y) sum(y.*z)];
%%Se aplica eliminación Gaussiana a la matriz ampliada.
B=rref(A);
%%Se identifican los coeficientes de la matriz de regresión.
a=B(1,4);b=B(2,4);c=B(3,4);
%%Se propone el polinomio de regresión y se evalúa.
zt=a*x+b*y+c;
%%Se elabora una tabla de datos:
[x' y' z' zt' (z-zt)']
Resultado obtenido:
X Y Z Zt e
1.0000 2.0000 1.5500 1.5500 -0.0000
2.0000 5.0000 4.3500 4.3500 -0.0000
3.0000 4.0000 7.1500 7.1500 -0.0000
4.0000 7.0000 9.9500 9.9500 -0.0000
5.0000 6.0000 12.7500 12.7500 -0.0000
6.0000 8.0000 15.5500 15.5500 0.0000
7.0000 4.0000 18.3500 18.3500 0
8.0000 6.0000 21.1500 21.1500 0.0000
9.0000 1.0000 23.9500 23.9500 0

Se puede verificar visualmente que la ecuación de regresión es apropiada.

1,5,1 EMPLEO DE MATLAB PARA VISUALIZAR LOS DATOS EN


TRES DIMENSIONES.
Matlab posee una excelente herramienta que permite visualizar si los datos en tres
dimensiones presentan un comportamiento lineal mediante la orden (plot3) como se
muestra enseguida mediante un ejemplo.

Tomaremos el mismo ejemplo anterior en el cual durante un experimento se obtuvieron


los siguientes datos:

X Y Z
1.0000 2.0000 1.5500
2.0000 5.0000 4.3500
3.0000 4.0000 7.1500
4.0000 7.0000 9.9500
5.0000 6.0000 12.7500
6.0000 8.0000 15.5500
7.0000 4.0000 18.3500
8.0000 6.0000 21.1500
9.0000 1.0000 23.9500

%%Ingreso de datos:
x=[1 2 3 4 5 6 7 8 9];
y=[2 5 4 7 6 8 4 6 1];
z=[1.55 4.35 7.15 9.95 12.75 15.55 18.35 21.15 23.95];
%%Se visualizan los datos en el espacio.
plot3(x,y,z,'r.');title('x,y vs z');
x,y vs z

25

20

15

10

0
8
6 10
8
4 6
2 4
2
0 0

Ahora se emplea la herramienta de rotado en tres dimensiones (Rotate 3D) cuyo icono
se indica . Luego de girar mediante el Mouse es posible encontrar una vista que
indica efectivamente los datos tienen un comportamiento lineal como se muestra
enseguida.
x,y vs z

25

20

15

10

5
0

0 5
1 2 3 4 5 6 7 8 10
9
El anterior método depende de la destreza del usuario para girar la gráfica en el espacio
hasta encontrar un comportamiento lineal, sin embargo hay otra forma mas precisa de
lograr el mismo cometido como se indica enseguida.

Premisa:
Si un grupo de puntos en tres dimensiones se encuentran sobre un plano, entonces la
visual que parte desde uno de estos puntos y se dirige hacia otro de los puntos dados
resulta en una vista en la cual todos los puntos se visualizan a lo largo de una línea.

Primero visualizamos los datos en tres dimensiones.


%%Ingreso de datos:
x=[1 2 3 4 5 6 7 8 9];
y=[2 5 4 7 6 8 4 6 1];
z=[1.55 4.35 7.15 9.95 12.75 15.55 18.35 21.15 23.95];
%%Se visualizan los datos en el espacio.
plot3(x,y,z,'r.');title('x,y vs z');

Ahora mediante la orden de consulta (get) se observan las propiedades de los ejes del
sistema de coordenadas de la gráfica actual (gca = get current axes).

get(gca)

Resultado obtenido:
ActivePositionProperty = outerposition
ALim = [0 1]
ALimMode = auto
AmbientLightColor = [1 1 1]
Box = off
CameraPosition = [-12.9097 -14.5639 233.815]
CameraPositionMode = manual
CameraTarget = [5 4.5 20]
CameraTargetMode = auto
CameraUpVector = [0.689042 0.704539 2.97463]
CameraUpVectorMode = manual
CameraViewAngle = [15.5298]
CameraViewAngleMode = auto
CLim = [0 1]
CLimMode = auto
Color = [1 1 1]
CurrentPoint = [ (2 by 3) double array]
ColorOrder = [ (7 by 3) double array]
DataAspectRatio = [1.42857 1 5.71429]
……..

Puede observarse que hay dos propiedades que soporta la gráfica: CameraPosition y
CameraTarget. Mediante estas dos variables es posible controlar la visualización de los
datos en tres dimensiones.
Si modificamos los valores de las variables (CameraPosition) y (CameraTarget)
mediante la orden (set) de tal manera que (CameraPosition) coincida con un punto de la
gráfica y (CameraTarget) coincida con otro punto de la gráfica.

%%Ubicamos la cámara en el primer punto.


set(gca,'CameraPosition',[x(1) y(1) z(1)]);
%%Visualizamos hacia el quinto punto.
set(gca,'CameraTarget',[x(5) y(5) z(5)]);

Como resultado se puede observar una vista de los datos desde la cual estos se
visualizan en línea recta como se muestra enseguida.

Vista resultante.
1,6 REGRESIÓN MULTIVARIABLE NO LINEAL.
Durante un experimento se obtuvo la siguiente tabla de datos.

X Y Z
0.1000 1.3000 0.0250
0.2000 4.5000 0.1087
0.3000 2.3000 0.2658
0.4000 1.5000 0.5135
0.5000 2.6000 0.8720
0.7000 3.1000 2.0190
0.8000 4.2000 2.8661
0.9000 1.4000 3.9425
1.3000 2.5000 11.4779
2.0000 2.7000 48.6680

Determine la función que relaciona a estas variables.

%%Primero se ingresan las variables.


x=[0.1 0.2 0.3 0.4 0.5 0.7 0.8 0.9 1.3 2];
y=[1.3 4.5 2.3 1.5 2.6 3.1 4.2 1.4 2.5 2.7];
z=[0.0679 3.9045 1.4059 1.2836 5.0137 14.9032 48.6592 5.9790 31.1842
87.1873];
%%Se visualizan todas las posibles combinaciones de las variables.
figure;plot3(x,y,z,'r.');title('x,y vs z');
figure;plot3(log(x),y,z,'r.');title('ln(x),y vs z');
figure;plot3(x,log(y),z,'r.');title('x,ln(y) vs z');
figure;plot3(x,y,log(z),'r.');title('x,y vs ln(z)');
figure;plot3(log(x),log(y),z,'r.');title('ln(x),ln(y) vs z');
figure;plot3(log(x),y,log(z),'r.');title('ln(x),y vs ln(z)');
figure;plot3(x,log(y),log(z),'r.');title('x,ln(y) vs ln(z)');
figure;plot3(log(x),log(y),log(z),'r.');title('ln(x),ln(y) vs ln(z)');

Recomendación.
Se recomienda que por cada gráfica se utilice la herramienta de rotado hasta hacer
coincidir dos puntos, de esta manera si hay comportamiento lineal este quedará en
evidencia inmediatamente.

Enseguida se muestran las gráficas generadas y rotadas manualmente.


x,y vs z

100

80

60

40

20

0
0
0.5
1 1
2
1.5 3
4
2 5

100 ln(x),y vs z

80

60

40

20

0
1

5
-2.5 -2 -1.5 -1 -0.5 0 0.5 1
x,ln(y) vs z

100

80

60

40

20
0
0
0.5
0
0.5 1
1
1.5
1.5
2 2

x,y vs ln(z)
6

-2

-4
0

6 1 1.5 2
0 0.5
ln(x),ln(y) vs z
100

80

60

40

20

0
0

0.5

1.5

2 0.5 1
-2.5 -2 -1.5 -1 -0.5 0

ln(x),y vs ln(z)

-1

-2

-3
0
2
4 1
-0.5 0 0.5
6 -2 -1.5 -1
-2.5
x,ln(y) vs ln(z)
6

-2

-4
0

2 1.5 2
0 0.5 1

ln(x),ln(y) vs ln(z)

-1

-2

-3 2
-3 -2 -1 0 1
1 0
Se concluye que la relación ln(x), y, ln(z) presenta un comportamiento lineal.

%%Se propone un cambio de variables x2=ln(x);y2=y;z2=ln(z).


x2=log(x);y2=y;z2=log(z);
%%Se propone la relación de la forma: a(x2)+b(y2)+c=z2
%%Se plante la matriz ampliada del sistema de ecuaciones d regresión.
A=[sum(x2) sum(y2) size(x2,2) sum(z2);sum(x2.*x2) sum(x2.*y2) sum(x2)
sum(x2.*z2);sum(y2.*x2) sum(y2.*y2) sum(y2) sum(y2.*z2)];
B=rref(A);

Se obtiene la matriz reducida siguiente.

  6.4551 26.1 10 17.1576  1 0 0 2 


   
 11.3992  15.8446  6.4551 4.2253  →  0 1 0 0.833 
  15.8446 55.841   0 0 1 0.833 
 78.99 26.1  

Lo que corresponde a la solución 2 ln( x)  0.833y  0.833  ln( z)


Es lo mismo que ln( x )  ln(( e ) )  ln( e 0.833 )  ln( z)
2 0.833 y

Es lo mismo que ln( 2.3x 2 (2.3 y ))  ln( z)


Es lo mismo que z  2.3x 2 (2.3 y ) que es la función de regresión.

Se propone ahora el valor teórico.


zt=eval(vectorize('2.3*x^2*2.3^y'));
%%Se verifica que los valores teóricos coinciden con los datos de laboratorio.
[x' y' z' zt' (z-zt)']

Resultado obtenido.

x y z zt (z-zt)
0.1000 1.3000 0.0679 0.0679 -0.0000
0.2000 4.5000 3.9045 3.9045 0.0000
0.3000 2.3000 1.4059 1.4059 0.0000
0.4000 1.5000 1.2836 1.2836 -0.0000
0.5000 2.6000 5.0137 5.0137 -0.0000
0.7000 3.1000 14.9032 14.9032 -0.0000
0.8000 4.2000 48.6592 48.6592 0.0000
0.9000 1.4000 5.9790 5.9790 -0.0000
1.3000 2.5000 31.1842 31.1842 0.0000
2.0000 2.7000 87.1873 87.1873 0.0000

Nota Importante.
Debe recordarse que en las técnicas de linealización antes de aplicar logaritmos deben
eliminarse las filas que contengan datos negativos.
1,7 REGRESIÓN POR MÍNIMOS CUADRADOS EN VARIABLE
CONTINUA.
Es otra técnica muy utilizada en la cual se busca un polinomio que se aproxima a otro.

Dado una función f(x) continua en el intervalo a≤x≤b se propone un polinomio


g(x)=a0+a1x+a2x2+a3x3+…+anxn el cual se aproxima al primero.

b
Para resolver el problema se propone la integral. I   (f  g) 2 dx , el polinomio que
a

mejor se ajusta se determina planteando las derivadas parciales de la integral con


respecto a los coeficientes desconocidos e igualando estas derivadas a cero.

I I I I
 0,  0,  0 , …, 0 para la cual se tiene un total de (n+1)
a 0 a 1 a 2 a n
ecuaciones con (n+1) incógnitas.

Ejemplo.
Dada la función f ( x )  e x , continua en el intervalo 1  x  3 , proponga el polinomio
de grado tres de la forma. g(x)  a 0  a 1 x  a 2 x 2  a 3 x 3 que mejor se aproxime.

Listado de órdenes de Matlab.


syms x a0 a1 a2 a3;
f=exp(x);g=a0+a1*x+a2*x^2+a3*x^3;
I=int((f-g)^2,x,1,3);
e1=diff(I,a0);
e2=diff(I,a1);
e3=diff(I,a2);
e4=diff(I,a3);
r=solve(e1,e2,e3,e4);
a0=eval(r.a0);
a1=eval(r.a1);
a2=eval(r.a2);
a3=eval(r.a3);
g=a0+a1*x+a2*x^2+a3*x^3;
ezplot(f,[1 3]);
hold on;
ezplot(g,[1 3]);

Se puede visualizar la función original y el polinomio de aproximación.


-...+5724064457411/4398046511104 x 3

20

18

16

14

12

10

2
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
x

1,8 REGRESIÓN POR MÍNIMOS CUADRADOS PARA FUNCIONES


PERIÓDICAS.
En la naturaleza existen ciertos fenómenos que se repiten periódicamente como el caso
de las mareas, la aparición de manchas solares, las fases de lluvia, las estaciones y otros
fenómenos naturales que requieren el empleo de modelos matemáticos que se repiten en
el tiempo. Esta técnica de regresión es conocida como las series de Fourier. En este
documento se abordará el problema tanto en variable discreta como continua.

1,8,1 REGRESIÓN POR MÍNIMOS CUADRADOS PARA FUNCIONES PERIÓDICAS


EN VARIABLE DISCRETA.

Dado un conjunto de pares numéricos (t,x) en los cuales se presenta un comportamiento


que se repite periódicamente cuya tabla de datos es la siguiente.

t x
t1 x1
t2 x2
t3 x3
: :
: :
tn xn

Se propone una función de aproximación de la forma:


x  a 0  a 1Sen(t )  a 2 Sen(2t )    a n Sen(nt )  b1Cos(t )  b 2 Cos(2t )    b n Cos(nt )
2
Tal que   , donde. (T) es el periodo.
T

Se propone la suma de los cuadrados de las desviaciones para cada uno de los datos.

n
E 2   (a 0  a 1Sen(t )  a 2Sen(2t )   b1Cos(t )  b 2 Cos(2t )  x ) 2
i 1
Para minimizar la suma se plantean las derivadas de la sumatoria con respecto a cada
una de las variables desconocidas.

E 2 n
 2 (a 0  a 1Sen(t )  a 2Sen(2t )   b1Cos(t )  b 2 Cos(2t )  x )  0
a 0 i 1

E 2 n
 2 (a 0  a 1Sen(t )  a 2Sen(2t )   b1Cos(t )  b 2 Cos(2t )  x )Sen(t )  0
a 1 i 1

E 2 n
 2 (a 0  a 1Sen(t )  a 2Sen(2t )   b1Cos(t )  b 2 Cos(2t )  x )Sen(2t )  0
a 2 i 1


E 2 n
 2 (a 0  a 1Sen(t )  a 2Sen(2t )   b1Cos(t )  b 2 Cos(2t )  x )Sen(nt )  0
a n i 1

E 2 n
 2 (a 0  a 1Sen(t )  a 2 Sen(2t )   b1Cos(t )  b 2 Cos(2t )  x )Cos(t )  0
b1 i 1

E 2 n
 2 (a 0  a 1Sen(t )  a 2Sen(2t )   b1Cos(t )  b 2 Cos(2t )  x )Cos(2t )  0
b 2 i 1


E 2 n
 2 (a 0  a 1Sen(t )  a 2Sen(2t )   b1Cos(t )  b 2 Cos(2t )  x )Cos(nt )  0
b n i 1

Se tiene en total un conjunto de (2n+1) ecuaciones con (2n+1) variables.

Simplificando se obtiene el siguiente sistema de ecuaciones.

n n n n
a 0 1  a 1  Sen(t )  a 2  Sen(2t )    a n  Sen(nt )
i 1 i 1 i 1 i 1
n n n n
 b1  Cos(t ) b 2  Cos(2t )    b n  Cos(nt )   x
i 1 i 1 i 1 i 1
n n n n
a 0  Sen(t )  a 1  Sen 2 (t )  a 2  Sen(t )Sen(2t )    a n  Sen(t )Sen(nt )
i 1 i 1 i 1 i 1
n n n n
 b1  Sen(t )Cos(t ) b 2  Sen(t )Cos(2t )    b n  Sen(t )Cos(nt )   Sen(t ) x
i 1 i 1 i 1 i 1

n n n n
a 0  Sen(2t )  a 1  Sen(2t )Sen(t )  a 2  Sen(2t )Sen(2t )    a n  Sen(2t )Sen(nt )
i 1 i 1 i 1 i 1
n n n n
 b1  Sen(2t )Cos(t ) b 2  Sen(2t )Cos(2t )    b n  Sen(2t )Cos(nt )   Sen(2t ) x
i 1 i 1 i 1 i 1
:
:
n n n n
a 0  Cos(nt )  a 1  Cos(nt )Sen(t )  a 2  Cos(nt )Sen(2t )    a n  Cos(nt )Sen(nt )
i 1 i 1 i 1 i 1
n n n n
 b1  Cos(nt )Cos(t ) b 2  Cos(nt )Cos(2t )    b n  Cos(nt )Cos(nt )   Cos(nt ) x
i 1 i 1 i 1 i 1

La matriz ampliada del sistema de ecuaciones es.



n  Sen(t)  Sen(2t)
  Cos(t)  Cos(2t) 
 x
  Sen(t )  Sen(t)Sen(t)  Sen(t)Sen(2t)   Sen(t)Cos(t)  Sen(t)Cos(2t) 
 xSen(t) 
 Sen(2t )
  Sen(2t)Sen(t)  Sen(2t)Sen(2t)   xSen(2t) 
 Sen(2t)Cos(t)  Sen(2t)Cen(2t) 
  
 
  Cos(nt )  Cos(nt)Sen(t)  Cos(nt)Sen(2t)   Cos(nt)Cos(t)  Cos(nt)Cos(2t)   xCos(nt) 
Paso seguido se resuelve el sistema de ecuaciones y finalmente se define el polinomio
de interpolación.

Ejemplo.
Durante un experimento se obtuvo la siguiente tabla de datos.
t 0 0.5 1 1.5 2 2.5 3 3.5 4
y 0 0.4809 1.5889 2.601 2.9985 2.8429 2.6149 2.6897 2.9516

Si se presume que estos datos presentan un comportamiento de la forma


y  a  bCos(t )  cCos(2t ) , determine la ecuación de regresión por mínimos cuadrados.

%Ingreso de datos.
t=0:0.5:4;
y=[0 0.4809 1.5889 2.6010 2.9985 2.8429 2.6149 2.6897 2.9516];
%Planteamiento de la matriz ampliada del sistema de ecuaciones.
A=[size(t,2) sum(cos(t)) sum(cos(2*t)) sum(y);sum(cos(t)) sum(cos(t).*cos(t))
sum(cos(2*t).*cos(t)) sum(y.*cos(t));sum(cos(2*t)) sum(cos(t).*cos(2*t))
sum(cos(2*t).*cos(2*t)) sum(y.*cos(2*t))];
%Eliminación Gaussia del sistema de ecuaciones.
B=rref(A)
%Interpretación de resultados
a=B(1,4);b=B(2,4);c=B(3,4);
yt=a+b*cos(t)+c*cos(2*t);
[t' y' yt'];

Resultados obtenidos
 9  1.3088 1.3328 18.7684  1 0 0 2 
   
  1.3088 5.1664  0.3374  9.0977  →  0 1 0  1.3 
 1.3328  0.3374 4.4644  0.0208   0 0 1  0.7 
   

a =2; b =-1.3; c =-0.7;

Luego la ecuación de regresión es. y  2  1.3Cos(t )  0.7Cos(2t )

t y' yt
0 0 -0.0000
0.5000 0.4809 0.4809
1.0000 1.5889 1.5889
1.5000 2.6010 2.6010
2.0000 2.9985 2.9985
2.5000 2.8429 2.8429
3.0000 2.6149 2.6149
3.5000 2.6897 2.6897
4.0000 2.9516 2.9516

Si queremos podemos generar una tabla con mayor cantidad de datos de modo que se
pueda visualizar la función obtenida y compararla con los datos de laboratorio.

%Ingreso de datos.
t=0:0.5:4;
y=[0 0.4809 1.5889 2.6010 2.9985 2.8429 2.6149 2.6897 2.9516];
%Nueva tabla de datos.
tt=0:0.01:4;
yt=2-1.3*cos(tt)-0.7*cos(2*tt);
plot(t,y,'r.');
hold on
plot(tt,yt,'b--');
3.5

2.5

1.5

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5 4

Se puede apreciar gráficamente los datos de laboratorio en puntos y su función de


aproximación en línea a trazos.
1,8,2 REGRESIÓN POR MÍNIMOS CUADRADOS PARA FUNCIONES PERIÓDICAS
EN VARIABLE CONTINUA.

La aproximación mediante series de Fourier se utiliza para funciones periódicas y


consecuentemente utiliza funciones armónicas para definir el polinomio de
aproximación.

Dada la función f(x) periódica con periodo (T) definida en el intervalo –T/2≤x≤T/2 se
propone la función de aproximación de la forma:

g(x)  a 0  a 1sen(x)  a  sen(2x)  a 3sen(3x)    a n sen(nx) 2


; 
 b1cos(x)  b  cos(2x)  b 3 cos(3x)    b n cos(nx) T

Para estimar el valor de los coeficientes: a0, a1, a2, ···,an, b1, b2···bn , se plantea la
integral:
T/2
I  (f  g )
2
dx , luego se plantean las ecuaciones de la forma:
T / 2

dI dI dI dI dI
0,  0,  0 , …,  0,  0 ,….
da 0 da1 da 2 db1 db2
Para hacer más breve la demostración se propone:

g(x)  a 0  a1sen(x)  bcos(x) 


Ahora se plantea la integral:
T/2 T/2
I  (f  g ) dx   (f  2gf  g 2 )dx
2 2

T / 2 T / 2

 f 
T/2
I 2
 2f (a 0  a 1sen(x )  b1 cos(x ))  (a 0  a 1sen(x )  b1 cos(x )) 2 dx
T / 2

T/2 T/2 T/2 T/2


I f dx 2a 0  fdx 2a  (f )sen(x)dx 2b  (f ) cos(x)dx
2
1 1
T / 2 T / 2 T / 2 T / 2

T/2 T/2 T/2 T/2


a  dx 2a a  sen(x)dx 2a b  cos(x)dx a  sen (x )dx
2 2 2
0 0 1 0 1 1
T / 2 T / 2 T / 2 T / 2
T/2 T/2
 b12  cos (x)dx 2a b  sen(x) cos(x)dx
2
1 1
T / 2 T / 2

Planteamos las ecuaciones:

dI
0;
da 0
T/2 T/2 T/2 T/2
2 
T / 2
fdx  2a 0  dx 2a 
T / 2
1
T / 2
sen(x )dx  2b1  cos(x)dx  0
T / 2

dI
 0;
da1
T/2 T/2 T/2 T/2
2  fsen(x )dx  2a 0  sen(x )dx  2a 1  sen (x )dx  2b1  sen(x ) cos(x )dx  0
2

T / 2 T / 2 T / 2 T / 2

dI
0
db1
T/2 T/2 T/2 T/2
2  f cos(x )dx  2a 0  cos(x)dx 2b  cos (x )dx  2a 1  sen(x ) cos(x )dx  0
2
1
T / 2 T / 2 T / 2 T / 2

Todas las ecuaciones se pueden simplificar por (2) y se obtiene el sistema de ecuaciones
siguiente:
T/2 T/2 T/2 T/2
a0  dx a 
T / 2
1
T / 2
sen(x )dx  b1 
T / 2
cos(x )dx   fdx
T / 2
T/2 T/2 T/2 T/2

 sen(x)dx a  sen (x )dx  b1  sen(x ) cos(x )dx   f ( x )sen(x )dx


2
a0 1
T / 2 T / 2 T / 2 T / 2

T/2 T/2 T/2 T/2


a 0  cos(x )dx a 1  sen(x ) cos(x )dx  b1  cos (x )dx 
2
 f (x) cos(x)dx
T / T / 2 T / 2 T / 2

Para evaluar estas integrales se deben tener en cuenta las siguientes identidades
trigonométricas:
1  Cos(2A) 1  Cos(2A)
sen 2 A  , cos2 A 
2 2
cos(A  B)  cos(A  B)
senAsenB  ,
2
cos(A  B)  cos(A  B) sen(A  B)  sen(A  B)
cos A cos B  , senA cos B  ,
2 2
T/2 T/2

Para, n= entero,  sen(nx )dx  0 ,  cos(nx )dx  0


T / 2 T / 2
A partir de estas identidades es fácil deducir el valor de las siguientes integrales:

Para m, n enteros se cumple que:

T/2 T/2

 sen(nx ) cos(mx )dx  0 ,


T / 2
 sen(nx )sen(mx )dx  0 ,
T / 2
T/2

 cos(nx ) cos(mx )dx  0 ,


T / 2
T/2 T/2
1 1
 sen (nx )dx   dx  (T)  T / 2 ,
2

T / 2 T / 2
2 2
T/2 T/2
1 1
 cos (nx )dx   dx  (T)  T / 2
2

T / 2 T / 2
2 2

Considerando el valor de cada una de las integrales se llega al siguiente sistema de


ecuaciones:
T/2
a 0 (T)  0a 1  0b1   f (x)dx
T / 2
T/2
0a 0  (T / 2)a 1  0b1   f (x)sen(x)dx
T / 2
T/2
0a 0  0a 1  (T / 2)b1   f (x) cos(x)dx
T / 2
Se trata de un sistema de ecuaciones cuya solución es muy sencilla:
T/2 T/2
1 2
T T/ 2 T T/ 2
a0  f ( x )dx , a1  f ( x )sen(x )dx ,

T/2
2
T T/ 2
b1  f ( x ) cos(x )dx

Utilizando el mismo método y extendiéndolo para la serie de Fourier de orden (n) es


fácil demostrar que la serie de Fourier es:

 
f ( x )  a 0   a n sen(nx )   b n cos(nx ) , tal que:
n 1 n 1
T/2 T/2 T/2
1 2 2
a 0   f ( x )dx , a n   f ( x )sen(nx )dx , b n   f ( x ) cos(nx )dx
T T / 2 T T / 2 T T / 2

Ejemplo.
Dada la función de onda cuadrada siguiente.

1 si 0  x  3
f (x)  
 T6
Determine su aproximación de Fourier.

Se determina la frecuencia de la onda. ω=(2π)/6=π/3, se redefine la función.

0 si  3  x  0
f (x)  
 1 si 0  x  3

Lista de Ordenes de Matlab.


syms x
T=6;
w=2*pi/T;
f=heaviside(x)-heaviside(x-3);
a0=1/T*int(f,x,-T/2,T/2);
a1=2/T*int(f*sin(w*x),x,-T/2,T/2);
a2=2/T*int(f*sin(2*w*x),x,-T/2,T/2);
a3=2/T*int(f*sin(3*w*x),x,-T/2,T/2);
a4=2/T*int(f*sin(4*w*x),x,-T/2,T/2);
b1=2/T*int(f*cos(w*x),x,-T/2,T/2);
b2=2/T*int(f*cos(2*w*x),x,-T/2,T/2);
b3=2/T*int(f*cos(3*w*x),x,-T/2,T/2);
b4=2/T*int(f*cos(4*w*x),x,-T/2,T/2);
g=a0+a1*sin(w*x)+a2*sin(2*w*x)+a3*sin(3*w*x)+a4*sin(4*w*x)+b1*cos(w*x)+b2*
cos(2*w*x)+b3*cos(3*w*x)+b4*cos(4*w*x);
ezplot(f,[-T/2 T/2]);hold on;
ezplot(g,[-T/2 T/2]);

Resultado obtenido.
2  2
g( x )  1 / 2  Sen( x )  Sen(x )
 3 3

1/2+2/  sin(1/3  x)+2/3/ sin( x)


1.2

0.8

0.6

0.4

0.2

-0.2
-3 -2 -1 0 1 2 3
x
1,9 REGRESIÓN MULTIVARIABLE EN VARIABLE CONTINUA
(METODO GENERALIZADO)

Dada una función f(x), se trata de encontrar otra función g(x) que se aproxima lo mejor
posible a la función original en el intervalo a≤x≤b. De tal modo que g(x)≈f(x) en el
intervalo propuesto.

Con objeto de generalizar el método se propone que g(x) es la combinación lineal


formada por un conjunto de funciones las cuales denominaremos funciones base.

B={ g1(x), g2(x), g3(x),…, gn(x) } de tal modo que g(x)=c1g1(x)+c2g2(x)+…+cngn(x)

Para estimar los coeficientes c1,c2, …., cn que hacen que g(x) sea la mejor
aproximación a f(x), se plantea la expresión siguiente.

g( x )  c1g1 ( x )  c2g 2 (x )  c3g3 ( x )    cn g n ( x )


De tal modo que
g( x )  f ( x ) para el intervalo a  x  b

Se propone la integral.

b
I   (f  g) 2 dx
a

Desarrollando el cuadrado se tiene.


b
I   (f 2  2fg  g 2 )dx
a

Plateamos las ecuaciones que minimizan la integral.


I I I I
 0;  0;  0 ; …; 0
c1 c 2 c3 c n

Se plantea la ecuación generalizada.

I   b 2   b   b 2
  a (f )dx   2  a (fg)dx    a (g )dx 
ck ck   ck   ck  

  b 2
 (f )dx   0 puesto que no depende de ( c k )
c k  a
La integral

  b   b
La integral  a (fg)dx    a f (c1g1 ( x )  c2g 2 ( x )  c3g3 ( x )    cn g n ( x ))dx 
ck   ck  
  b
 a f ( x )(c1g1 ( x )  c2g 2 ( x )  c3g 3 ( x )    cn g n ( x ))dx   a f ( x )g k ( x )dx
b

ck  
La integral.
  b 2   b
 a (g )dx    a (c1g1 ( x )  c2g 2 ( x )  c3g 3 ( x )    cn g n ( x )) dx 
2

ck   ck  

Se desarrollan solo las expresiones que contienen el factor ( c k ) debido a que en las
restantes la derivada parcial se anula, luego se obtiene lo siguiente:

  b
 a (2c1ck g1g k  2c2ck g 2g k  2c3ck g 3g k  ck ck g k g k    2cn ck g n g k )dx 
ck  

Se obtiene la siguiente expresión:


b b b b b
2c1  (g1g k )dx  2c 2  (g 2g k )dx  2c3  (g 3g k )dx    2c k  (g k g k )dx    2c n  (g n g k )dx
a a a a a

Reemplazando las integrales se obtiene la ecuación siguiente:


I
 2  (f )(g k )dx   2c1  (g1g k )dx  2c2  (g 2g k )dx 2c3  (g3g k )dx    2cn  (g n g k )dx  0
b b b b b

ck  a  a a a a

Simplificando y reordenando se tiene la forma de la ecuación general:


b b b b b
c1  (g1g k )dx c 2  (g 2g k )dx c3  (g 3g k )dx   c n  (g n g k )dx   f ( x )(g k )dx
a a a a a

A partir de la forma de la ecuación general se obtiene el sistema de ecuaciones


resultante.

b b b b b
c1  (g1g1 )dx c 2  (g 2g1 )dx c3  (g 3g1 )dx   c n  (g n g1 )dx   f ( x )(g1 )dx
a a a a a
b b b b b
c1  (g1g 2 )dx c 2  (g 2g 2 )dx c3  (g 3g 2 )dx   c n  (g n g 2 )dx   f ( x )(g 2 )dx
a a a a a
b b b b b
c1  (g1g 3 )dx c 2  (g 2g 3 )dx c3  (g 3g 3 )dx   c n  (g n g 3 )dx   f ( x )(g 3 )dx
a a a a a
:
b b b b b
c1  (g1g n )dx c 2  (g 2g n )dx c3  (g 3g n )dx   c n  (g n g n )dx   f ( x )(g n )dx
a a a a a
Este sistema de ecuaciones se puede expresar como una ecuación matricial así:

 b g g dx
 g g dx  c    f (g )dx 
b b b
 a 1 1  g g dx  g g dx
b
1 2 1 3  1 n 1
a a a a
 b 
1
b b b  
 a g 2g1dx  g g dx  g g dx  g g dx  c    f (g )dx 
b
2 2 2 3  2 n 2 2
a a a a
 b b b b  c  
 a g 3g1dx  g g dx  g g dx  g g dx      f (g )dx 
b
3 2 3 3  3 n
3
3
 
a a a a
       
 b  c   b 
a n n  n    f (g n )dx 
b b b
  g n g1dx a n 2 a n 3
g g dx g g dx  g g dx
 a  a 

Finalmente se presenta la conclusión del método generalizado de regresión por mínimos


cuadrados en variable continua así:

Dada una función f(x), se trata de encontrar otra función


g( x )  c1g1 ( x )  c2g 2 (x )  c3g3 ( x )    cn g n ( x ) que se aproxima lo mejor posible a la
función original en el intervalo a≤x≤b. De tal modo que g(x)≈f(x) en el intervalo
propuesto.

Los valores de los coeficientes desconocidos se obtienen mediante la solución de la


ecuación matricial siguiente:

 b g g dx b b
  b f (g )dx 
b
 a 1 1 a g1g 2dx a a
g1g 3dx 
g1g n dx  c1   a 1 
 b b b b    b 
 a g 2g1dx a g 2g 2dx a g 2g3dx  a g 2g n dx  c2   a f (g 2 )dx 
 b b b b  c  b 
 a g 3g1dx a g3g 2dx a g3g3dx  a g3g n dx  3   a f (g3 )dx 
         
 b  c   b 
a g n g 2dx a g n g3dx  a g n g n dx  n   a f (g n )dx 
b b b
  g n g1dx
 a

Esta es la forma generalizada y se puede probar que se ajusta para cualquier caso.

Ejemplo: de la aplicación del método generalizado a las series de Fourier.


Dada una función f(x), definida en el intervalo -T/2≤x≤T/2, encuentre un polinomio de
aproximación
g(x )  a 0  a1Sen(x )    a nSen(nx)  b1Cos(x )    bn Cos(nx )
Se plantea la matriz ampliada del sistema de ecuaciones correspondiente.

 
T / 2dx
T/2

T/2

T/2

T/2

T/2
 sen(x )dx sen(2x )dx  Cos(nx )dx 
f ( x )dx
T / 2 T / 2 T / 2 T / 2
 T/2 
 T / 2 sen(x )dx 
T/2

T/2
sen(x )sen(2x )dx   sen(x )Cos(nx )dx  f ( x )sen(x )dx 
T/2 T/2
sen (x )dx
2
T / 2 T / 2 T / 2 T / 2
 T/2 
 T / 2 sen(2x )dx T / 2
T/2
T / 2
T/2
T / 2
T/2
T / 2 f (x)sen(2x)dx 
T/2
sen (  x )sen ( 2x ) dx sen 2
( 2 x ) dx  sen ( 2 x ) Cos( nx ) dx
  
 T/2 
  Cos(nx )dx T / 2 Cos(x)sen(x)dx T / 2 Cos(nx)sen(2x)dx  T / 2 Cos (nx)dx T / 2 f (x)Cos(nx)dx 
T/2 T/2 T/2 T/2
2
 T / 2
Se resuelven cada una de las integrales y se obtiene le siguiente expresión:

 

T/2
T 0 0  0 T / 2 
f ( x )dx
 
T / 2 f (x )sen(x )dx 
T/2
0 T/2 0  0
0 T/2  
T / 2 f ( x )sen(2x )dx 
T/2
0 0

 
0 0 0  T / 2 T/2 

 T / 2 f ( x )Cos(nx )dx 

Luego la solución del sistema de ecuaciones es la siguiente:

 1 T/2 
T T / 2
 f ( x )dx 
1 0 0  0 
 2 T / 2

T T / 2
0  0 f ( x )sen ( x ) dx
0 1 
0 0 1  0 2 T/2 
T T / 2
 f ( x )sen(2x )dx 
 
0 0 0  1 
 2 T/2 
T T / 2
f ( x ) Cos ( n x ) dx
 

Los cuales son los coeficientes de la serie de Fourier en variable real.

Ejemplo: deduzca la serie de Fourier en variable compleja.


Dada una función f(x), definida en el intervalo -T/2≤x≤T/2, encuentre un polinomio de
aproximación
g(x)  a  n enxi    a  2e2xi  a 1exi  a 0e0  a1exi  a 2e2xi    a n enxi

Se plantea la matriz ampliada del sistema de ecuaciones:

 T/2
f ( x )dx 
T T / 2 e
 nxi
0 0  
 T/2 
0 0 0 T 0  e ( n 1) xi f ( x )dx 
T / 2
0 0 0  0 T / 2 e 0xi f ( x )dx 
 T / 2 
    
T 0 0  0 T / 2 e nxi f ( x )dx 

 T / 2 

La solución del sistema de ecuaciones es la siguiente:


 1 T / 2 nxi 

0 0 0 
 e f (x)dx 
1 T T / 2
0 0 0 1
1 T / 2 ( n 1) xi
0 T / 2 e f ( x )dx 
 T 
0 0 0  0 1 T / 2 0 xi 
T T / 2
 e f ( x )dx 
   
1  
0 0  0 1 T/2
 
T T / 2
nxi
e f ( x ) dx
 

Son los coeficientes de la serie de Fourier en Variable compleja.


Se propone otro ejemplo.

Encontrar una aproximación a la función: f(x)=3ex+5sen(x)+4cos(x) en el intervalo


2≤x≤3. de tal modo que la aproximación corresponda a un polinomio de grado tres de
la forma: g(x)=a0+a1x+a2x2+a3x3.

Solución:
Puesto que se trata de un polinomio de aproximación de grados tres, se trata de un
conjunto de polinomios de la forma: B={1 x x2 x3} de tal modo que el polinomio de
aproximación g(x) se define como a0+a1x+a2x2+a3x3=g(x)

Se plantea la ecuación matricial siguiente:


 3 3 3 3 3

  dx 2 xdx 2 x 2
dx 2 x 3
dx 2 f ( x ) dx 
 2 
 3 3 3 3 3 
  xdx  x 2 dx  x 3 dx  x 4 dx  xf ( x )dx 
 2 2 2 2 2 
3 3 3 3 3 
  x 2 dx  x 3dx  x 4 dx  x 5 dx  x 2 f ( x )dx 
2 2 2 2 2 
3 3 3 3 3 3 
  x dx  x 4 dx  x 5 dx  x 6 dx 2 x 3
dx 
2 2 2 2 

También podría gustarte