
function S=midpoint_composta(f,N,estremi)

if N <= 0
    S=NaN; return;
end

if N ~= floor(N)
    S=NaN; return;
end

a=estremi(1); b=estremi(2);

if ~(b > a)
    S=NaN; return;
end

h=(b-a)/N;

x=linspace(a+h/2,b-h/2,N);

y=feval(f,x);

S=h*sum(y);
