clear %vahemälu puhtaks
%lähteandmed
x=-4:5;
y=[2.03 3 5.2 6.8 7 9.6 11 13.6 14 16.6];
kaalud=[1 1 2 2 3 3 2 2 1 1];

%võrk
xvork=-4:1e-3:5;

%lähendamine
%1) vähimruutude mõttes võrdsete kaaludega (kõik kaalud=1)
kordajad=polyfit(x,y,2) %2, sest otsime ruutfunktsiooni
yruut1=polyval(kordajad,xvork); %leiame ruutfunktsiooni väärtused xvork igas punktis

%2)vähimruutude mõttes kaalusid arvestades
%sisestame maatriksi A
A(1,1)=sum(kaalud.*x.^4);
A(1,2)=sum(kaalud.*x.^3);
A(1,3)=sum(kaalud.*x.^2);
A(2,1)=A(1,2);
A(2,2)=A(1,3);
A(2,3)=sum(kaalud.*x);
A(3,1)=A(2,2);
A(3,2)=A(2,3);
A(3,3)=sum(kaalud);
A
%sisestame vektori b
b(1)=sum(kaalud.*y.*x.^2);
b(2)=sum(kaalud.*y.*x);
b(3)=sum(kaalud.*y);
b
%lahendame süsteemi Ac=b
c=inv(A)*b'

%arvutame ruutfunktsiooni väärtused teiste kordajatega
yruut2=polyval(c,xvork);

%Joonis
plot(x,y,'r*',xvork,yruut1,'k',xvork,yruut2)
legend('algandmed','vähimruutude lähend võrdsete kaaludega','vähimruutude lähend erinevate kaaludega')
title('Lähendamine')
