matlab optimization.pdf
(
345 KB
)
Pobierz
1
Optimization toolbox
Optymization toolbox
Wstęp
1. Wykonanie optymalizacji
2. Przykłady zastosowań niektórych funkcji
2.1. Przykład minimalizacji funkcji bez ograniczeń
2.2. Przykład minimalizacji funkcji z nieliniowymi i nierównościowymi ograniczeniami
3. Opis niektórych funkcji
3.1. Funkcja
fminbnd
3.2. Funkcja
fmincon
3.3. Funkcja
fminunc
3.4. Funkcja
fminsearch
3.5. Funkcja
fsolve
Słownik
Bibliografia
1
Optimization toolbox
Wstęp
Optimization toolbox jest dodatkiem do Matlaba, działającym w postaci M-plików
funkcyjnych, które mają zaimplementowane różnego rodzaju algorytmy optymalizacyjne.
Oczywiście mamy możliwość edycji tych funkcji przez polecenie Matlaba, które ma postać
type nazwa_funkcji
.
Proces optymalizacji dotyczy minimalizacji i maksymalizacji funkcji i generalnie jest
wykonywany na funkcjach nieliniowych. Zawarte są tutaj również algorytmy zajmujące
się problemami równań nieliniowych oraz najmniejszych kwadratów. Funkcje
rozwiązujące określonej klasy problemy zaimplementowane w pakiecie zostały
zestawione poniżej:
—
fminbnd
— funkcja dotycząca problemu minimalizacji, rozwiązująca problemy typu
minimalizacji skalarnej,
—
fminuc
,
fminsearch
— funkcja dotycząca problemu minimalizacji, rozwiązująca
problemy typu minimalizacji bez ograniczeń,
—
linprog
— funkcja dotycząca problemu minimalizacji, a dokładniej programowania
liniowego,
—
quadprog
— funkcja dotycząca problemu minimalizacji, a dokładniej programowania
kwadratowego,
—
fmincon
— minimalizacja funkcji z ograniczeniami,
—
fgoalattain
— minimalizacja typu osiąganie celu,
—
fminimax
— minimalizacja typu minimax,
—
fseminf
— minimalizacja funkcji częściowo nieskończonych,
—
fzero
— funkcja rozwiązująca równanie nieliniowe z jedna zmienną,
—
fsolve
— funkcja rozwiązująca równanie nieliniowe wielu zmiennych.
Funkcje rozwiązujące problemy najmniejszych kwadratów to:
—
\ (slash)
— liniowe najmniejsze kwadraty,
—
lsqnonneg
— nieujemne liniowe najmniejsze kwadraty,
—
lsglin
— ograniczone liniowe najmniejsze kwadraty,
—
lsqnonlin
— nieliniowe najmniejsze kwadraty.
2
Optimization toolbox
1. Wykonanie optymalizacji
Większość funkcji optymalizacyjnych wymaga definicji M-plików zawierających
zaimplementowaną wewnątrz funkcję celu. Ewentualnie możemy użyć funkcji celu
określonej za pomocą wyrażeń Matlaba bezpośrednio w wywołaniu, przez polecenie
inline
. Jeżeli chodzi o maksymalizację, to możemy jej dokonać, wpisując przed funkcję
celu znak „-„ (
- f
, gdzie
f
jest funkcją optymalizowaną). Gradienty obliczane są za
pomocą adaptacyjnej metody różnic skończonych, niemniej mogą być one zawarte
w funkcji minimalizowanej. Opcje procesu optymalizacji podane do programu
optymalizującego zmieniają parametry optymalizacji. Dostęp do nich uzyskujemy przez
strukturę
opcje,
np.:
x
=
funkcja
(
f, x
0
, opcje
).
Parametry dla funkcji mogą być zawarte bezpośrednio w niej samej.
Określenie dla algorytmów tzw. średniej skali nie jest standardowym określeniem
i istnieje tylko dla rozróżnienia tego rodzaju algorytmów od algorytmów tzw. trudnej
skali.
Algorytmy średniej skali, jeżeli chodzi o minimalizację bez ograniczeń, to głównie
algorytmy implementujące metody pełzającego sympleksu, BFGS (Broyden, Fletcher,
Goldfarb oraz Shanno) oraz metodę quasi-Newtona. Dla minimalizacji z ograniczeniami
stosowane są takie metody jak minimax, osiągania celu, częściowo nieskończonej
optymalizacji oraz warianty SQP (sekwencyjnego programowania kwadratowego). Dla
problemów nieliniowych najmniejszych kwadratów stosowane są metody Gaussa-
Newtona oraz Levenberga-Marquardta. W programowaniu liniowym używane są
bezpieczne metody interpolacji i ekstrapolacji trzeciego i drugiego stopnia.
Wszystkie
algorytmy trudnej
skali
— za wyjątkiem programowania liniowego
— używają metod tzw. obszaru prawdy. Problemy z ograniczeniami są obliczone za
pomocą metod Newtona. Problemy równań z ograniczeniami są rozwiązywane za pomocą
wstępnie uwarunkowanej iteracji sprzężonych gradientów. Dla obliczenia aktualnej
długości kroku w rozwiązaniach układów liniowych możemy użyć algorytmów iteracyjnych
lub kierunkowych. Metoda programowania liniowego jest wariantem algorytmu Mehrotra.
3
Optimization toolbox
Parametry funkcji
Każdy z algorytmów optymalizacyjnych posiada opcje, za pomocą których możemy
określać ich parametry. Jeżeli pozostaną one niezdefiniowane lub struktura ta pozostanie
pusta, wówczas zostaną przyjęte ich domyślne wartości. Dostęp do parametrów
domyślnych funkcji uzyskujemy przez funkcję
optimset
, która z kolei posiada dwa
argumenty, jakimi są para paramet–wartość, przy czym parametr określany jest za
pomocą łańcuch znaków. Funkcja
optimset
definiuje parametry domyślne, używane
przez funkcje wbudowane w toolbox, jednak nie zawsze chcemy używać wszystkich tych
parametrów. Aby określić, jakich parametrów używa konkretna funkcja optymalizująca
posługujemy się następującym poleceniem:
Optimset (‘nazwa_funkcji’)
Mamy również możliwość wyświetlania wartości wyjściowych funkcji za pomocą
polecenia:
opcje = optimset(‘Display’, ‘argument’),
gdzie dla wartości
argument
równej
‘iter’ z
wracane są wartości wyjściowe funkcji przy
każdej iteracji, dla wartości równej
‘off’
nie zwracane są żadne wartości wyjściowe, dla
wartości
argument
równej
‘final’
zwracane są wartości wyjściowe jedynie przy
zakończeniu działania algorytmu, a przy wartości parametru argument równej
‘notify’
zwracana jest wartość wyjściowa w przypadku wystąpienia trudności ze zbieżnością
funkcji. W przypadku funkcji należących zarówno do problemów optymalizacyjnych
średniej i trudnej skali domyślnie stosowane są algorytmy rozwiązujące problemy trudnej
skali. Chcąc zastosować algorytm rozwiązujący problemy średniej skali, w przypadku
takiej funkcji musimy posłużyć się poleceniem:
opcje = optimset (‘LargeScale’, ‘off’);
W jednym wywołaniu funkcji
optimset
możemy określić jednocześnie wiele wartości dla
parametrów, np.:
opcje = optimst(‘Display’, ’off’, ‘TolX’, ‘1e-6);
W tym przypadku wyniki nie zostaną wyświetlone, dokładność obliczeń zostanie
określona jako liczba 1e–6.
4
Optimization toolbox
Chcąc odświeżyć istniejącą już strukturę opcji, używamy argumentu
opcje
jako
pierwszego w wywołaniu funkcji
optimset
,
co zostało pokazane poniżej:
opcje = (opcje, ‘Display’, ’off’, ‘TolX’, ‘1e-6);
Tabela 1.
Zestaw parametrów struktury opcji dla funkcji optymalizacji
Parametr Opis
DerivativeCheck
Porównuje dostarczone przez użytkownika analityczne pochodne
(gradienty lub Jacobiany) z pochodnymi obliczonymi za pomocą
różnic skończonych. Stosowany w odniesieniu do takich funkcji, jak:
fgoalattain
,
fmincon
,
fminimax
,
fminunc
,
fseminf
,
fsolve
,
lsqcurvefit
,
lsqnonlin
. Stosowane dla problemów średnio
skalowanych.
Diagnostic
Podaje wydruk informacji diagnostycznych dla minimalizowanej
funkcji oraz dla rozwiązywanego równania.
DiffMaxChange
Maksymalna zmiana w zmiennych dla pochodnych obliczonych za
pomocą różnic skończonych. Stosowane dla funkcji
fgoalattain
,
fmincon
,
fminimax
,
fminunc
,
fseminf
,
fsolve
,
lsqcurvefit
,
lsqnonlin
w problemach średniej skali.
DiffMinChange
Minimalna zmiana w zmiennych dla pochodnych obliczonych za
pomocą różnic skończonych. Stosowany w problemach średniej skali
dla takich funkcji, jak:
fgoalattain
,
fmincon
,
fminimax
,
fminunc
,
fseminf
,
fsolve
,
lsqcurvefit
,
lsqnonlin
.
Display
Określa sposób wyświetlania wyjściowych wartości algorytmu
(
iter
— w każdej iteracji,
off
— nigdy,
finite
— po zakończeniu
wykonywania algorytmu,
notify
— w przypadku niedążenia
algorytmu do zbieżności.
GoalsExactAchieve
Dokładna liczba osiąganych wartości celu. Stosowane dla funkcji
fgoalattain
.
GradConstr
Określa gradienty dla nieliniowych ograniczeń, podane przez
użytkownika. Stosowane w funkcjach
fgoalattain
,
fmincon
,
fminimax
.
GradObj
Określa gradient lub gradienty dla funkcji celu podanych przez
użytkownika. Użyteczne w funkcjach
fgoalattain
,
fmincon
,
fminimax
,
fminunc
,
fseminf
.
Hessian
Dla wartości
on
funkcja korzysta ze zdefiniowanych przez
użytkownika wartości macierzy Hessian. Gdy parametr posiada
wartość
off
wartości hessianów obliczone są za pomocą różnic
skończonych. Stosowane w funkcjach
fmincon
i
fminunc
.
5
Plik z chomika:
uleniaa
Inne pliki z tego folderu:
Awionika przyrządy i systepy pokładowe - Polak Rypulak.pdf
(121960 KB)
Jerzy.Brz_zka._.__262_WICZENIA.Z.AUTOMATYKI.W.MATLABIE.I.SIMULINKU.PDF
(36474 KB)
Matlab.Simulink_Mrozek.pdf
(21145 KB)
Engel_Giergiel_-_Kinematyka.pdf
(23066 KB)
Engel_Giergiel_-_Statyka.pdf
(19411 KB)
Inne foldery tego chomika:
Dokumenty
Galeria
Prywatne
Zgłoś jeśli
naruszono regulamin