% interpolacja na rózne sposoby
N = 12;
A = 5;
X = linspace(-A,A,N+1);	% węzły równoodległe
Y = 1./(1+X.^2); % interpolowane wartości

p = polyfit(X,Y,N);  % wielomian interpolacyjny


s = csape(X,Y,'variational'); % splajn interpolacyjny kubiczny naturalny; 
	% w MATLAB-ie tylko ze Spline Tlbx, którego nie mamy na wydziale...
	% w Octave tylko z Octave-Forge:
	%	pkg install -forge splines
	%	pkg list
	%	pkg load splines


XC = A*cos((2*[0:N]+1)/(2*(N+1))*pi); % węzły Czebyszewa
YC = 1./(1+XC.^2);

pC = polyfit(XC,YC,N); % wielomian interpolacyjny

%rysowanie funkcji interpolowanej
x = linspace(-A,A,257);
y = 1./(1+x.^2);
plot(x,y-y,'b-');
hold on;

%rysowanie interpolantów
plot(x, polyval(p, x), 'r-' );
plot(x, y-polyval(pC, x), 'm-' );
plot(x, y-ppval(s, x), 'k-' );

%rysowanie węzłów interpolacji
plot(X,Y-Y,'go');

%legenda
hold off;
legend('1/(1+x^2)', 'interp. rowno', 'interp. Czeb.', 'splajn', 'węzły');
