function Blatt4

% exakter Wert des Integrals
exact_val = -pi*log10(2);
% zu integrierende Funktion
f = @(x) log10(1-x);
% Vorsicht: Für die Integration einer beliebigen Funktion \int_-1^1 g(x) dx mit der Gauss_Tschebyscheff-Quadratur, muss umgeformt werden zu 
%           \int_-1^1 g(x)*w(x)*sqrt(1-x^2) dx - mit der Gewichtsfunktion w(x) = 1/sqrt(1-x^2). 
%           Dann müsste man als Funktionsinput für die Quadratur f = @(x) g(x).*sqrt(1-x.^2) definiert werden.
% Hier ist aber der Integrand schon in der korrekten Form, sodass f = @(x) log10(1-x) ausreicht.

errors = zeros(3,1);
for i = 1:3
    n = 10^i;
    val = Gauss_Tschebischeff(f,n);
    errors(i) = abs(exact_val - val);
end
loglog(10.^(1:3), errors, '--*')
legend('Fehler')
set(gcf,'color','w')

end
% Ergebnisinterpretation:
% wir beobachten lediglich lineare Konvergenz. Dies steht aber nicht im Widerspruch zur VL, da die hier zu integrierende Funktion unbeschränkte Ableitungen hat.


function [val]= Gauss_Tschebischeff(f,n)
% Gauß-Tschebyscheff Quadratur: in Aufgabe 4.4 wurden Knoten und Gewichte 
% der Quadraturformel bestimmt

% Knoten
Knoten = cos(1/n*[pi:pi:n*pi] - pi/(2*n)); % es ist  pi*(2j-1)/2n = pi*j/n - pi/2n
% f(Knoten)
eval_Knoten = f(Knoten);
% Gewichte
Gewichte = pi/n*ones(1,n);
% Quadratur
val = sum(eval_Knoten.*Gewichte);
end