% 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 lineaarfunktsiooniga vähimruutude mõttes
% a) antud 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
% kordajate maatriks C
C=inv(A)*B
% c_1=0.1168 ja c_0=-215.7961
% saime Phi(x)=0.1168*x-215.7961
yvaartused1=polyval(C,x);
plot(x,yvaartused1,'b-')
hold on
% milline võiks olla temperatuur käesoleval aastal 15. juulil, Tallinnas
polyval(C,2023)

% kaalud on võrdsed
kordajad1=polyfit(x,y,1)
% c_1=10^3*0.0007, c_0=-10^3*1.2950
% Phi(x)=10^3*0.0007*x-10^3*1.2950
yvaartused11=polyval(kordajad1,x);
plot(x,yvaartused11,'r-')
hold on
% milline võiks olla temperatuur 15.07, kaale ei arvesta
polyval(kordajad1,2023)

% lähendame ruutfunktsiooniga
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);
A
B(1,1)=sum(kaalud.*y.*x.^2);
B(2,1)=sum(kaalud.*y.*x.^1);
B(3,1)=sum(kaalud.*y);
B
C=inv(A)*B
yvaartused2=polyval(C,x);
plot(x,yvaartused2,'g-')
hold on
% lähendame ruutfunktsiooniga kaale mitte arvestades
kordajad2=polyfit(x,y,2)
yvaartus22=polyval(kordajad2,x);
plot(x,yvaartus22,'k-')
hold on
% d) lähendame andmeid lineaarsplainiga S^(1,0)
yvaartused1splain=interp1(x,y,x,'linear')
plot(x,yvaartused1splain,'k-')
hold on
% e) lähendame andmeid kuupsplainiga S^(3,2)
xvork=[2014:0.1:2021];
yvaartused3splain=interp1(x,y,xvork,'spline');
plot(xvork,yvaartused3splain,'m-')
hold off