function I = integ_fce(f,a,b,n)
%integ_fce - numericka integrace funkce lichob. metodou
%f....handle funkce, jejiz integral chceme zjistit
%a,b...interval, na kterem pocitam urc. integral
%n...pocet dilku (implictne n=10000)
%I...pribliyna hodnota urciteho integral na intervalu [a,b]
%integ_fce(@sin,0,pi,50) urcity int. fce sin s hrubym delenim
%integ_fce(@sin,0,pi,500)

if nargin<4
    n=10000;
end
if a>=b
    error('Pocatecni a koncovy bod intervalu jsou zadany chybne!')
end
n=fix(n);   %odsekneme desetinnou cast, pro jistotu
if n<=0
    error('Zadejte KLADNY pocet dilku')
end
I=0;    %priprava
h=(b-a)/n;  %krok pro metodu
x=a:h:b;    %nezavisle promenna
y=f(x);      %hodnoty funkce v bodech 'x'
for i=1:n %pro kazdy dilek
    I = I + (y(i)+y(i+1))/2;   %pricteni lichobezniku
end

I=I*h;  %pridani podstavy k lichobezniku

%nebo
I2=0;
I2=(f(x(1))+f(x(end))+2*sum(f(x(2:end-1))))/2*h    %prvni a posledni jen jednou, ostatni dvekrat

%nebo
I3=0;
x=a;
while x<(b-h)
    I3=I3+(feval(f,x+h)+feval(f,x))/2*h;
    x=x+h;    
end
I3
