function P=approx_cebisev(f,a,b,n)
% Aproksimacija f-je f na intervalu [a,b], polinomom stepena n 
% u odnosu na bazu Cebisev-ovih polinoma. 

% Konstruisimo bazne polinome
% T je cell array koji sadrzi Cebisevove polinome T{i}=Ti-1 na intervalu [a, b]
T = cebisev_poly(n+1, a, b);

% koeficijenti aproksimacionog polinoma
P = zeros(1,n+1); %prealokacija

for i=1:n+1
    if i==1
        P = P + [zeros(1,n-i+1) 1/pi * integral(@(x)polyval(T{i}, x).*f(x)./sqrt(1-x.^2),a,b) * T{i}];
    else
        P = P + [zeros(1,n-i+1) 2/pi * integral(@(x)polyval(T{i}, x).*f(x)./sqrt(1-x.^2),a,b) * T{i}];
    end
end


% iscrtavamo rezultat 
X = linspace(a, b);
plot(X, f(X), X, polyval(P, X),'m*')';


