% Harjutustund nr. 10, ülesanne 2
% andmed
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];
% joonis
plot(x,y,'o')
grid on
hold on
% a) lähendame andmeid kuupsplainiga S^{3,2}
ykuupsplain=interp1(x,y,x,'spline')
plot(x,ykuupsplain,'b')
hold on
% b) lähendame andmeid vähimruutude mõttes kuupfunktsiooniga kaalusid mitte
% arvestades
k3=polyfit(x,y,3)
% saime Phi(x)=0.8923*x^3+2.2464*x^2+3.7054*x-0.1427
yk3=polyval(k3,x);
plot(x,yk3,'r')
hold on
% c) lähendame andmeid ette antud kaalusid arvestades kuupfunktsiooniga
for (i=1:4)
  for (j=1:4)      
         A(i,j)=sum(kaalud.*x.^(8-i-j));     
  end  
  B(i,1)=sum(kaalud.*y.*x.^(4-i));
end
C=inv(A)*B
% saime kuupfunktsiooni Phi(x)=0.9121*x^3+2.1622*x^2+3.8204*x-0.1931
ykuupkaalud=polyval(C,x);
plot(x,ykuupkaalud,'g')
hold off
% d) leiame funktsiooni väärtuse x=1.12 korral ja x=1.35 korral
[interp1(x,y,1.12,'spline'),polyval(k3,1.12),polyval(C,1.12)] % kui x=1.12
[interp1(x,y,1.35,'spline'),polyval(k3,1.35),polyval(C,1.35)] % kui x=1.35