% Harjutustund nr 11, ylesanne 1
% andmed joonisele
x=[2014:1: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')
grid on

% 1) l2hendame andmeid sirgega v2himruutude mottes kaalusid mitte
% arvestades
p1=polyfit(x,y,1) % Phi(x)=0.0715x-123.7933
y1=polyval(p1,x);
hold on
plot(x,y1,'b')
% 2) l2hendame andmeid sirgega v2himruutude mottes kaalusid arvestades
% AC=B, C=(c1 c0)=?, Phi(x)=c1*x+c0
A=[sum(kaalud.*x.^2) sum(kaalud.*x)
    sum(kaalud.*x) sum(kaalud)]   % komponentide kaupa tehted ehk no korrutame vektorite
% vastavad koordinaadid, siis tehtem2rgi ees .
B=[sum(kaalud.*y.*x)
    sum(kaalud.*y)]
C=inv(A)*B % -0.0229*x+65.9722
f1=@(x) -0.0229*x+65.9722;
hold on
fplot(f1,[2014,2023],'r')
% 3) prognoosime temperatuuri sirgete pohjal, x=2024
[polyval(p1,2024) f1(2024)]
[polyval(p1,2064) f1(2044)]

% 4) l2hendame andmeid ruutfunktsiooniga v2himruutude mottes kaalusid mitte
% arvestades
p2=polyfit(x,y,2)
y2=polyval(p2,x);
hold on
plot(x,y2,'k')
% 5) kaalusid arvestades - ruutfunktsioon v2himruutude mottes
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) 0.0000*10^5*x^2-10^5*0.0027*x+10^5*2.7582;
hold on
% fplot(f2,[2014,2024],'g')
% x=2024
[polyval(p2,2024) f2(2024)]