0 Daumen
326 Aufrufe

Frage:

Schreiben Sie eine Funktion Ih = quadratur(f,a,b,N,regel), die die folgenden Argumente (in obiger Reihenfolge) erwartet:

Eine Funktion f : [a, b] → R, reelle Zahlen a, b eine ganze Zahl N und einen String regel, welche den Wert ’rechteck’,
’trapez’ oder ’simpson’ annehmen kann. Je nachdem, welchen Wert regel hat, soll das Integral ∫ (von a,b) f(x)dx mit der Rechtecksregel, der Trapezregel und der Simpsonregel approximiert werden. N gibt die Anzahl der (äquidistanten) Teilintervalle an.


b) Bestimmen Sie den exakten Wert des Integrals ( von 0 und pi/2) cos(x)esin(x)dx .

Schreiben Sie ein Skript quad_plot, welche folgende Aufgabe erfullt: Berechnen Sie die Approximation des Integrals fur alle in (a) genannten Verfahren und mit N = 2, 4, 8, 16, 32, 64.

Sei h die Länge der jeweiligen Teilintervalle. Generieren Sie mit dem Matlab-Befehl loglog für jede Quadraturformel ein Schaubild, welches den Logarithmus des Fehlers als Funktion von log(h) aufträgt. Zeichnen Sie in den je selben Plot die Funktion h bei der Rechtecksregel, h2 bei der Trapezregel und h4 bei der Simpsonregel.

Was beobachten Sie? Können Sie das Verhalten erklären?

Hinweise: Der Befehl loglog funktioniert wie der Befehl plot, jedoch wird log(f(log(x))) über log(x) aufgetragen. Mit figure(k) können Sie Matlab anweisen, den folgenden Plot in das k-te Schaubild zu zeichnen.


Ansatz/Problem:

Bei a) hätte ich zuerst diese Quadratur alle Variabeln definiert und dann die formel programmiert.  weiter wüsste ich nicht ... bzw auch wie ich das alles Stück für Stück schreibe.

Avatar von

1 Antwort

0 Daumen

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.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community