clear %vahemälu puhtaks
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ähendame
%1) ruutfunktsiooniga, kui kaalud on võrdsed (kõik kaalud =1)
kordajad=polyfit(x,y,2) %tahame ruutfunktsiooni, sellepärast 2
%saame ruutfunktsiooni kordajad
yruut=polyval(kordajad,xvork);
%arvutab ruutfunktsiooni väärtused xvork iga väärtuse korral

%2) ruutfunktsiooniga, kui kaalud on erinevad
%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(1,3);
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, kus c on kordajate vektor
c=inv(A)*b'
%arvutame ruutfunktsiooni väärtused xvork igas punktis
yruut1=polyval(c,xvork);

%joonis
plot(x,y,'k+',xvork,yruut,'r',xvork,yruut1,'b')
legend('algandmed','ruutfunktsioon võrdsete kaaludega','ruutfunktsioon erinevate kaaludega')