Fakultät für Mathematik Universität Duisburg-Essen Christian Clason, Ute Dima Blatt 7 ws 2015/16 NICHTLINEARE OPTIMIERUNG Hausaufgaben (Bearbeitung bis 14.12.2015) H 7.1 Sherman–Morrison–Woodbury-Formel a) Gegeben seien die Matrizen U, V ∈ Rn×m und die invertierbaren Matrizen A ∈ Rn×n und S ∈ Rm×m . Zeigen Sie, dass die Matrix M := A + USV T genau dann invertierbar ist, wenn W := S−1 + V T A−1 U invertierbar ist, und dass im Falle der Invertierbarkeit von M die folgende Identität gilt: M−1 = A−1 − A−1 UW −1 V T A−1 . b) Seien nun u, v ∈ Rn und A ∈ Rn×n invertierbar. Zeigen Sie, dass M := A + uvT invertierbar genau dann ist, wenn 1 + vT A−1 u 6= 0 gilt, und dass in diesem Fall die folgende Identität (Sherman– Morrison-Formel) gilt: −1 M A−1 uvT 1 + vT A−1 u = I− A−1 . c) Sei H ∈ Rn×n invertierbar und H+ das symmetrische Rang 1 (SR1) Update: H+ = H + (y − Hs)(y − Hs)T . (y − Hs)T s Leiten Sie mit Hilfe von (b) die dazu inverse Aufdatierungsformel B+ := H−1 + her. H 7.2 Inverses DFP-Update Leiten Sie das inverse DFP-Update her, B+ = B + ssT (By)(By)T − . sT y yT By H 7.3 Beispiel für das Broyden-Verfahren Die Funktion F : R2 → R2 sei durch F(x1 , x2 ) = x1 x2 + x22 gegeben. Diese Funktion hat die Nullstelle x∗ = (0, 0)> . a) ZeigenSie, dass das Broyden-Verfahren mit dem Startpunkt x0 = (0, δ)> und der Startmatrix 1+ε 0 durchführbar ist und die Folge {xk } superlinear gegen x∗ konvergiert, sofern 0 1 |ε| < 1 und |δ| genügend klein ist. A0 = b) Beweisen Sie, dass die Folge {Ak } für ε 6= 0 nicht gegen die Jacobi-Matrix F 0 (x∗ ) konvergiert. Hinweis: Zeigen Sie, dass k x = 0 δk 1+ε 0 und Ak = 0 1 + γk für k = 0, 1, . . . mit gewissen Zahlen δk und γk sowie δk+1 = 0, k→∞ δk lim gilt. lim γk = 0, k→∞ lim kAk − F 0 (x∗ )kF = |ε| k→∞ Programmieraufgaben (Bearbeitung bis 21.12.2015, Besprechung in der Übung) P 7.1 Quasi-Newton-Verfahren Implementieren Sie das Quasi-Newton-Verfahren zur Minimierung einer Funktion f aus der Vorlesung. Verwenden Sie eine Liniensuche, die die Powell–Wolfe-Regel benutzt, und vergleichen Sie die inversen SR1-, DFP- und BFGS-Updates. Wählen Sie als Startmatrix B0 jeweils die Einheitsmatrix I. Um zu verhindern, dass das Verfahren mit SR1-Update fehlschlägt, modifizieren Sie den Matrix-Update wie folgt: Bk+1 = B+ Bk falls yTk (sk − Bk yk ) > ρkyk kksk − Bk yk k, sonst für ein ρ < 1 (zum Beispiel ρ = 10−8 ). Alternativ können Sie das Update überspringen, falls yTk sk 6 0 ist. Sie sollten Ihre Implementierung anhand der Rosenbrock-Funktion testen (mit den Startwerten aus P 3.1). Geben Sie jeweils die Norm des Gradienten in jeder Iteration graphisch aus, sowie am Ende den berechnete Minimierer und die dafür benötigte Anzahl an Iterationen. Als Abbruchkriterium können Sie k∇f(xk )k < 10−6 oder k > 500 wählen, die Parameter in der Liniensuche sollten Sie auf γ = 10−4 und η = 0.9 setzen.