RegresionPolinomial.sce
// Regresión polinomial - ajusta un polinomio de grado p a
// un conjunto de n datos y grafica los datos y el polinomio
clear
disp("Regresión polinomial");
n=input("Número de datos? n=");
x=zeros(n,1);
y=zeros(x);
disp ("Introduzca los datos:");
for i=1:n
x(i)=input("x"+string(i)+"=");
y(i)=input("y"+string(i)+"=");
end
p=input("Grado del polinomio? p=");
a=zeros(1,2*p+1);
a(1)=n;
for i=1:2*p
a(i+1)=sum(x.^i);
end
A=zeros(p+1,p+1);
for i=1:p+1
A(i,:)=a(i:i+p);
end
c=zeros(p+1,1);
c(1)=sum(y);
for i=1:p
c(i+1)=sum((x.^i).*y);
end
b=A\c;
for i=0:p
disp("Coeficiente de x^"+string(i)+" = "+string(b(i+1)))
end
clf
title("Regresión polinomial de grado "+string(p))
xlabel("x")
ylabel("y")
plot(x,y,"bo")
xe=linspace(min(x),max(x),250);
ye=zeros(xe);
for i=0:p
ye=ye+b(i+1)*xe.^i;
end
plot(xe,ye,"r-")