%
% trapez.m
%
% Numerische Integration von func(x) ueber [a,b]
% Berechnung von Trapez-Naeherungen
%     fuer n=0: Initialisierung von T_1
%          n>0: T_N -> T_2N , wobei 2N = 2^n
%
function [T2N] = trapez(func,a,b,TN,n);

if n < 0,
      error('negatives n in trapez');
elseif n == 0,                % nur ein Intervall
      T2N = .5*(b-a)*(func(a) + func(b));
else
      h = (b-a)/2^n;          % neue Schrittweite
      T2N = 0;
      for x=a+h:2*h:b,        % Summe ueber neue (innere) Punkte
            T2N = T2N + func(x);
      end
      T2N = h*T2N + .5*TN;    % neue Trapez-Naeherung
end
