function [A,b] = mkp_1d(uzly,prvky,f,ID)

% [A,b] = mkp_1d(uzly,prvky,f,)
%           sestavi MKP-soustavu A*u = b, kde
%           uzly ... souradnice diskretizacnich uzlu,
%           prvky ... dvojice indexu uzlu,
%           f ... vektor hodnot f(x) pro kazdy prvek,

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

A = sparse(n,n);
b = zeros(n,1);

for i=1:m
    prvek_lok = prvky(:,i);
    uzly_lok = uzly(:,prvek_lok);
    f_lok = f(i);
    
    A_lok = alok_derder(uzly_lok,1);
    b_lok = blok1D_id(uzly_lok,f_lok);
    
    for j=1:2
        for k=1:2
            if j==k || ( ~max(prvek_lok(j)==ID) && ~max(prvek_lok(k)==ID) )
                A(prvek_lok(j),prvek_lok(k)) = A(prvek_lok(j),prvek_lok(k)) + A_lok(j,k);
            end
        end
        if ~max(prvek_lok(j)==ID)
            b(prvek_lok(j)) = b(prvek_lok(j)) + b_lok(j);
        end
    end
    
end

