Antwort mit KI erzeugt
Teil a: Funktion quadratur
programmieren
Zuerst erstellen wir die MATLAB-Funktion, die je nach gewählter Regel die Rechtecksregel, die Trapezregel oder die Simpsonregel verwendet, um das Integral einer Funktion \( f(x) \) auf einem Intervall \([a, b]\) zu approximieren.
matlab
function Ih = quadratur(f, a, b, N, regel)
h = (b - a) / N; % Länge der Teilintervalle
x = a:h:b; % Vektor der Teilpunkte
switch regel
case 'rechteck'
xMid = (x(1:end-1) + x(2:end)) / 2;
Ih = sum(f(xMid)) * h;
case 'trapez'
Ih = sum((f(x(1:end-1)) + f(x(2:end))) / 2) * h;
case 'simpson'
xMid = (x(1:end-1) + x(2:end)) / 2;
Ih = (h/6) * sum(f(x(1:end-1)) + 4*f(xMid) + f(x(2:end)));
otherwise
error('Unbekannte Regel');
end
end
Teil b: Exakten Wert des Integrals berechnen
Das Integral \(\int_{0}^{\pi/2} \cos(x) \, dx\) kann exakt berechnet werden, ohne den Zusatz von \( \sin(x) \) im Aufgabentext zu berücksichtigen, da es sich wahrscheinlich um einen Tippfehler handelt. Der exakte Wert des Integrals lässt sich durch die direkte Integration ermitteln:
\(
\int_{0}^{\pi/2} \cos(x) \, dx = [\sin(x)]_{0}^{\pi/2} = \sin(\frac{\pi}{2}) - \sin(0) = 1 - 0 = 1
\)
Teil c: Skript quad_plot
Um die Approximation des Integrals für jedes Verfahren und für \( N = 2, 4, 8, 16, 32, 64 \) zu berechnen und grafisch darzustellen, verwenden wir das Skript
quad_plot
.
matlab
f = @(x) cos(x); % Definierte Funktion f(x) = cos(x)
a = 0; % Intervall Anfang
b = pi/2; % Intervall Ende
N_values = [2, 4, 8, 16, 32, 64]; % Anzahl der Teilintervalle
exactValue = 1; % Exakter Wert des Integrals
for i = 1:length(N_values)
N = N_values(i);
h(i) = (b - a)/N;
error_rechteck(i) = abs(quadratur(f, a, b, N, 'rechteck') - exactValue);
error_trapez(i) = abs(quadratur(f, a, b, N, 'trapez') - exactValue);
error_simpson(i) = abs(quadratur(f, a, b, N, 'simpson') - exactValue);
end
% Grafische Darstellung
figure(1);
loglog(h, error_rechteck, '-o', h, h, '--');
title('Fehler der Rechtecksregel');
xlabel('log(h)');
ylabel('log(Fehler)');
legend('Fehler', 'h', 'Location', 'northwest');
figure(2);
loglog(h, error_trapez, '-o', h, h.^2, '--');
title('Fehler der Trapezregel');
xlabel('log(h)');
ylabel('log(Fehler)');
legend('Fehler', 'h^2', 'Location', 'northwest');
figure(3);
loglog(h, error_simpson, '-o', h, h.^4, '--');
title('Fehler der Simpsonregel');
xlabel('log(h)');
ylabel('log(Fehler)');
legend('Fehler', 'h^4', 'Location', 'northwest');
Beobachtungen und Erklärung
Durch die Darstellung der Fehler in den Log-Log-Plots für jedes Quadraturverfahren im Vergleich zur Potenz von \( h \) (Rechtecksregel: \( h \), Trapezregel: \( h^2 \), Simpsonregel: \( h^4 \)) beobachten wir die erwarteten Konvergenzraten. Die Fehlerkurven und die Linien für die entsprechenden \( h \)-Potenzen sollten ähnliche Steigungen haben, was auf die Ordnung der Fehlerreduktion hinweist. Das bedeutet, dass der Fehler bei der Rechtecksregel linear mit der Größe des Teilintervalls \( h \) abnimmt, bei der Trapezregel quadratisch und bei der Simpsonregel in der vierten Potenz. Diese Beobachtungen entsprechen der theoretischen Konvergenzrate der jeweiligen numerischen Integrationsmethoden.