Está en la página 1de 8

AJUSTE POR MÍNIMOS CUADRADOS

INTRODUCCIÓN

El ajuste por mínimos cuadrados es un procedimiento de análisis numérico en la que, dados un conjunto
de datos (pares ordenados y familia de funciones), se intenta determinar la función continua que mejor
se aproxime a los datos (línea de regresión o la línea de mejor ajuste), proporcionando una demostración
visual de la relación entre los puntos de estos. En su forma más simple, busca minimizar la suma de
cuadrados de las diferencias ordenadas (llamadas residuos) entre los puntos generados por la función y
los correspondientes datos.

Este método se utiliza comúnmente para analizar una serie de datos que se obtengan de algún estudio,
con el fin de expresar su comportamiento de manera lineal y así minimizar los errores de la data tomada.

Su expresión general se basa en la ecuación de una recta 𝒚 = 𝒂𝒙 + 𝒃. Donde a es la pendiente y


b el punto de corte
La creación del método de mínimos cuadrados generalmente se le acredita al matemático alemán Carl
Friedrich Gauss, quien lo planteó en 1794 pero no lo publicó sino hasta 1809. El matemático francés Andrien-
Marie Legendre fue el primero en publicarlo en 1805, este lo desarrolló de forma independiente.

OBJETIVOS

Encontrar la función continua que mejor se aproxime a una serie de datos de acuerdo con el método de
ajuste por mínimos cuadrados.
EJEMPLO 1
Primeramente, realizaremos un ejemplo para una serie de datos de comportamiento lineal, entonces
buscamos un modelo de la forma:

𝒚 = 𝒂𝒙 + 𝒃
Los coeficientes a, b los obtenemos resolviendo un sistema de ecuaciones lineal de 2 x 2

∑ 𝑥 2𝒂 + ∑𝑥 𝒃 ∑ 𝑥𝑦
A=[ ] B=[ ]
∑𝑥 𝒂 + 𝑛𝒃 ∑𝑦
Este sistema de ecuaciones lineales lo resolvemos con cualquiera de los métodos que ya hemos visto
(Gauss simple, Gauss-Jordan o Inversa), para este primer ejemplo, usaremos la función de la INVERSA de
MatLab (inv).
De los siguientes datos experimentales, obtén el polinomio de ajuste lineal, gráficas de puntos
experimentales y modelo, obtén el valor de yi cuando xi = 6.22

Partimos de una serie de datos experimentales:

xi 1 2 3 4 5 6 7
yi 0.5 2.5 2 4 3.5 6 5.5

Procedemos a dar solución al problema en MatLab


Colocaré el código paso a paso, realicen este proceso de igual manera en el editor, y ejecuten el código
de cada paso.
Primero generamos los vectores de datos, tenga cuidado en la asignación de las variables.
clc,clear,close all
% Ajuste por mínimos
% Cuadrados
% MODELO LINEAL
% ax + b
% Ejemplo 1
xi=[1,2,3,4,5,6,7];
yi=[0.5,2.5,2,4,3.5,6,5.5];
%% Graficando
plot(xi,yi,'r+')
% Los datos experimentales SIEMPRE deben graficarse
% como PUNTOS dispersos
grid on
title('Modelo Lineal')

Al graficar notamos que el comportamiento de los datos experimentales es lineal:


Generamos nuestro sistema de ecuaciones lineales 2x2

% Sistema de ecuaciones
A=[sum(xi.^2),sum(xi); sum(xi),length(xi)];
% MatLab tiene la función “sum” para realizar una sumatoria de un vector
% Es justo lo que necesitamos según el sistema de ecuaciones lineal
B=[sum(xi.*yi);sum(yi)];

Posteriormente damos solución al sistema de ecuaciones:

% Resolución
% del sistema
w=inv(A)*B
a=w(1)
b=w(2)

Con esto ya tenemos los coeficientes de nuestro sistema:

a = 0.8393, b = 0.0714
Al sustituirlos en nuestro modelo lineal:

𝒚 = 𝟎. 𝟖𝟑𝟗𝟑𝒙 + 𝟎. 𝟎𝟕𝟏𝟒
Ahora graficamos nuestro modelo sobre los datos experimentales
%% GRÁFICA LINEAL
hold on
x1=min(xi)-1 : 0.1 : max(xi)+1; % Generamos un nuevo vector desde el
elemento menor (min) de xi (restando un valor)
% hasta el elemento mayor (max) de x1 (sumando 1)
y1=a*x1+b; %Evaluamos cada valor de x1 en nuestro modelo
plot(x1,y1,'g') % Gráfica lineal

Una vez obtenido el modelo, podemos encontrar algún valor de yi que no se encuentra en nuestros
datos experimentales, es decir, podemos realizar una interpolación o extrapolación
Por último, damos solución al problema y evaluamos yi (6.22)
Simplemente sustituimos el valor de xi en el modelo lineal:
%% Evaluando xi = 6.22
xi=6.22;
evalua = a*xi+b

evalua = 5.2918

Por lo tanto: yi (6.22) = 5.2918


EJEMPLO 2
Dados los siguientes datos experimentales, obtén un modelo cuadrático de la forma:

y = ax2 + bx + c
Resuelve el sistema de ecuaciones lineales por medio del método de Gauss-Jordan

Gráficas de puntos experimentales y modelo, obtén el valor de yi cuando xi = 8.8

