MatLabMorena

domingo, 17 de febrero de 2008

Metodo de los Minimos Cuadrados

function correl
xi=input('ingrese los valores de xi:\n');
yi=input('ingreso los valores de yi:\n');
xm=input('ingreso un valor de x para analisar la pendiente:\n');
n=length(xi);
p=xi.';
q=yi.';
r=p.*q;
s=p.*p;
a1=sum(xi);
a2=sum(yi);
a3=sum(r);
a4=sum(s);
m=a2/n;
j=sum((yi-m).^2);
A=[a4 a1;a1 n];
B=[a3 a2];
X=inv(A)*(B');
l=X(1);r=X(2);
fprintf('\nLos coeficientes de la ecuacion son:\n')
fprintf(' a b\n')
fprintf('%8.8f%10.8f\n',l,r)
fun=input('\nLa funcion lineal es y=','s');
y=l*xi+r;
t=sum((yi-y).^2);
r2=1-(t/j);
z=(r2)^0.5;
m=diff(fun);
x=xm;
n=eval(m);
fprintf('\n El coeficiente de determinacion r^2=');
fprintf('%5.5f\n',r2);
if(n>0)
fprintf('\n El coeficiente de correlacion r=');
fprintf('%5.5f\n',z);
elsefprintf('\n El coeficiente de correlacion r=');
fprintf('%5.5f\n',-z);
end
hold on
ezplot(fun),grid on,
plot(xi,yi,'m.'),
hold off


Ejemplo: Funcion Lineal

ingrese los valores de xi:

[4 5 2 5 6 7 1 8 3 7]

ingreso los valores de yi:

[5 6 4 5 7 10 3 11 4 9]

ingreso un valor de x para analizar la pendiente:

2
Los coeficientes de la ecuacion son:

a b

1.13025210 0.97478992


La funcion lineal es y=1.13025210*x+0.97478992


El coeficiente de determinacion r^2=0.88900


El coeficiente de correlacion r=0.94287




function correlog2
xi=input('ingrese los valores de xi:\n');
yi=input('ingreso los valores de yi:\n');
n=length(xi);
p=log(-xi);
q=yi;
r=p.*q;
s=p.*p;
a1=sum(p);
a2=sum(q);
a3=sum(r);
a4=sum(s);
m=sum(yi)/n;
j=sum((yi-m).^2);
A=[a4 a1;a1 n];
B=[a3 a2];
X=inv(A)*(B');
l=X(1);r=X(2);
fprintf('\nLos coeficientes de la funcion son:\n')
fprintf(' a b\n')
fprintf('%8.12f%10.12f\n',l,r)
y=input('\nLa funcion logaritmica natural es y=','s');
h=l*log(-xi)+r;
z=sum((yi-h).^2);
r2=1-(z/j);
k=(r2)^0.5;
fprintf('\n El coeficiente de determinacion r^2=');
fprintf('%5.5f\n',r2);
fprintf('\n El coeficiente de correlacion r=');
fprintf('%5.5f\n',k);
hold on
ezplot(y),grid on,
plot(xi,yi,'m.'),
hold off

3 comentarios:

ivan barrera dijo...

Gracias tu aporte me ha sido de mucha ayuda :)

Unknown dijo...
Este comentario ha sido eliminado por el autor.
Unknown dijo...

gracias muy bueno tu algoritmo