function [A,b] = mkp(uzly,prvky,k,f,DirUzly,u0,NeumUzly,g)

n = max(size(uzly));
m = size(prvky,2);

Avlnka = sparse(n,n);
bvlnka = zeros(n,1);

for e=1:m
    prveke = prvky(:,e);
    he = uzly(prveke(2))-uzly(prveke(1));
    Ae = k(e)/he * [1 -1;-1 1];
    Avlnka(prveke,prveke) = Avlnka(prveke,prveke) + Ae;
    be = f(e)*he/2 * [1;1];
    bvlnka(prveke) = bvlnka(prveke) + be;
end

bvlnka(NeumUzly) = bvlnka(NeumUzly) + g;
neDirUzly = setdiff(1:n,DirUzly);
b = bvlnka(neDirUzly) - Avlnka(neDirUzly,DirUzly)*u0;
A = Avlnka(neDirUzly,neDirUzly);