% Tund 10, ülesanne 1
% andmed
x=[2014:1:2021];
y=[22.2,19.5,18.0,17.9,25.2,18.6,18.7,29.3];
kaalud=[3,4,4,4,2,4,4,1];
plot(x,y,'o')
hold on
% lähendame andmeid lineaarfunktsiooniga
% a) kaalusid arvestades
% lahendame võrrandisüsteemi AC=B, C=?, C=[c1,c0]
% Phi(x)=c1*x+c0
A(1,1)=sum(kaalud.*x.^2);
A(1,2)=sum(kaalud.*x);
A(2,1)=sum(kaalud.*x);
A(2,2)=sum(kaalud);
B(1,1)=sum(kaalud.*y.*x);
B(2,1)=sum(kaalud.*y);
A
B
C=inv(A)*B
% Phi(x)=0.1168*x-215.7961 - lineaarne funktsiooni vähimr. mõttes kaale
% arvestades
y1=polyval(C,x);
plot(x,y1,'b-')
hold on
% milline võiks olla temperatuur 15.07.2023 Tallinnas
polyval(C,2023)
% b) kaalusid mitte arvestades
kaalud2=[1,1,1,1,1,1,1,1];
A(1,1)=sum(kaalud2.*x.^2);
A(1,2)=sum(kaalud2.*x);
A(2,1)=sum(kaalud2.*x);
A(2,2)=sum(kaalud2);
B(1,1)=sum(kaalud2.*y.*x);
B(2,1)=sum(kaalud2.*y);
A
B
C2=inv(A)*B
% Phi(x)=10^3(0.0007*x-1.2950)
% lihtsam variant, kui kaalud võrdsed
k1=polyfit(x,y,1) % otsitava polünoomi kordajad, 1-astme polünoom, saame kordajad
y11=polyval(k1,x);
plot(x,y11,'r-')
hold on
% prognoosime temp. 15.07.2023
polyval(k1,2023)

% lähendame andmeid vähimruutude mõttes ruutfunktsiooniga
% a) kaalusid mitte arvestades
k2=polyfit(x,y,2) % 2-astme polünoom
% Phi(x)=10^6(0.0000*x^2-0.0018*x+1.7770)
y2=polyval(k2,x);
plot(x,y2,'m-')
hold on
% prognoosime temperatuuri
polyval(k2,2023)
% b) kaalusid arvestades
A(1,1)=sum(kaalud.*x.^4);
A(1,2)=sum(kaalud.*x.^3);
A(1,3)=sum(kaalud.*x.^2);
A(2,1)=sum(kaalud.*x.^3);
A(2,2)=sum(kaalud.*x.^2);
A(2,3)=sum(kaalud.*x.^1);
A(3,1)=sum(kaalud.*x.^2);
A(3,2)=sum(kaalud.*x.^1);
A(3,3)=sum(kaalud.*x.^0);
A
B(1,1)=sum(kaalud.*y.*x.^2);
B(2,1)=sum(kaalud.*y.*x.^1);
B(3,1)=sum(kaalud.*y.*x.^0);
C=inv(A)*B
% Phi(x)=10^6*(0.0000*x^2-0.0014*x+1.4380)
y2k=polyval(C,x);
plot(x,y2k,'k-')
hold on
% prognoosime
polyval(C,2023)
% d) lähendame andmeid lineaarsplainiga
y1splain=interp1(x,y,x,'linear');
plot(x,y1splain,'g-')
hold off
% prognoosime
interp1(x,y,2023,'linear')