_____________________________________________________________

Asesorías en Matemáticas, Física e Ingeniería

Principal -  Estudiantes  -  Empresas  -  Publicaciones  -  Quiénes somos  -  Contacto

_____________________________________________________________

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


Por: Carlos Armando De Castro P.

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