function P=approx_legendre(f,a,b,n)
% Aproksimacija f-je f na intervalu [a,b], polinomom stepena n 
% u odnosu na bazu Legandre-ovih polinoma. 
% Poziv funkcije: P=approx_legendre(@(x)abs(x),-1,1,5)

% Konstruisimo bazne polinome
% L je cell array koji sadrzi Lezandrove polinome L{i}=Li-1 na intervalu [a, b]
L = legendre_poly(n+1, a, b);


% koeficijenti aproksimacionog polinoma
P = zeros(1,n+1); %prealokacija
for i=1:n+1
    P = P + [zeros(1,n-i+1) (2*i-1)/(b-a) * integral(@(x)f(x).*polyval(L{i},x),a,b) * L{i}];
end

%formiranje polinoma na 2. nacin
%P=[];
%for i=1:n+1
%    P = [0 P] + (2*i-1)/(b-a) * integral(@(x)f(x).*polyval(L{i},x),a,b) * L{i};
%end
%
% iscrtavamo rezultat 
X = linspace(a, b);
plot(X, f(X), X, polyval(P, X),'m*');


