function [A,b] = MKP3_elektrostatika(Uzly,Trojuhelniky,HraniceMinus,HranicePlus,Oblasti,epsilonr,U)

epsilon0 = 8.854e-12;

% pocet uzlu
n = size(Uzly,2);

% pocet trojuhelniku
m = size(Trojuhelniky,2);

% pocet uzlu na hranici
nHraniceMinus = length(HraniceMinus);
nHranicePlus = length(HranicePlus);

A = sparse(n,n); % nevhodne, lepe pouzit sparse(n,n)
b = zeros(n,1);

for k=1:m
    
    Trojuhelnikk = Trojuhelniky(:,k);
    Uzlyk = Uzly(:,Trojuhelnikk);
    
    if Oblasti(k)==1 % dielektrikum
        epsilonk = epsilon0*epsilonr;
    else
        epsilonk = epsilon0;
    end
    
    Ak = lokalni_matice_elektrostatika(Uzlyk,epsilonk);
    
    A(Trojuhelnikk,Trojuhelnikk) = A(Trojuhelnikk,Trojuhelnikk) + Ak;
    
end

% hranicni podminky: ui = -U pro xi z GammaMinus
A(HraniceMinus,:) = 0;
A(HraniceMinus,HraniceMinus) = speye(nHraniceMinus);
b(HraniceMinus) = -U;

% hranicni podminky: ui = +U pro xi z GammaPlus
A(HranicePlus,:) = 0;
A(HranicePlus,HranicePlus) = speye(nHranicePlus);
b(HranicePlus) = U;
