function [Is,It]=integrali2d(f,a,b,c,d,h,k)
%funkcija nalazi vrednost integrala funki=cije f(x,y)
%na pravougaoniku [a,b] times [c,d] koristeci korak h na x osi,
% tj korak k na y osi
% test:
%[Is,It]=integrali2d(@(x,y) sin(x.^2+y.^2),0,0.6,0,0.4,0.3,0.2)
%Ugradjena funkcija: integral2(f,xmin,xmax,ymin,ymax), gde je f anonimna
%funkcija dve promenljive
%Za nas zadatak: integral2(@(x,y) sin(x.^2)+sin(y.^2),0,0.6,0,0.4)

xx=a:h:b;
n=length(xx);
yy=c:k:d;
m=length(yy);

F=ones(m,n);
for i=1:m
    for j=1:n
        F(i,j)=f(xx(j),yy(i));
    end
end


%%%trapezna formula
At=ones(m,n);
At(1,2:n-1)=2;
At(m,2:n-1)=2;
At(2:m-1,1)=2;
At(2:m-1,n)=2;
At(2:m-1,2:n-1)=4;

At
It=h*k*sum(sum((At.*F)))/4;

%%Simpsonova formula
if mod(n,2)~=0 && mod(m,2)~=0
    As=ones(m,n);
    
    pom=4*ones(1,m-2); 
    pom(2:2:end)=2;%pomocni vektor za prvu i poslednju kolonu
    As(2:m-1,1)=pom;
    As(2:m-1,n)=pom;

    pom2=4*ones(1,n-2); 
    pom2(2:2:end)=2;%pomocni vektor za prvu i poslednju vrstu
    As(1,2:n-1)=pom2;
    As(m,2:n-1)=pom2;
  
    As(2:2:m-1,2:2:end-1)=16;
    As(3:2:m-1,2:2:end-1)=8;
    As(2:2:m-1,3:2:end-1)=8;
    As(3:2:m-1,3:2:end-1)=4;
    
    As

    Is=h*k*sum(sum(As.*F))/9;
else
    disp('Broj cvorova na obe ose mora biti neparan!')
end


