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*');