% Tund 10, ülesanne 1
% andmed
x=[2014:1:2021];
y=[22.2,19.5,18,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 vähimruutude mõttes lineaarfunktsiooniga
% a) kaalusid mitte arvestades
kordajad1=polyfit(x,y,1) % saime c1 ja c0
% saime Phi(x)=10^3*0.0007x-10^3*1.2950
yvaartused1=polyval(kordajad1,x);
disp([x;y;yvaartused1])
plot(x,yvaartused1,'r-')
hold on
% milline võiks olla temperatuur 15.07.2023
polyval(kordajad1,2023)
% b) kaalusid arvestades
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
% saime Phi(x)=0.1168x-215.7961
yvaartused1k=polyval(C,x);
plot(x,yvaartused1k,'b-')
hold on
% milline võiks olla temperatuur 15.07.2023
polyval(C,2023)

% lähendame andmeid ruutfunktsiooniga vähimruutude mõttes
% a) kaalusid mitte arvestades
kordajad2=polyfit(x,y,2)
yvaartused2=polyval(kordajad2,x);
plot(x,yvaartused2,'g-')
hold on
polyval(kordajad2,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);
A(3,1)=sum(kaalud.*x.^2);
A(3,2)=sum(kaalud.*x);
A(3,3)=sum(kaalud);
B(1,1)=sum(kaalud.*y.*x.^2);
B(2,1)=sum(kaalud.*y.*x);
B(3,1)=sum(kaalud.*y);
C=inv(A)*B
yvaartused2k=polyval(C,x);
plot(x,yvaartused2k,'k-')
hold on
% d) lähendame andmeid lineaarsplainig S^(1,0)
yvaartus1splain=interp1(x,y,x,'linear')
plot(x,yvaartus1splain,'m-')
hold off
interp1(x,y,2023,'linear')