viernes, 1 de octubre de 2010

Ajuste Minimos cuadrados Matlab (Recta)





% Direccion de datos

mov = fopen('C:\Dinamica\Datos1.txt','r');
val = fscanf(mov,' %g %g ', [2 inf]);

% Asiganción del tiempo y la posición

med = val';
t = med(:,1);
pos = med(:,2);
datos = plot(t,pos,'b.');
hold on

A=t
B=pos
N1=length(t)
N2=length(pos)

% Matriz

Ex1=sum(A)
Ex2=sum(A.^2)
Ef1=sum(pos)
Ef2=sum(A.*pos)
Y=[Ef1;Ef2]
M1=[N1,Ex1;Ex1,Ex2]
M2=inv(M1)

% Resultado: la ordenada al origen y la pendiente

R=[M2*Y]

% Grafica linealizada

Z1=[1;0]
Z2=[0;1]
E1=R.*Z2
E2=R.*Z1

m=sum(E1)
b=sum(E2)
x=A'
y=m*x+b
plot(x,y,'r-')

No hay comentarios:

Publicar un comentario