x=1.2:0.1:2;
y=[9.08 10.43 11.9 13.48 15.19 17.03 19.01 21.13 23.39];
kaalud=[1 1 2 5 1 4 2 2 1];

%võrk
xvork=1.2:0.001:2;

%lähendamine
%1) kuupsplainiga
ysplain=interp1(x,y,xvork,'spline');
%2) kuupfunktsiooniga vähimruutude mõttes
kordajad=polyfit(x,y,3); %3, sest tahame kuupfunktsiooni
ykuup=polyval(kordajad,xvork);
%3) kuupfunktsioon vähimruutude mõttes kaalusid arvestades
%Sisestame maatriksi A 
A(1,1)=sum(kaalud.*x.^6); %kaalud ja x on vektorid, sestap .
A(1,2)=sum(kaalud.*x.^5);
A(1,3)=sum(kaalud.*x.^4);
A(1,4)=sum(kaalud.*x.^3);
A(2,1)=A(1,2);
A(2,2)=A(1,3);
A(2,3)=A(1,4);
A(2,4)=sum(kaalud.*x.^2);
A(3,1)=A(2,2);
A(3,2)=A(2,3);
A(3,3)=A(2,4);
A(3,4)=sum(kaalud.*x);
A(4,1)=A(3,2);
A(4,2)=A(3,3);
A(4,3)=A(3,4);
A(4,4)=sum(kaalud);
A
%sisestame vektori b
b(1)=sum(kaalud.*y.*x.^3);
b(2)=sum(kaalud.*y.*x.^2);
b(3)=sum(kaalud.*y.*x);
b(4)=sum(kaalud.*y);
b
%lahendame süsteemi Ac=b
c=inv(A)*b' %NB! b peab olema veeruvektor, sestap transponeerime
%arvutame kuupfunktsiooni väärtused
ykuup1=polyval(c,xvork);

%joonis
plot(x,y,'r*',xvork,ysplain,'b',xvork,ykuup,'k',xvork,ykuup1,'g')
legend('algandmed','kuupsplain','kuupfunktsioon vähimruutude mõttes','kuupfunktsioon kaalusid arvestades')

%arvutamine
vastus1=interp1(x,y,1.12,'spline')
vastus2=interp1(x,y,1.35,'spline')