clear
%Lähteandmed
x=1.2:0.1:2;
y=[9.08 10.43 11.9 13.48 15.19 17.03 19.01 21.13 23.39];
kaalud=[1 1 2 5 1 4 2 2 1]; %7. ülesande kaalude vektor
%teeme võrgu
xvork=1.2:1e-3:2;

%Lähendamine
%1) kuupsplain
ysplain=interp1(x,y,xvork,'spline');

%2) vähimruutude mõttes kuupfunktsioon
kordajad=polyfit(x,y,3); %tahame kuupfunktsiooni, sellepärast 3
ykuup=polyval(kordajad,xvork);

%3) vähimruutude mõttes kuupfunktsioon kaalusid arvestades
%sisestame maatriksi A
A(1,1)=sum(kaalud.*x.^6);
A(1,2)=sum(kaalud.*x.^5);
A(1,3)=sum(kaalud.*x.^4);
A(1,4)=sum(kaalud.*x.^3);
A(2,1)=A(1,2);
A(2,2)=A(1,3);
A(2,3)=A(1,4);
A(2,4)=sum(kaalud.*x.^2);
A(3,1)=A(2,2);
A(3,2)=A(2,3);
A(3,3)=A(2,4);
A(3,4)=sum(kaalud.*x);
A(4,1)=A(3,2);
A(4,2)=A(3,3);
A(4,3)=A(3,4);
A(4,4)=sum(kaalud)
A

%vektor b
b(1)=sum(kaalud.*y.*x.^3);
b(2)=sum(kaalud.*y.*x.^2);
b(3)=sum(kaalud.*y.*x);
b(4)=sum(kaalud.*y);
b

%lahendame süsteemi Ac=b
c=inv(A)*b' %b peab olema veeruvektor

%Joonis
plot(x,y,'r*',xvork,ysplain,'b',xvork,ykuup,'k')
legend('algandmed','kuupsplain','vähimruutude mõttes kuupfunktsioon','vähimruutude mõttes kuupfunktsioon erinevate kaaludega')

%Arvutamine
vastus1=interp1(x,y,1.12,'spline')
vastus11=polyval(kordajad,1.12)

vastus2=interp1(x,y,1.35,'spline')
vastus22=polyval(kordajad,1.35)
