viernes, 1 de octubre de 2010

Ajuste Minimos cuadrados Matlab (Parabola)


% Direccion de datos

mov = fopen('C:\Dinamica\Datos2.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

% Matriz

A=t
B=pos
N1=length(A)
N2=length(B)
Ex1=sum(A)
Ex2=sum(A.^2)
Ex3=sum(A.^3)
Ex4=sum(A.^4)
Ey1=sum(pos)
Ey2=sum(A.*pos)
Ey3=sum(A.^2.*pos)

M1=[N1,Ex1,Ex2;Ex1,Ex2,Ex3;Ex2,Ex3,Ex4]
M2=inv(M1)
Y=[Ey1;Ey2;Ey3]

% Resultado

R=[M2*Y]

% Grafica linealizada

Z1=[1;0;0]
Z2=[0;1;0]
Z3=[0;0;1]

E1=R.*Z1
E2=R.*Z2
E3=R.*Z3

x=A'
a=sum(E3)
b=sum(E2)
c=sum(E1)
y=a*x.^2+b*x+c
plot(x,y,'r-')

No hay comentarios:

Publicar un comentario