Sto studiando sul libro "Matematica numerica" di Quarteroni, Sacco, Salieri ma purtroppo non mi è di grande aiuto perché questa cosa non l'ho trovata. Con le mie conoscenze di Matlab sono riuscita a fare questo:
function [q,x]=Gausscomposito2punti(fun,a,b,n)
%Prima funzione richiesta nell'esercizio.
H=(b-a)/n;
x=(a+H/2):H:(b-H/2);
y=x-H/(2*sqrt(3));
z=x+H/(2*sqrt(3));
p=fun(y);
k=fun(z);
q1=sum(p);
q2=sum(k);
q=H/2*(q1+q2);
end
function [q,N]=Gausserr(fun,a,b,toll)
%seconda funzione richiesta.
qold=gennaio2018(fun,a,b,1);
imax=20;
N=2;
K=1/2;
toll=K*toll;
for i=1:imax
q=Gausscomposito2punti(fun,a,b,N);
err=abs(q-qold)/20;
if err<toll,return,end
qold=q;
N=2*N;
if N>2^10,return,end
end
Il mio dubbio sta in quel /20 quando scrivo err. In teoria qui si parla di stima a posteriori dell'errore.