%    Programme romberg.m
%  Integration numerique. Methode de Romberg
%         Annee Universitaire 1998-1999
%         Licence de Physique
%         Version 3.0
% ---------------------------------------------------

clear all;

% Votre nom
% ---------

nom='???????'

% Initialisation de la methode (a completer)
% ------------------------------------------

  a = ?                              % borne inferieure
  b = ?                              % borne superieure
  h = b-a                              % pas le plus grand


  Nt = ?;                           % Nombre total d'iterations

% Initialisation de R(1,1) (a completer)
% --------------------------------------

   R(1,1)=?;
 


% Integration (a completer)
% -------------------------

for n=1:Nt-1
    
    % Methode des trapezes (calcul de la colonne de gauche R(n+1,1)
    % ------------------------------------------------------------

    h = h/2;                       % Pas divise par 2
    somme = 0;                     % Initialise somme

  for k=1:2^(n-1);                  % boucle k
     somme=somme + ?;
  end

    R(n+1,1) = ?;                  % calcul de R(n+1,1) 

     % formule recursive (methode de Romberg)  % R(n+1,2),..., R(n+1,n+1)
     % ------------------------------------------------------------

     for m=1:n                           
	R(n+1,m+1) = ?;
     end
     
     % Calcul de l'erreur commise entre la valeur reelle et celle calculee
     % -------------------------------------------------------------------
      valeur_exacte=?;
      
      
%   Methode des trapezes
    erreur_trapeze(n+1)= abs(valeur_exacte - R(n+1,1)); 
	if erreur_trapeze(n+1)<10^(-20)
	erreur_trapeze(n+1) = 10^(-20);
	end;
%   Methode de Romberg
    erreur_romberg(n+1)= abs(valeur_exacte - R(n+1,n+1)); 
	if erreur_romberg(n+1)<10^(-20)
	erreur_romberg(n+1) = 10^(-20);
	end;

end

% ----------------
% Partie graphique (a changer selon la fonction) 
% --------------------------------------------------------------
x=a:(b-a)/100:b;
for ix=1:length(x)
f(ix)=exp(x(ix));
end
subplot(211)
plot(x,f)
ylabel('f(x)= ???')

y=1:0.5:Nt
subplot(212)
semilogy(erreur_trapeze,'y-');hold on
semilogy(erreur_romberg,'r');hold off
title([nom, 'Convergence des methodes trapezes (-.) et
de Romberg (-)'])
xlabel('Nombre d"iterations')

