
% nome: ..... cognome: ..... matricola: ..... postazione: .....

function i_err=esperimento_sub(m,n,f,a,b)

% Oggetto: 
% errore approssimante polinomiale ai minimi quadrati di grado "m" di f 
% in "n" punti di Chebyshev (scalati in [a,b]).
%
% Dati di ingresso:
% m: grado dell'approssimante polinomiale ai minimi quadrati 
% n: numero di nodi di Chebyshev.
% f: funzione da approssimare in [a,b].
% a,b: estremi dell'intervallo [a,b]
%
% Dati di uscita:
% i_err: numero reale non negativo che rappresenta una stima dell'errore di
%      approssimazione

% test m, n.
if m >= n
    i_err=[]; return;
end

% n punti di Chebyshev
x=punti_chebyshev(n-1,a,b); 

% valutazione di "f" in "x"
y=feval(f,x);

% 10000 nodi equispaziati in [a,b]
v=linspace(a,b,10000);

% coefficienti del polinomio "p" ai minimi quadrati relativo a (x,y)
coeff = polyfit(x,y,m);

% valutazione di "p" nei nodi equispaziati
pv = polyval(coeff,v);

% valutazione di "f" nei nodi equispaziati
fv=feval(f,v);

% massimo errore di approssimazione
i_err=norm(fv-pv,inf);