xi 1 2 3 4 5 6 7
yi 2.4 2.1 3.2 5.6 9.3 14.6 21.9

Para dar solución al problema, primero necesitamos encontrar los coeficientes del modelo, para ello
necesitamos un sistema de ecuaciones lineales 3x3

∑ 𝑥4 𝒂 + ∑ 𝑥3 𝒃 + ∑ 𝑥2𝒄 ∑ 𝑥 2𝑦
A = [∑ 𝑥 3 𝒂 + ∑ 𝑥2 𝒃 + ∑ 𝑥 𝒄 ] B = [ ∑ 𝑥𝑦 ]
∑ 𝑥2 𝒂 + ∑𝑥 𝒃 + 𝑛 𝒄 ∑𝑦
Al igual que el problema anterior, primero generamos los vectores de datos, tenga cuidado en la
asignación de las variables.
clc,clear,close all
% Ajuste por mínimos
% Cuadrados
% MODELO Cuadrático
% ax^2 + bx +c
% Ejemplo 2
xi=[1,2,3,4,5,6,7];
yi=[2.4,2.1,3.2,5.6,9.3,14.6,21.9];
plot(xi,yi,'r+')
% Los datos experimentales SIEMPRE deben graficarse
% como PUNTOS dispersos
grid on
title('Modelo Cuadrático')
% Sistema de ecuaciones
Generamos nuestro sistema de ecuaciones lineales 3x3

% Sistema de ecuaciones
A=[sum(xi.^4),sum(xi.^3),sum(xi.^2);...
sum(xi.^3),sum(xi.^2),sum(xi);...
sum(xi.^2),sum(xi),length(xi)];
B=[sum(xi.^2.*yi);sum(xi.*yi);sum(yi)];

En esta ocasión resolveremos el sistema de ecuaciones lineales por medio de Gauss-Jordan:


%Matriz ampleada
a=[A,B]
%Resolver el sistema
%Por Gaus Jordan
%Hacer 1 a a(1,1)
a(1,:)=a(1,:)/a(1,1)
%Hace 0 a(2,1)
a(2,:)=a(2,:)-a(2,1)*a(1,:)
%Hacer 0 a a(3,1)
a(3,:)=a(3,:)-a(3,1)*a(1,:)
%Hacer 1 a a(2,2)
a(2,:)=a(2,:)/a(2,2)
%Hacer 0 a a(1,2)
a(1,:)=a(1,:)-a(1,2)*a(2,:)
%Hacer 0 a a(3,2)
a(3,:)=a(3,:)-a(3,2)*a(2,:)
%Hacer 1 a a(3,3)
a(3,:)=a(3,:)/a(3,3)
%Hacer 0 a a(2,3)
a(2,:)=a(2,:)-a(2,3)*a(3,:)
%Hacer 0 a a(1,3)
a(1,:)=a(1,:)-a(1,3)*a(3,:)
%Resolucion del sistema
aa=a(1,4)
bb=a(2,4)
cc=a(3,4)

IMPORTANTE: Para no confundir la variable “a” de la matriz ampliada, cambiamos los coeficientes del
modelo a: aa, bb y cc

Con esto ya tenemos los coeficientes del modelo:

a = 0.7333, b = -2.6667, c = 4.4429


Al sustituir en el modelo:

y = 0.7333x2 + -2.6667x + 4.4429


Ahora graficamos nuestro modelo sobre los datos experimentales
%% GRÁFICA CUADRÁTICA
hold on
x1=min(xi)-1 : 0.1 : max(xi)+1; % Generamos un nuevo vector desde el
elemento menor (min) de xi (restando un valor)
% hasta el elemento mayor (max) de x1 (sumando 1)
y1=aa.*x1.^2 + bb.*x1 + cc; %Evaluamos cada valor de x1 en nuestro modelo
plot(x1,y1,'g') % Gráfica cuadrática
Por último, damos solución al problema y evaluamos yi (8.8)
Simplemente sustituimos el valor de xi en el modelo lineal:
%% Evaluando xi = 8.8
xi=8.8;
evalua = aa.*xi.^2 + bb.*xi + cc;

evalua = 37.7655

Por lo tanto: yi (8.8) = 37.7655

ACTIVIDAD
Dados los siguientes datos, obtén modelo cúbico:

y = ax3 + bx2 + cx + d
xi 0.1 0.4 0.5 0.7 0.75 0.9
yi 0.61 0.92 0.99 1.52 1.47 2.03

Resuelve el sistema de ecuaciones lineales por medio del método de Gauss-Jordan

Gráficas de puntos experimentales y modelo, obtén el valor de yi cuando xi = 1.1


Sistema de ecuaciones 4x4

∑ 𝑥6 𝒂 + ∑ 𝑥5 𝒃 + ∑ 𝑥4𝒄 + ∑ 𝑥3𝒅
∑ 𝑥5 𝒂 + ∑ 𝑥4 𝒃 + ∑ 𝑥3𝒄 + ∑ 𝑥2𝒅
A=
∑ 𝑥4 𝒂 + ∑ 𝑥3 𝒃 + ∑ 𝑥2𝒄 + ∑𝑥 𝒅
[∑ 𝑥 3 𝒂 + ∑ 𝑥2 𝒃 + ∑𝑥 𝒄 + 𝑛 𝒅 ]
∑ 𝑥3𝑦
∑ 𝑥2𝑦
B=
∑ 𝑥𝑦
[ ∑𝑦 ]

También podría gustarte