Ir al contenido principal

3.9 Método de mínimos cuadrados

3.9 Método de mínimos cuadrados 

3.9 Método de mínimos cuadrados

El método de mínimos cuadrados sirve para interpolar valores, dicho en otras palabras, se usa para buscar valores desconocidos usando como referencia otras muestras del mismo evento.
El método consiste en acercar una línea o una curva, según se escoja, lo más posible a los puntos determinados por la coordenadas [x, f(x)], que normalmente corresponden a muestras de algún experimento.
Cabe aclarar que este método, aunque es sencillo de implantar no es del todo preciso, pero si proporciona una interpolación aceptable.
Como se comento previamente se puede usar una recta o una curva como base para calcular nuevos valores.



Deducción analítica de la aproximación discreta mínimo 

cuadrática lineal.

Sea {\{(x_k,y_k)\}}_{k=1}^n  un conjunto de n pares con abscisas distintas, y sea {\{f_j (x)\}}_{j=1}^m  un conjunto de m funciones linealmente independientes (en un espacio vectorial de funciones), que se llamarán funciones base. Se desea encontrar una función f(x) de dicho espacio, o sea, combinación lineal de las funciones base, tomando por ello la forma:

f(x)=c_1 f_1 (x)+ c_2 f_2(x)+ . . . + c_m f_m (x) =\sum_{j=1}^m {c_j f_j (x)}.
Ello equivale por tanto a hallar los m coeficientes: {\{c_j (x)\}}_{j=1}^m . En concreto, se desea que tal función f(x) sea la mejor aproximación a los n pares {(x_k,y_k)}_1^n  empleando, como criterio de "mejor", el criterio del mínimo error cuadrático medio de la función f(x) con respecto a los puntos {(x_k,y_k)}_1^n .
El error cuadrático medio será para tal caso:

E_{cm} = \sqrt{\frac{\sum_{k = 1}^n (e_k)^2}{n}}=\sqrt{\frac{1}{n} \sum_{k=1}^n (y_k-f(x_k))^2}=\sqrt{\frac{1}{n} \sum_{k=1}^n (y_k-\sum_{j=1}^m c_j f_j(x_k))^2}
Minimizar el error cuadrático medio es equivalente a minimizar el error cuadrático, definido como el radicando del error cuadrático medio, esto es:

E_c= \sum_{k=1}^n (y_k-\sum_{j=1}^m c_j f_j(x_k))^2

Así, los c_j que minimizan E_{cm} también minimizan E_c, y podrán ser calculados derivando e igualando a cero este último:

\frac{\partial E_c}{\partial c_i}=\sum_{k=1}^n 2(y_k-\sum_{j=1}^m c_j f_j(x_k))(-f_i(x_k))=0Siendo i=1, 2, . . ., m

Se obtiene un sistema de m ecuaciones con m incógnitas, que recibe el nombre de "Ecuaciones Normales de Gauss". Operando con ellas:

\sum_{k=1}^n(\sum_{j=1}^m c_j f_j(x_k) )f_i(x_k) = \sum_{k=1}^n y_k f_i(x_k)para i=1, 2, . . ., m

\sum_{j=1}^m (\sum_{k=1}^n f_i(x_k) f_j (x_k) )c_j = \sum_{k=1}^n y_k f_i(x_k)para i=1, 2, . . ., m

Si se desarrolla la suma, se visualiza la ecuación "i-ésima" del sistema de m ecuaciones normales:
 (\sum_{k=1}^n f_i(x_k) f_1 (x_k))c_1+(\sum_{k=1}^n f_i(x_k) f_2 (x_k) )c_2+ . . . + (\sum_{k=1}^n f_i(x_k) f_m (x_k)) c_m =\sum_{k=1}^n y_k f_i(x_k)
para cada i=1, 2, . . ., m

Lo cual, en forma matricial, se expresa como:

\begin{bmatrix} {(f_1,f_1)}_d & {(f_1,f_2)}_d & ... & {(f_1,f_m)}_d \\ {(f_2,f_1)}_d & {(f_2,f_2)}_d & ... & {(f_2,f_m)}_d \\ ... & ... & ... & ... \\ {(f_m,f_1)}_d & {(f_m,f_2)}_d & ... & {(f_m,f_m)}_d  \end{bmatrix}\begin{bmatrix} c_1\\ c_2\\ ...\\ c_m \end{bmatrix}=\begin{bmatrix} {(f_1,y)}_d\\ {(f_2,y)}_d\\ ...\\ {(f_m,y)}_d \end{bmatrix}

Siendo {(a,b)}_d el producto escalar discreto, definido para dos funciones dadas h(x) y g(x) como:

{(h(x),g(x))}_d=\sum_{k=1}^n h(x_k) g(x_k)
y para una función h(x) y vector cualquiera u, como:

