% harjutustund nr. 8, ülesanne 3
% andmed
syms xx;
x=[0,1,4];
y=[1,2,2];
% joonis
plot(x,y,'o')
hold on
yline(0) % x-telg, y=0
xline(0) % y-telg, x=0
grid on
axis([-3,6,-3,7])
% koostame 2-astme polünoomi, mis läbib kõiki interpolatsioonisõlmi
% Phi(x)=c_2*x^2+c_1*x+c_0
% tundmatute c2,c1,c0 kordajate maatriks A
A=[0^2,0,1;1^2,1,1;4^2,4,1];
% vabaliikmete maatriks B
B=[1;2;2];
% leiame tundmatute maatriksi C
C=inv(A)*B
% Saime polünoomi Phi(x)=-0.25*x^2+1.25*x+1
% defineerime funktsiooni
phi=@(x) -0.25*x.^2+1.25*x+1;
% kontrollime interpolatsioonitingimusi, st
% Phi(x) korral peame iga x_i korral saama sama y_i väärtuse
[phi(0),phi(1),phi(4)]
fplot(phi)
legend('andmed','Phi(x)=-0.25*x.^2+1.25*x+1')

% a) leiame Lagrange'i interpolatsioonipolünoomi
sum=0;
for (i=1:length(x))
    L=1;
    for (j=1:length(x))
        if (i~=j)
            L=L*(xx-x(j))/(x(i)-x(j));
        end
    end
    sum=sum+L*y(i);
end
lagrangepolynoom=simplify(sum)

syms z(xx);
z(xx)=lagrangepolynoom;
% b) kontrollime interpolatsioonitingimuste täidetust
[z(0),z(1),z(4)]
% c) f(0.5)
vpa(z(0.5))