function Feichtel

N = 10;
N1 = N+1;
N4 = round(N/4);
V0 = [zeros(N4,1);ones(N1-2*N4,1);zeros(N4,1)];
 
h = 1/N;
d = 1;
k = 1;
M = spdiags([2*ones(N,1);1],0,(N1),(N1)) + spdiags(-1*ones(N1),-1,(N1),(N1)) + spdiags(-1*ones(N1),1,(N1),(N1));
O = spdiags([1;ones(N-1,1);1],0,(N1),(N1)) + spdiags(-1*ones(N1),-1,(N1),(N1));

I = eye(N1);
B = (d/h)*M+(k/h)*O+rI
 
% und stelle die L¨osung bei jedem Zeitschritt grafisch dar:
% V = V0;
% for n=1:nmax
% V = vorwaerts(L,V); % Vorwaerts Substitution mit L
% V = rueckwaerts(U,V); % Rueckwaers Substitution mit U
% plot(x,V);
% drawnow; pause(0.1);
% end

% Pseudo-Code zur Rückwärts Substitution:
% x n = A n,n+1 / A nn
% for i=n-1,...,1
% s=0
% for j=i+1,...,n
% s = s + A ij*x j
% end
% x i = (A i,n+1 - s) / A ii
% end

end

function x = rueckwaertssubst(R,z)

n = size(R,1);

% Initialisierung
x = zeros(n,1);
x(n) = 1/R(n,n)*z(n);

for k=n-1:-1:1
    
    x(k) = 1/R(k,k)*(z(k) - R(k,k+1:n)*x(k+1:n,1));

end

end

% Pseudo-Code zur R¨uckw¨ arts Substitution:
% x n = A I(n),n+1 / A I(n),n
% for i=n-1,...,1
% s=0
% for j=i+1,...,n
% s = s + A I(i)j*x j
% end
% x i = (A I(i),n+1 - s) / A I(i),i
% end