{(h(x),u)}_d=\sum_{k=1}^n h(x_k) u_k
La resolución de dicho sistema permite obtener, para cualquier base de funciones derivables localmente, la función f(x) que sea mejor aproximación mínimo cuadrática al conjunto de puntos antes mencionado. La solución es óptima –esto es, proporciona la mejor aproximación siguiendo el criterio de mínimo error cuadrático–, puesto que se obtiene al optimizar el problema.

CODIGO:

Algoritmo en MATLAB para la aproximación lineal por el método de los mínimos cuadrados.

El siguiente algoritmo recibe un número arbitrario de pares de datos en la forma de una matriz de 2*n, donde las abcisas se encuentran en la primera fila (o renglón) y las ordenadas en la segunda fila de la matriz, devolviendo la pendiente m y el intercepto b de la recta que interpola a los datos y además entrega su gráfica:


function [m,b]=mincuadlin(X)
n=length(X(1,:));
A=0;
B=0;
C=0;
D=0; 


for i=1:n;
    A=A+X(1,i);
    B=B+X(2,i);
    C=C+(X(1,i))^2;
    D=D+X(1,i)*X(2,i);
end 


m=(n*D-A*B)/(n*C-A^2);
b=(C*B-D*A)/(n*C-A^2);
 

for i=1:n;
    hold on;
    plot (X(1,i),X(2,i),'*','MarkerEdgeColor','r','LineWidth',1);
end 


x=X(1,1):1:X(1,n);
y=m*x+b;
plot(x,y,'b');
title('Aproximación lineal por mínimos cuadrados.');



Por ejemplo, para los datos {(1,0),(2,3),(3,4),(4,-6),(5,2),(6,4),(7,0),(8,4),(9,3)}, se escribe en el Command Window:
>>X=[1 2 3 4 5 6 7 8 9; 0 3 4 -6 2 4 0 4 3];
>>[m,b]=mincuadlin(X)
Y el programa entrega los resultados:
m = 0.2833
b = 0.1389








Comentarios

Entradas populares de este blog

6.3 Métodos de pasos múltiples

6.3 Métodos de pasos múltiples Los métodos de un paso descritos en las secciones anteriores utilizan información en un solo punto xi para predecir un valor de la variable dependiente yi+1 en un punto futuro xi+1. Procedimientos alternativos, llamados métodos multipaso, se basan en el conocimiento de que una vez empezado el cálculo, se tiene información valiosa de los puntos anteriores y esta a nuestra disposición. La curvatura de las líneas que conectan esos valores previos proporciona información con respecto a la trayectoria de la solución. Los métodos multipaso que exploraremos aprovechan esta información para resolver las EDO. Antes de describir las versiones de orden superior, presentaremos un método simple de segundo orden que sirve para demostrar las características generales de los procedimientos multipaso. Observe la ecuación ec. 2  alcanza ) a expensas de emplear un tamaño de paso mas grande, 2h. Además, ob

6.2 Métodos de un paso: Método de Euler, Método de Euler mejorado y Método de Runge-Kutta

6.2 Métodos de un paso: Método de Euler, Método de Euler mejorado y Método de Runge-Kutta   Método de Euler El método de Euler es un procedimiento de integración numérica para resolver ecuaciones diferenciales ordinarias a partir de un valor inicial dado. El método de Euler es el más simple de los métodos numéricos para resolver un problema del siguiente tipo: Consiste en multiplicar los intervalos que van de x0 a xf en n subintervalos de ancho h; Osea: de manera que se obtiene un conjunto discreto de n+1 puntos: x0, x1, x2, ... , xn del intervalo de interés [x0,xf]. Para cualquiera de estos puntos de cumple que:  0<i<n. La condición inicial y(x0)=y0, representa el punto P0=(x0,y0) por donde pasa la curva solución de la ecuación del plantamiento inicial, la cual se denotará cmo F(x)=y. Ya teniendo el punto P0 se puede evaluar la primera derivada de F(x) en ese punto; por lo tanto: Con esta información se traza una recta, aquella que pasa por

6.1 Fundamentos de Ecuaciones Diferenciales

UNIDAD 6 ECUACIONES DIFERENCIALES ORDINARIAS 6.1 Fundamentos de Ecuaciones Diferenciales Una  ecuación diferencial  es una  ecuación  en la que intervienen  derivadas  de una o más funciones desconocidas. Dependiendo del número de variables independientes respecto de las que se deriva, las ecuaciones diferenciales se dividen en Ecuaciones diferenciales ordinarias : aquellas que contienen derivadas respecto a una sola variable independiente. Ecuaciones en derivadas parciales : aquellas que contienen derivadas respecto a dos o más variables. Una ecuación diferencial es una ecuación que incluye expresiones o términos que involucran a una función matemática incógnita y sus derivadas. Algunos ejemplos de ecuaciones diferenciales son: es una ecuación diferencial ordinaria, donde   representa una función no especificada de la variable independiente  , es decir,  ,   es la derivada de   con respecto a  . La expresión es una ecuación en derivadas pa