x = 0:0.5:4 f = [3 1 2 0 5 -2 3 1 -1] % plot(x,f,'*') function T = trapez(x,f) h = x(2)-x(1) m = length(x) % intervallumok szama: n = m-1 %% itt nem baj, ha paratlan sok az intervallum so = 2*sum(f) - f(1) - f(end) T = so*h/2 endfunction function T = trapez_hibaval(x,f) h = x(2)-x(1) m = length(x) % intervallumok szama: n = m-1 so = 2*sum(f) - f(1) - f(end) T = so*h/2 if mod(n,2) == 1 %% ha n paratlan, ott nem tudunk T_(n/2)-t szamolni! hiba = Inf else f_uj = f(1:2:end) so_uj = 2*sum(f_uj) - f_uj(1) - f_uj(end) T_uj = so_uj*h %% so_uj*h*2/2 hiba = abs(T-T_uj) endif hiba endfunction function S = Simpson(x,f) h = x(2)-x(1) n = length(x) - 1 if mod(n,2) == 1 %% ha n paratlan, Simpson formula nem ertelmezheto S = Inf else %% ha n paros, szamolunk so = f(1) + f(end) so += 4* sum( f(2:2:(end-1)) ) so += 2* sum( f(3:2:(end-2)) ) S = so*h/3 endif endfunction function S = Simpson_hibaval(x,f) h = x(2)-x(1) n = length(x) - 1 if mod(n,2) == 1 %% ha n paratlan, Simpson formula nem ertelmezheto S = Inf else %% ha n paros, szamolunk so = f(1) + f(end) so += 4* sum( f(2:2:(end-1)) ) so += 2* sum( f(3:2:(end-2)) ) S = so*h/3 endif if mod(n,4) == 0 %% ha n oszthato 4-gyel, akkor meg n-2 is paros, % arra is lehet Simpson, es van utolagos hibabecsles %% szamoljuk ki S_(n/2)-t: f_uj = f(1:2:end) so_uj = f_uj(1) + f_uj(end) so_uj += 4* sum( f_uj(2:2:(end-1)) ) so_uj += 2* sum( f_uj(3:2:(end-2)) ) S_uj = so_uj*h*2/3 % vagy: h_uj = 2*h -val hiba = abs(S - S_uj) else hiba = Inf endif hiba endfunction