You are on page 1of 2

function C = lspoly2(x,y,m)

n=length(x);
%coeficientes
%Error estandar del estimado
syx=0;
%coeficiente de determinacion y coeficiente de correlacion r^2
r=0;
r2=0;
sumx=0;
sumxy=0;
st=0;
sumy=0;
sumx2=0;
sr=0;
ygp=[];
for i=1: 1: n
sumx=sumx+x(i);
sumy=sumy+y(i);
sumxy=sumxy+x(i)*y(i);
sumx2=sumx2+x(i)^2;
end
A=[n sumx;sumx sumx2];
B=[sumy;sumxy];
a=inv(A)*B;
ym=sumy/n;
for i=1: 1: n
st=st + (y(i) - ym)^2;
sr=sr + (y(i) - a(1,1) - a(2,1)*x(i))^2;
end
syx=(sr/(n -2))^0.5;
r2=(st - sr)/st;
r=sqrt(r2);
Sy=(st/n-1)^0.5;
clc
fprintf('\n- La ecuacin lineal queda: Y = %f + %f x\n\n',a(1,1),a(2,1)) ;
fprintf('a0 = %f\ta1 = %f\n\n',a(1,1),a(2,1));
Apol=zeros(m+1);
Bpol=zeros(m+1,1);
if(n<(m+1))

fprintf('(*)La regresin polinomial con el grado dado no es posible, debido a que el orden es mayor que el nmero
de puntos\n\n')
else
for i=1:1:m+1
for j=1:1:i
k=i + j - 2;
sum=0;
for l=1:1:n
sum=sum+x(l)^k;
end
Apol(i,j) = sum;
Apol(j,i) = sum;
end
sum=0;
for l=1:1:n
sum=sum + y(l)*x(l)^(i-1);
end
Bpol(i,1)=sum;
end
apol= inv(Apol)*Bpol;
xgg=x(1):0.1:x(n);
for i=1:1:length(xgg)
ygp(i)=0;
end
for j=1:1:length(xgg)
for i=m+1:-1:1
ygp(j)=ygp(j)+ apol(i,1)*xgg(j)^(i-1);
end
end
Ec='y(x) = ';
for i=m+1:-1:1
Ec=[Ec,'(',num2str(apol(i,1)),') x^',num2str((i-1)),' + '];
end
fprintf('\n- El polinomio con el grado dado queda:\n\n');
Ec=[Ec,' 0 '];
fprintf([Ec,'\n\n']);
end

You might also like