function [x] = vorw_subst(L,b) 

% vorw_subs f"uhrt die Vorw"artssubstitution eines Dreieckssystems
% mit unterer Dreiecksmatrix  L durch. Die rechte Seite ist b und das
% Ergebnis wird auf dem Vektor x gespeichert
% Der Aufruf ist [x] = vorw_subst(L,b)

% kontrolliere, ob alle Dimensionen passen
[n,m] = size(L);
if n ~= m
  error('L ist keine quadratische Matrix')
end
if n ~= size(b)
  error('Die Dimension von L und b passen nicht')
end

% erste Zeile
x(1) = b(1)/L(1,1);

% die anderen Zeilen
for i=2:n
  % L(i,1:i-1)*(x(1:i-1))' ist das Skalarprodukt 
  % L(i,1)*x(1) + L(i,2) * x(2) + ... + L(i,i-1)*x(i-1)
  % in dieser kurzen Schreibweise muss x noch zu einem 
  % Spaltenvektor konvertiert werden
  x(i) = (b(i)-L(i,1:i-1)*(x(1:i-1))')/L(i,i);
end

% Das Ergebnis wird zum Spaltenvektor konvertiert
x = x';






