Está en la página 1de 2

Algoritmo en MATLAB para la aproximacin lineal por el mtodo de los mnimos cuadrados.

Por: Carlos Armando De Castro P. El siguiente algoritmo recibe un nmero arbitrario de pares de datos en la forma de una matriz de 2*n, donde las abcisas se encuentran en la primera fila (o rengln) 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 adems entrega su grfica:

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('Aproximacin lineal por mnimos 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

Anlisis Numrico

También podría gustarte