This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)

 Documentation /  Mathematica /  Das Mathematica Buch /  Höhere Mathematik in Mathematica /  Numerische Operationen mit Funktionen /

Numerische Lösung von DifferentialgleichungenLineare Optimierung

3.9.8 Numerische Minimierung

Mit FindRoot können Sie Punkte finden, an denen eine bestimmte Funktion Null ist. Nun ist es häufig auch wichtig, Punkte finden zu können, an denen eine Funktion ihren Minimalwert annimmt. Im Prinzip ließe sich dies bewerkstelligen, indem man FindRoot auf die Ableitung der Funktion anwendet. Praktisch gibt es jedoch effizientere Ansätze.

Mit FindMinimum können Sie einen Minimalwert einer Funktion finden. Wie in FindRoot spezifizieren Sie den ersten oder die ersten zwei Versuchspunkte, und anschließend versucht FindMinimum, immer genauere Approximationen für ein Minimum zu erhalten. Wenn FindMinimum ein eindeutiges Ergebnis zurückgibt, dann entspricht das Ergebnis garantiert zumindest einem lokalen Minimum Ihrer Funktion. Es ist jedoch wichtig zu verstehen, daß das Ergebnis möglicherweise nicht der globale Minimalpunkt ist.

Die Vorstellung, daß die Werte Ihrer Funktion die Höhen einer Fläche definieren, erleichtert das Verständnis für die Funktionsweise von FindMinimum. FindMinimum startet im Grunde an dem spezifizierten Punkt und folgt dann dem Weg des steilsten Abstiegs auf der Oberfläche. Außer in pathologischen Fällen führt dieser Pfad immer zumindest zu einem lokalen Minimum auf der Oberfläche. In vielen Fällen wird das Minimum jedoch nicht global sein. Betrachten Sie als einfaches Bild, das diesen Sachverhalt illustriert, einen Berg. Das Wasser, das auf den Berg fällt, fließt auf dem Weg des steilsten Abstiegs den Abhang hinunter. Aber nicht das gesamte Wasser gelangt in die Talgründe, sehr viel verbleibt in Bergseen, die den lokalen Minima der Gebirgshöhen-Funktion entsprechen.

Sie sollten sich auch bewußt machen: Weil FindMinimum keine wirklich infinitesimalen Schritte macht, ist es immer noch möglich, daß es sogar über ein lokales Minimum hinwegschießt.

Dies ermittelt den Wert von , der minimiert, mit als Startwert.

In[1]:= FindMinimum[Gamma[x], {x, 2}]

Out[1]=

Hier ist eine Funktion mit vielen lokalen Minima.

In[2]:= Plot[Sin[x] + x/5, {x, -10, 10}]

Out[2]=

FindMinimum findet das lokale Minimum, das am nächsten zu liegt. Dies ist nicht das globale Minimum der Funktion.

In[3]:= FindMinimum[Sin[x] + x/5, {x, 1}]

Out[3]=

Dies findet das globale Minimum einer Funktion zweier Variablen. Wie bei FindRoot ist es vorteilhaft, Startwerte so zu wählen, daß sie nicht zu „speziell" sind.

In[4]:= FindMinimum[x^4 + 3 x^2 y + 5 y^2 + x + y,
{x, 0.1}, {y, 0.2}]

Out[4]=

Numerische Minimierung

Numerische Lösung von DifferentialgleichungenLineare Optimierung