Aufgaben#

Python-Pakete und Konfiguration#

import numpy as np
import matplotlib.pyplot as plt

Aufgabe 1: Rosenbrock-Funktion#

Bestimmen Sie analytisch, dass die Rosenbrock-Funktion

\[f(x,y) = (a - x)^{2} + b(y - x^{2})^{2}\]

für \(a > 0\) und \(b > 0\) ein Minimum bei \((a, a^2)\) mit \(f(a, a^2)=0\) hat, und erstellen Sie eine Konturlinien-Plot der Funktion für \(a = 1\) und \(b = 1\).

Aufgabe 2: Gradientenverfahren#

Es sei die Funktion \(f(x, y) = yx + 2x + 6\) gegeben.

  1. Bestimmen Sie die Extrempunkte und die Hessematrix dieser Funktion auf analytische Weise, d. h. von Hand. Berechnen Sie anschließend die Eigenwerte der Hessematrix an dieser Stelle. Was sagen diese Werte aus?

  2. Dann führen Sie vier Schritte des Gradientenverfahrens mit Python durch, sodass die Funktionswerte größer werden, also Maximierung. Vergleichen Sie die Schritte für die beiden Startwerten \(x_0 = (-3, 3)\) und \(x_0 = (0, 1)\).

  3. Plotten Sie die Höhenlinien der Funktion mit den Schritten des Gradientenverfahrens, also den Schritten \(x_k = x_{k-1} + \nabla f(x_{k-1})\).

  4. Was ändert sich im Plot, wenn Sie den Startwert ändern? Warum stimmt Ihre analytische Rechnung nicht mit dem Gradientenverfahren überein? Wie ändern sich die Schrittgrößen pro Schritt und warum?

Hinweise: Plotten Sie zunächst die Höhenlinien der Funktion mit dem Befehl contour aus matplotlib.pyplot. Dann definieren Sie die Funktion und den Gradienten der Funktion. Beachten Sie, dass die Ausgabe ein Vektor ist. Berechnen Sie dann in einer for-Schleife die neuen Punkte \(x_k = x_{k-1} + \nabla f(x_{k-1})\) und zeichnen Sie diese bis einschließlich \(k = 4\).

Aufgabe 3: Richtungsableitung#

Bisher haben wir den Gradienten kennengelernt, der die Steigungen einer Funktion entlang der \(x\)- und \(y\)-Achsen enthält. Wenn wir jedoch die Steigung entlang einer Richtung \(d\) wissen wollen, müssen wir die Richtungsableitung \(\nabla f(x) \cdot d\) bilden (Inneres Produkt des Gradienten mit der Richtung \(d\)). Man verwendet nur Richtungen der Länge eins, d. h. \(|| d || = 1\).

Begründen Sie anhand der Richtungsableitung und der Gleichung \(x \cdot y = || x || \, || y || \, \cos(\alpha)\), warum die Richtung des größten Anstiegs die Richtung des Gradienten sein muss.