  function x = felsoHaromszogMegold(U,b)
    %%% az input ellenőrzése:
    [n, m] = size(U);
    [nb, mb] = size(b);
    x = nan(n,1);
    n = length(b);
    if (n ~= m) | (mb ~= 1) | (n ~= nb)
      error("U és/vagy b dimenziója nem megfelelő!")
    endif
    
    if U(n,n) ~= 0
      x(n) = b(n)/U(n,n);
    else
      error("U(n,n) = 0: A visszahelyettesítés nem hajtható végre!") % ezt szebben kellene ;-)  
    endif
    for j=n-1:-1:1
      if U(j,j) ~= 0
        x(j) = ( b(j) - U(j,j+1:n)*x(j+1:n) ) / U(j,j);
        else
          error("U(jj) = 0: A visszahelyettesítés nem hajtható végre!") % ezt szebben kellene ;-)
      endif
    endfor
  endfunction
