%% skrypt34
disp('skrypt fituje wielomiany stopnia od 1 do 8 do danych generowanych jako');
disp('zaszumione wartosci wielomianu 3x+20 na odcinku od 0.1 do 10'); 
x=0.1:0.1:10;
y=3*x+20;
y=y+randn(1,length(y));
cla;

p1=polyfit(x,y,1);
disp(sprintf('wielomian pierwszego rzedu: (%d)x + (%d) \n',p1(1),p1(2)));
p2=polyfit(x,y,2);
disp(sprintf('wielomian drugiego rzedu: (%d)x^2 + (%d)x + (%d) \n',p2(1),p2(2),p2(3)));
p3=polyfit(x,y,3);
disp(sprintf('wielomian trzeciego rzedu: (%d)x^3 + (%d)x^2 + (%d)x + (%d) \n',p3(1),p3(2),p3(3),p3(4)));
p4=polyfit(x,y,4);
sprintf('wielomian czwartego rzedu: (%d)x^4 + (%d)x^3 + (%d)x^2 + (%d)x + (%d) \n',p4(1),p4(2),p4(3),p4(4),p4(5)));
p5=polyfit(x,y,5);
sprintf('wielomian piatego rzedu: (%d)x^5 + (%d)x^4 + (%d)x^3 + (%d)x^2 + (%d)x + (%d) \n',p5(1),p5(2),p5(3),p5(4),p5(5),p5(6)));
p6=polyfit(x,y,6);
sprintf('wielomian szostego rzedu: (%d)x^6 + (%d)x^5 + (%d)x^4 + (%d)x^3 + (%d)x^2 + (%d)x + (%d) \n',p6(1),p6(2),p6(3),p6(4),p6(5),p6(6),p6(7)));
p7=polyfit(x,y,7);
sprintf('wielomian siodmego rzedu: (%d)x^7 + (%d)x^6 + (%d)x^5 + (%d)x^4 + (%d)x^3 + (%d)x^2 + (%d)x + (%d) \n',p7(1),p7(2),p7(3),p7(4),p7(5),p7(6),p7(7),p7(8)));
p8=polyfit(x,y,8);
sprintf('wielomian osmego rzedu: (%d)x^8 + (%d)x^7 + (%d)x^6 + (%d)x^5 + (%d)x^4 + (%d)x^3 + (%d)x^2 + (%d)x + (%d) \n',p8(1),p8(2),p8(3),p8(4),p8(5),p8(6),p8(7),p8(8),p8(9)));
hold on;
plot(x,y,'+r');
plot(x,polyval(p1,x),x,polyval(p2,x),x,polyval(p3,x),x,polyval(p4,x),x,polyval(p5,x),x,polyval(p6,x),x,polyval(p7,x),x,polyval(p8,x));
legend('dane pomiarowe','wielomian st. 1','wielomian st. 2','wielomian st. 3','wielomian st. 4','wielomian st. 5','wielomian st. 6','wielomian st. 7','wielomian st. 8',4);
hold off;