D-MATH ETH Zürich, 22. August 2011 Prof. Ch. Schwab NUMERISCHE MATHEMATIK I 1. Interpolation und Quadratur (25 P.) a) Sei [a, b] R 1 mit a < b ein beschränktes Intervall, und f C 2 ([a, b]). Zeigen Sie, dass gilt: b f(x)dx Q a [a,b][f] C b a 3 f C 0 ([a,b]), mit einer von a, b und f unanhängigen Konstanten C > 0, wobei Q [a,b] die Mittelpunktsregel bezeichnet. b) Für f C 0 ([0, 1]) bezeichne T h [f], h = 1/(N 1) die summierte Trapezregel mit N N äquidistanten Stützstellen auf dem Intervall [0, 1]. Zeigen Sie für f(x) = x α mit 0 < α < 1: 1 f(x)dx T h [f] = O(hα+1 ), h 0. 0 Was ändert sich für f(x) = x α g(x) mit g C 3 ([0, 1])? c) Verwen Sie den MATLAB-Code in Datei Aufgabe1/a1c.m und ergänzen Sie ihn, um ein Konvergenzdiagramm zu erzeugen, welches das Verhalten des Fehlers aus b) für α = 0.3 in Abhängigkeit von h für N = 2 k + 1, k = 4,..., 16 verifiziert. d) Führen Sie ausgeh von T h für jedes h = 1/(N 1) mit N wie in c) einen Schritt der Romberg-Extrapolation durch und stellen Sie die Konvergenz des Resultats als Funktion von h in einem Konvergenzdiagramm dar. Schreiben Sie dazu ein MATLAB-Skript Aufgabe1/a1d.m, welches das Diagramm plottet. Kann so die Konvergenzrate von α + 1 verbessert werden, und was ist der Grund dafür? e) Es sei S R d, d N ein konvexes, beschränktes Gebiet, auf dem das Integral I S [f] := f(x)dx (mit den üblichen Eigenschaften des Integrals) für S f C 0 (S) definiert ist, und α := I S [1] 0. Zeigen Sie, dass die Mittelpunktsregel Q S [f] := αf(ˆx), wobei ˆx i := 1 α I S[x i ], i = 1,..., d, auf linearen Funktionen exakt ist, also I S [f] reproduziert. Hinweis: Alle Diagramme müssen mit Achsenbeschriftungen versehen und mit dem Befehl saveas(gcf, plotname, pdf ) gespeichert werden. Siehe nächstes Blatt!
2. Fixpunktiteration (10 P.) Gegeben sei f(x) = x 2 g(x), x [ 1, 1], wobei g C 2 ([ 1, 1]) mit g(x) 0 x [ 1, 1]. a) Stellen Sie das Newton-Verfahren x n+1 = Φ(x n ) zu f auf. Vereinfachen Sie Ihren Ausdruck für Φ soweit möglich. b) Zeigen Sie: Gilt x 0 < ε 1 für ein hinreich kleines ε > 0, so konvergiert x n 0 für n. Geben Sie einen möglichen Wert für ε an. c) Welche Konvergenzordnung erwarten Sie im Fall x n 0, n? d) Geben Sie ein Verfahren mit quadratischer lokaler Konvergenz bei x = 0 an und beweisen Sie diese. 3. Matrixeigenschaften (5 P.) a) Sei A R n n mit A < 1. Zeigen Sie, dass die Matrix I A invertierbar ist, wobei I R n n die Einheitsmatrix bezeichnet. Verwen Sie dabei den Zusammenhang zwischen Spektralradius und Zeilensummennorm. b) Folgern Sie aus a), dass eine strikt spaltiagonaldominante Matrix B R n n invertierbar ist. 4. Gleitpunktarithmetik (8 P.) a) Betrachten Sie den folgen MATLAB-Code: a = 1; while (1 + a > 1) a = a / 3; Nehmen Sie an, der Code wird auf einem Computer in der Gleitpunktarithmetik F(3, 3, 3, 3) ausgeführt. Zeigen Sie, dass der Code terminiert. Was ist der Wert von a nach der Schleife? Begründen Sie. b) Definieren Sie die Operation rd : Bereich(F) F der Rundung nach IEEE754. Berechnen Sie damit für die Arithmetik F = F(10, 3, 2, 2) den Wert von i) rd( 329 2000 ), ii) rd(2.416), iii) rd( 3 1.7). Bitte wen!
5. Diskretisierung einer Differentialgleichung (25 P.) Betrachten Sie die Differentialgleichung: Für f C 0 ([0, 1]) und g C 0 (R) sei eine Funktion u C 2 ([0, 1]) gesucht, so dass u (x) + u(x) + g(u(x)) = f(x), x (0, 1) u(0) = 0, u(1) = 0. a) Sei zunächst u C 3 ([0, 1]), x (0, 1) beliebig. Zeigen Sie, dass für hinreich kleines h > 0 gilt: u (x) = h 2 [u(x h) 2u(x) + u(x + h)] + O(h). b) Diskretisieren Sie die Differentialgleichung, indem Sie die Ableitung an N + 2 äquidistanten Stützstellen x i [0, 1], i = 0,..., N + 1, durch den Differenzenquotienten aus a) ersetzen. Stellen Sie schematisch ein Gleichungssystem Au + u + G(u) = f in den unbekannten Koeffizienten u = (u 1,..., u N ) für allgemeines N auf und definieren Sie A, f und G(u). c) Zeigen Sie, dass die Fixpunktiteration u (k+1) = Φ(u (k) ) = (A + I) 1 (f G(u (k) )) konsistent ist mit der Gleichung Au + u + G(u) = f. Zeigen Sie, dass Φ eine Kontraktion bezüglich der 2-Norm ist, wenn es ein 0 L < 1 gibt, so dass g(u) g(v) L u v u, v R, und wenn L (A + I) 1 2 < 1. d) Vervollständigen Sie den MATLAB-Code im Ordner Aufgabe5 in den Dateien setupmatrix.m, setuploadvector.m, calcg.m, calcphi.m und ebenfalls exercise5.m, und berechnen Sie die Lösung u. Dabei sei f(x) = 25x(x 2 2) und g(u) = 1 3π sin(πu)2. Berücksichtigen Sie dabei die Anweisungen und Kommentare im Code. Stellen Sie sicher, dass beide generierten Plots gespeichert wurden. e) Interpretieren Sie untenstehen Konvergenzplot, der vom MATLAB-Code erzeugt wird. Um welche Art Konvergenz handelt es sich? Begründen Sie. 10 0 Konvergenz u (k) u (k+1) 2 10 5 10 10 2 4 6 8 k Siehe nächstes Blatt!
Code zu 5.c) Nur im Entwurf enthalten, Code später nur als Dateien auf den Prüfungscomputern gespeichert. Vervollstaigen Sie! function A = setupmatrix(n) Stellt die "Ableitungsmatrix" A in Abhaengigkeit der Systemgroesse N auf Input: N Systemgroesse, N >= 2 Output: A NxN-Matrix des Differenzenquotienten der 2. Ableitung (erste zentrale Differenz) Author:?????? Computer (slabxxx): function A = setupmatrix(n) A wenn moeglich ohne for-schleife berechnen, verwen Sie diag????? Vervollstaigen Sie! function f = setuploadvector(n) Stellt den Spaltenvektor der rechten Seite f in Abhaengigkeit der Systemgroesse N auf Input: N Systemgroesse, N >= 2 Output: f Spaltenvektor der Groesse N, enthaelt die Werte der vorgegebenen Funktion f(x) an den Stuetzstellen x_i Author:?????? Computer (slabxxx): function f = setuploadvector(n) Bitte wen!
f wenn moeglich ohne for-schleife berechnen????? Vervollstaigen Sie! function Gu = calcg(u) Wertet die Funktion G auf einem Vektor u (komponentenweise) aus. Input: u Spaltenvektor Output: Gu Spaltenvektor des Funktionswertes Gu_i = G(u_i) Author:????? Computer (slabxxx): function Gu = calcg(u) Gu wenn moeglich ohne for-schleife berechnen Gu =????? Vervollstaigen Sie! function un = calcphi(ua, A, f) Wertet die Iterationsfunktion Phi auf einer Iterierten ualt aus. Input: ua Spaltenvektor (aktuelle Iterierte) A Systemmatrix f Spaltenvektor der rechten Seite Output: un Spaltenvektor der naechsten Iterierte Author:????? Computer (slabxxx): Siehe nächstes Blatt!
function un = calcphi(ua, A, f) wenn moeglich, ohne eine explizite Inverse zu bilden un =????? Dieses Skript stellt die Matrix A und den Vektor f fuer N=20 auf und fuehrt 30 Iterationen der Fixpunktiteration durch. Der Startwert fuer u ist u(x) = 1. Am Ende plottet es die Loesung u ueber [0,1] und die 2-Norm der Differenz zweier aufeinanderfolger Iterationswerte uˆ{k+1} und uˆ{k} gegen den Iterationszaehler k. Vervollstaigen Sie alle Luecken! Ihr Name:????? Ihr Computer (slabxxx): N = 20; kmax = 30; Startwert fuer die Iteration u = zeros(n, 1); Vektor der Normen der Differenzen zweier aufeinander- folger Iterationswerte udiff = zeros(1, kmax); Durchfuehren der Iteration A = setupmatrix(n); f = setuploadvector(n); for k =?????????? close all; 1. Plot der Loesung figure; plot(0:1/(n+1):1, [0; u ; 0]. ); xlabel( x ); ylabel( u(x) ); title( Aufgabe 5: Ausgerechnete Loesung u ); saveas(gcf, a5loesung.pdf, pdf ); 2. Konvergenzplot Bitte wen!
figure; semilogy(1:kmax, udiff); xlabel( k ); ylabel( uˆ{(k)} - uˆ{(k+1)} _2 ); title( Aufgabe 5: Konvergenz ); saveas(gcf, a5konvergenz.pdf, pdf );