13.01.2014 Aufrufe

Link - Hochschule Ulm

Link - Hochschule Ulm

Link - Hochschule Ulm

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!