
% Oggetto.
% Test che mostra l'interpolazione in nodi equispaziati della funzione di
% Runge.

N=12; % Grado

% Integranda: attenzione ai punti davanti operazioni "moltiplicative"
f=@(x) 1./(1+x.^2);

% N+1 punti equispaziati in -5,5.
x=linspace(-5,5,N+1);

% Valutazione funzione "f".
fx=feval(f,x);

% Calcolo coefficienti "c_k" polinomio interpolante "p".
% In particolare: p(x)=c(1)*x^n+...+c(n)*x+c(n+1).
c=polyfit(x,fx,N);

% Nodi di test, utili per il grafico
t=linspace(-5,5,10*N);

% Valutazione interpolante polinomiale in nodi test.
pt=polyval(c,t);

% Valutazione funzione di Runge in nodi test.
ft=feval(f,t);

% 1. Grafico della funzione, del polinomio interpolatore, utilizzando i 
% dati ottenuti nei nodi test.
% 2. Grafico delle coppie da interpolare, legenda e titolo.

clf;

% Funzione: grafico
plot(t,ft,'k-','LineWidth',4);
hold on

% Interpolante: grafico
plot(t,pt,'r-','LineWidth',4);

% Coppie da interpolare: grafico
plot(x,fx,'go','LineWidth',2,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor','g',...
    'MarkerSize',10);

% Legenda
legend('Runge','Interpolante');

% Titolo
title('Interpolante di grado 12, nodi equispaziati, funzione di Runge')
hold off

