%Code zur Loesung des linearen Gleichungssystems


clear; 
clc; 
clf;
 


N = 200;
y = 0.0001;
 
% verrauschte Daten v

ustar = [zeros(round(N/2),1); ones(N+1-round(N/2),1)];
v = ustar + 0.1*randn(N+1,1);
 
% Erstellen der Diagonalmatrix D

D = zeros(N+1,N+1);

D(1,1) = 1;
D(1,2) = -1;
D(N+1,N+1) = 1;
D(N+1,N) = -1;
 
for k = (2:1:N)              
    D(k,k-1) = -1;   
    D(k,k) = 2;
    D(k,k+1) = -1;  
end
 
h = 1/N;
I = eye(N+1); 			% Eye= Einheitsmatrix
 
% Abschätzen des LGS 

u = ((y/h^2)*D + I)\v;
 
 
x = linspace(0,1,N+1); 
figure()

% Visualisieren
 
plot(x, v, '-r', 'LineWidth', 1)
hold on
plot(x, u, '-b', 'LineWidth', 2)
plot(x, ustar, '-g', 'LineWidth', 2)
hold off
legend('verrauschtes Signal', 'Abgeschätztes Signal', 'unverrauschtes Signal')
title('LGS')
xlabel('Dauer/s')
ylabel('Auslenkung/u.a.')
