%Einführung in Numerische Mathematik
%Übungsblatt 1, Aufgabe 3
%Gülnur Adanc
%__________________________________________________________________________
%__________________________________________________________________________


% Lösen eines linearen Gleichungssystems
% ---------------------------------------
 
clc;
close all;
clear all;
 
N = 200;
my = 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);
 
% 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              % Zeilen  
    D(k,k-1) = -1;   
    D(k,k) = 2;
    D(k,k+1) = -1;  
end
 
h = 1/N;
I = eye(N+1); %Eye= Einheitsmatrix
 
% Lösung des linearen Gleichungssystems (Abschätzung)
% ----------------------------------------------------
u = ((my/h^2)*D + I)\v;
 
 
% Gitter
% -------
x = linspace(0,1,N+1); % erzeugt einen zeilenvektor mit Einträgen zwischen 0 und 1 und Länge n+1
 
% graphische Darstellung
% -----------------------
figure()
 
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', 'Abschätzung des unverrauschen Signals', 'unverrauschtes Signal')
title('Lineares Gleichungssystem')
xlabel('Zeit/s')
ylabel('Amplitude/u.a.')


