%
% Integration - Fonction
% [y,n]=integration(f,minx,maxx,s)
%
% Arguments :
%     f   : chaine de caracteres definissant la fonction
%     minx: borne inferieure de l'integrale
%     maxx: borne superieure de l'integrale
%     s   : precision
%     n1  : nombre de points sur lesquels on integre
% Sorties:
%     y   : la valeur de l'integrale
%     n   : le nombre de points utilises
%
function [y,n]=integration(f,minx,maxx,dy,n1)
n2=n1+2;
dx=(maxx-minx)/n1;
x=minx:dx:maxx;

fx=eval(f);
y1=(sum(fx)-0.5*(maxx-minx))*dx;
d=2*dy;
plot(x,fx,'+-r');
while (d>dy);
% Calcul de la seconde intégrale  
    dx=(maxx-minx)/n2;
    x=minx:dx:maxx ;
    fx=eval(f);
    y=(sum(fx)-0.5*(fx(1)+fx(end)))*dx;
% comparaison des résultats    
    d=abs(y1-y);
    y1=y;
    n2=n2*2;
% fin de la boucle    
end
n=n2;
hold on
plot(x,fx,'--g');
xlabel('Longueur (\lambda)');
ylabel('Energie \epsilon (  10^6 ergs) ');
ST1 =['Fonction sur ',num2str(n1),' points'];
ST2 =['Fonction sur ',num2str(n2),' points'];
legend(ST1,ST2);
hold off;
FILE=(['integration.png']);
print(FILE,'-dpng')

