
function esercizio2

esempio=2;

% Esempio delle funzioni richieste
switch esempio
    case 1
        a=0; b=pi;
        f=@(x) exp(x).*cos(4*x);
        a_jac=0; b_jac=0;
        sol=(exp(pi)-1)/17;
        fai_scalatura=1;
        
    case 2
        % esempio originario.
        % a=0; b=1;
        % f=@(x) x.^(5/2);
        % la funzione e' stata modificata in [-1,1]
        % NB: errori prossimi a precisione di macchina!
        a=-1; b=1;
        f=@(x) 2^(-7/2)*1+0*x; % importante 0*x (dimensione vettore)
        a_jac=0; b_jac=5/2;
        sol=2/7;
        fai_scalatura=0;
    case 3
        a=-pi; b=pi;
        f=@(x) exp(cos(x));
        a_jac=0; b_jac=0;
        sol=7.95492652101284;
        fai_scalatura=1;
    case 4
        a=0; b=pi/4;
        f=@(x) exp(cos(x));
        a_jac=0; b_jac=0;
        sol=1.93973485062365;
        fai_scalatura=1;
    case 5
        % esempio originario.
        % a=0; b=1;
        % f=@(x) x.^(1/2);
        % NB: errori prossimi a precisione di macchina!
        f=@(x) 2^(-3/2)*1+0*x;
        a_jac=0; b_jac=1/2;
        sol=2/3;
        fai_scalatura=0;
end

vettore_errore=[];

% nv=2.^(1:9);
nv=10:10:30;

for N=nv
    
    % Gauss-Legendre
    ab=r_jacobi(N,a_jac,b_jac); %TERM.RICORSIVI
    xw=gauss(N,ab); %NODI/PESI IN MATRICE .
    x=xw(:,1); w=xw(:,2);%NODI/PESI GAUSS JAC.[-1,1].
    if fai_scalatura
       [x,w]=scalatura(x,w,a,b);
    end
    fx=feval(f,x);
    I=w'*fx;
    errore=abs(I-sol);
    vettore_errore(1,end+1)=errore;
    
end

% errore scala semilogy
figure(1);
semilogy(nv,vettore_errore,'k-o','MarkerEdgeColor','k',...
                       'MarkerFaceColor','g',...
                       'MarkerSize',10)
hold on;
title('errori');
hold off;
