% 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];
% joonis
plot(x,y,'o')
hold on
% a) lähendame andmeid vähimruutude mõttes, 
% kui kaale ei arvesta
kordajad1=polyfit(x,y,1)
yvaartused1=polyval(kordajad1,x)
plot(x,yvaartused1,'r-')
hold on
% b) lähendame andmeid lineaarfunktsiooniga vähimruutude
% mõttes, kui võtame arvesse ka kaalud
A(1,1)=sum(kaalud.*x.^2);
A(1,2)=sum(kaalud.*x);
A(2,1)=sum(kaalud.*x);
A(2,2)=sum(kaalud);
A
B(1,1)=sum(kaalud.*y.*x);
B(2,1)=sum(kaalud.*y);
B
C1=inv(A)*B
% saime c_1=0.1168 ja c_0=-215.7961
% Phi(x)=c_1*x+c_0
yvaartused1k=polyval(C1,x);
plot(x,yvaartused1k,'b-')
hold on
% lähendame andmeid ruutfunktsiooniga vähimruutude mõttes
% a) kaale mitte arvestades
kordajad2=polyfit(x,y,2)
yvaartused2=polyval(kordajad2,x);
plot(x,yvaartused2,'g-')
hold on
% kaale 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);
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)=0.0000*x^2-0.0014*x+1.4380
yvaartused2k=polyval(C,x);
plot(x,yvaartused2k,'m-')
hold on
% temperatuur 2023
% näiteks arvutame, kui võtame aluseks vähimruutude 
% meetodi, kaale arvestades
% lineaarne
polyval(C1,2023)
% paraboolne
polyval(C,2023)
% lähendame andmeid lineaarsplainiga
yvaartused1splain=interp1(x,y,x,'linear');
plot(x,yvaartused1splain,'k-')
hold on
% lähendame andmeid kuupsplainiga
yvaartused3splain=interp1(x,y,x,'spline');
plot(x,yvaartused3splain,'y-')
hold off