% Harjutustund nr. 10, ülesanne 2
% andmed
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];
% joonis
plot(x,y,'o')
hold on
grid on
% a) lähendame andmeid ruutfunktsiooniga vähimruutude mõttes
% kaale mitte arvestades
k2=polyfit(x,y,2);
yk2=polyval(k2,x);
plot(x,yk2,'b')
hold on
% b) lähendame andmeid ruutfunktsiooniga vähimruutude mõttes
% 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);
A(3,1)=sum(kaalud.*x.^2);
A(3,2)=sum(kaalud.*x.^1);
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);
A
B
C=inv(A)*B
% saime ruutfunktsiooni vähimruutude mõttes kaalusid arvestades kujul
% Phi(x)=6.5319*x^2-3.0677*x+3.3780
yruutkaalud=polyval(C,x);
plot(x,yruutkaalud,'k')
hold on
% c) lähendame andmeid kuupfunktsiooniga vähimruutude mõttes kaalusid
% arvestades
for (i=1:4)
    for (j=1:4)
        A(i,j)=sum(kaalud.*x.^(8-i-j));
    end    
   B(i,1)=sum(kaalud.*y.*x.^(4-i));
end
A
B
C=inv(A)*B
% saime kuupfunktsiooni vähimruutude mõttes kaalusid arvestades kujul
% Phi(x)=0.9121*x^3+2.1622*x^2+3.8204*x-0.1931
ykuupkaalud=polyval(C,x);
plot(x,ykuupkaalud,'g')
hold on
% d) vähimruutude mõttes kaalusid mitte arvestades
k3=polyfit(x,y,3);
yk3=polyval(k3,x);
plot(x,yk3,'r')
hold on
% e) kuupsplainiga S^(3,2)
ykuupsplain=interp1(x,y,x,'spline');
plot(x,ykuupsplain,'m')
hold off
% f) funktsiooni väärtus, kui x=1.12 ja x=1.35
[polyval(C,1.12),polyval(k3,1.12),interp1(x,y,1.12,'spline')] % kui x=1.12
[polyval(C,1.35),polyval(k3,1.35),interp1(x,y,1.35,'spline')] % kui x=1.35