function [U] = STATIONARY(eq,U_0)
%STATIONARY Řeší stacionární úlohu vedení tepla. V lineární případě vyřeší
% soustavu SLR, jinak řeší soustavu nelineárních rovnic
% Vstupy: eq - strukture představující data přímé úlohy vedení tepla
% Výstupy: U - vektor řešení, U0 - počáteční iterace pro nelineární úlohu
% Kontrola, že máme stacionární úlohu
if ~eq.stationary
    error('Úloha není stacionární');
end

if ~exist('U_0','var')
    U_0 = zeros(size(eq.domain.p,2),1);
end

if eq.linear
    [~,K,F] = FEM(eq);
    U = K\F;   
else
    U = fsolve(@(U)wrapper(U,eq),U_0);
end
end

function R = wrapper(U,eq)
    [~,K,F] = FEM(eq,U);
    R = K*U-F;
end

