function C = cebisev_poly(n, a, b) % CEBISEV_POLY - racuna sve Cebisevljeve polinome do stepena n % Polinomi imaju osobinu da je Cn(1)=1 % Funkcija vraca cell array C, tako da je C{i}=Ci-1 C{1} = 1; % C0 = 1 C{2} = [1 0]; % C1 = x % Ostali polinomi se racunaju na osnovu rekurentne formule % Ci(x) = 2x Ci-1(x) - Ci-2(x) for i=2:n C{i+1}=2*[C{i} 0]-[0 0 C{i-1}]; end % U slucaju da je naveden i interval razlicit od podrazumevanog [-1 1] % vrsimo preslikavanje polinoma na dati interval [a, b] if (nargin == 3) for i = 2:n+1 C{i} = map_to_interval(C{i}, a, b); end end % Pomocna funkcija koja preslikava polinom P sa [-1, 1] na [a, b] % uvodjenjem smene t = (2x-b-a)/(b-a) % Hornerovom shemom se izracunava vrednost polinoma P u tacki t function Pab = map_to_interval(P, a, b) Pab = P(1); for j=2:length(P) Pab = (2*[Pab 0]-(b+a)*[0 Pab])/(b-a); Pab(end) = Pab(end) + P(j); end