% Harjutustund 11, ülesanne 1
x=[2014:2023];
y=[22.2,19.5,18.0,17.9,25.2,18.6,18.7,29.3,15.0,21.2];
kaalud=[3,4,4,4,2,4,4,1,2,3];
plot(x,y,'o')
% 1) l2hendame andmeid v2himruutude mottes sirgega kaalusid mitte
% arvestades ehk koikide solmede kaalud on vordsed
% Phi(x)=c1*x+c0
p1=polyfit(x,y,1)
% saime Phi(x)=0.0715*x-123.7933
yp1=polyval(p1,x);
hold on
plot(x,yp1,'b')
% 2) l2hendame andmeid v2himruutude mottes sirgega kaalusid arvestades
A=[sum(kaalud.*x.^2) sum(kaalud.*x)
    sum(kaalud.*x) sum(kaalud)]
B=[sum(kaalud.*y.*x)
    sum(kaalud.*y)]
% AC=B
C=inv(A)*B
f1=@(x) -0.0229*x+65.9722;  % c1=-0.0229, c0=65.9722
hold on
fplot(f1,[2010,2026],'r')
% prognoos
polyval(p1,2024)
f1(2024)

polyval(p1,2074)
f1(2074)

% 3) l2hendame andmeid ruutfunktsiooniga v2himruutude mottes kaalusid mitte
% arvestades
p2=polyfit(x,y,2)
yp2=polyval(p2,x);
hold on
plot(x,yp2,'g')

% 4) l2hendame andmeid ruutfunktsiooniga v2himruutude mottes kaalusid
% arvestades
A=[sum(kaalud.*x.^4) sum(kaalud.*x.^3) sum(kaalud.*x.^2)
   sum(kaalud.*x.^3) sum(kaalud.*x.^2) sum(kaalud.*x)
   sum(kaalud.*x.^2) sum(kaalud.*x) sum(kaalud)]
B=[sum(kaalud.*y.*x.^2)
    sum(kaalud.*y.*x)
    sum(kaalud.*y)]
C=inv(A)*B
f2=@(x) -10^5*0.0027*x+10^5*2.7582;
hold on
% fplot(f2,[2010,2026],'k')
% prognoos
polyval(p2,2024)
f2(2024)
% l2hendame andmeid lineaarsplainiga S^(1,0)(x)
ylineaarsplain=interp1(x,y,x,'linear')
hold on
plot(x,ylineaarsplain,'m')
% l2hendame andmeid kuupsplainiga S^(3,2)(x)
xx=[2014:0.1:2023];
ykuupsplain=interp1(x,y,xx,'spline');
hold on
plot(xx,ykuupsplain,'k')