Link - Hochschule Ulm
Link - Hochschule Ulm
Link - Hochschule Ulm
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Aufgabe 120 (Logarithmusgleichung) Berechnen<br />
Sie in Matlab die Lösung von<br />
log 0.5 x = x<br />
Aufgabe 121 (Polynomgleichungen) Berechnen<br />
Sie mit roots die Lösung der Polynomgleichung<br />
x 3 + 6x 2 − 11x − 6 = 0<br />
Alle drei Lösungen sind reell.<br />
59. Optimierung (Teil 1)<br />
Matlab besitzt zwei Funktionen, um zu optimieren:<br />
fminbnd und fminsearch. Mit<br />
fminbnd kann man eine reellwertige Funktion<br />
einer reellen Variablen und mit fminsearch<br />
kann man eine reellwertige Funktion mehrerer<br />
reellen Variablen optimieren.<br />
Mit der Funktion optimset können Sie<br />
sich alle bei einer Optimierung einstellbaren<br />
Parameter ansehen und speziell<br />
mit optimset(’fminbnd’) bzw.<br />
optimset(’fminsearch’) die der Funktionen<br />
fminbnd bzw. fminsearch. Beachten Sie<br />
die Analogie zu odeset.<br />
Das Kommando x = fminbnd(fun, x1,<br />
x2) versucht von der Funktion fun über dem<br />
Intervall [x 1 , x 2 ] ein lokales Minimum zu<br />
finden. Im Allgemeinen hat eine Funktion<br />
mehrere Minima. In Matlab gibt es jedoch<br />
keine Funktion, dieses schwierige Problem<br />
zu lösen, nämlich ein globales Minimum zu<br />
finden.<br />
Wollen Sie eine Funktion f maximieren statt<br />
minimieren, dann können Sie − f minimieren,<br />
da Max x f (x) = −Min x (− f (x)) ist.<br />
Als Beispiel betrachten wir das eindimensionale<br />
(univariate) Optimierungsproblem:<br />
Minimiere<br />
x ∈ [−π, π]<br />
sin x − cos x<br />
Die Lösung erhalten wie folgt:<br />
1 >> f = @(x)sin(x)-cos(x);<br />
2 >> [x,fWert] = fminbnd(f,-pi,pi)<br />
3 x =<br />
4 -0.7854<br />
5 fWert =<br />
6 -1.4142<br />
Der von fminbnd verwendete Algorithmus ist<br />
eine Kombination des goldenen Schnittes und<br />
parabolischer Interpolation.<br />
Mit der Funktion fminsearch ist es möglich,<br />
ein lokales Minimum einer reellwertigen<br />
Funktion von n ≥ 1 Variablen zu berechnen.<br />
Die Syntax ist ähnlich wie die von fminbnd:<br />
x = fminsearch(fun,x0,options), außer<br />
dass das zweite Argument x0 ein Startvektor<br />
ist anstatt eines Intervalls. Die quadratische<br />
Funktion f (x 1 , x 2 ) = x 2 1 + x2 2 − x 1x 2 , (x 1 , x 2 ) ∈<br />
R 2 hat in x ∗ = (0, 0) eine Minimalstelle, denn<br />
es ist:<br />
1 >> f = @(x)x(1)^2+x(2)^2-x(1)*x(2)<br />
;<br />
2 >> x = fminsearch(f,ones(2,1))<br />
3 x =<br />
4 1.0e-004 *<br />
5 -0.4582<br />
6 -0.4717<br />
120 Copyright c○ G. Gramlich