Voraussetzungen

  • Traktrix

  • Explizite Integrationsverfahren von gewöhnlichen Differentialgleichungen

Lerninhalte

  • Implizite Integrationsverfahren von gewöhnlichen Differentialgleichungen

Integration von ODEs mit impliziten Verfahren#

Wir wollen in diesem Kapitel wieder die Traktrix

\[f(x,y(x)) = y'(x) = - \frac{y}{\sqrt{d^2-y^2(x)}}\]

lösen, diesmal mit impliziten Verfahren.

Aufgabe 1: Die rechte Rechteckregel#

Die rechte Rechteckregel lautet

\[\int_{x_i}^{x_{i+1}}f(x,y(x))dx \approx h \cdot f(x_{i+1},y_{i+1}).\]

Daraus leiten wir für die ODE

\[y_{i+1} \approx y_i + h \cdot f(x_{i+1},y_{i+1})\]

ab. Diese Gleichung können wir nach \(0\) umstellen, wodurch wir anstelle der ODE ein Nullstellenproblem für jeden Schritt lösen müssen.

\[0 = - y_{i+1} + y_i + h \cdot f(x_{i+1},y_{i+1}) := g(y_{i+1})\]

Die Nullstelle der Funktion \(g(y_{i+1})\) ist also unser gesuchter nächster Schritt.

Hinweis

Dieses Vorgehen entspricht dem impliziten Eulerverfahren, das in dem Kapitel Stabilität des expliziten versus impliziten Eulerverfahrens weiter dikutiert wird.

Implementieren Sie das implizite Eulerverfahren für die Traktrix.

Tipp

Eine Matlab-Routine zum Finden von Nullstellen, nämlich fzero, kennen Sie bereits aus Newton-Verfahren. Dafür müssen Sie aus Ihrem function handle für \(g(x_i,x_{i+1})\) ein spezifisches function handle \(\~g(x_{i+1})\) definieren.

% your code here
y0    = 1;
n     = 20; % number of timesteps
tmax  = 10;
tspan = linspace(0,tmax,n);
h     = tmax/(n-1);
g     = @(yip1,yi) -yip1 + yi + h*...;
y     = zeros(n);
y(1)  = y0;
for i = 2:n
    t    = tspan(i);
    y(i) = fzero(@(yip1) g(yip1,y(i-1)));
end

plot(tspan,y)

Aufgabe 2: Die bessere Trapezregel (implizit gelöst)#

In der Aufgabe 2: Mittelpunktsregel haben Sie die linke Rechteckregel genutzt, um Ihre Werte für die Stützstelle der Mittelpunktsregel zu schätzen, und sind bei einem Runge-Kutta-Verfahren 2. Ordnung gelandet. Lösen Sie nun die Trapezregel, bei der Sie den Funktionswert am rechten Rand des Intervalls wie oben implizit lösen.

Hinweis

Zur Erinnerung die Trapezregel:

\[\int_{x_i}^{x_{i+1}}f(x,y(x))dx \approx \frac{1}{2}h \cdot \left(f(x_i,y_i) + f(x_{i+1},y_{i+1})\right)\]
../../_images/quadratur_trapez_x.png

Fig. 11 Integral einer bekannten Funktion mit der Trapezregel.#

% your code here