TRiL studia II stopnia W3. Optymalizacja z Matlabem
Transkrypt
TRiL studia II stopnia W3. Optymalizacja z Matlabem
Modelowanie i optymalizacja systemów technicznych TRiL studia II stopnia W3. Optymalizacja z Matlabem Marek Markowski Katedra Inżynierii Procesów Rolniczych, UWM w Olsztynie Wszystkie rysunki i przykłady pochodzą ze strony domowej firmy The MathWorks, Inc.: www.mathworks.com Optymalizacja z Matlabem Przykład 1. Znaleźć minimum funkcji Rosenbrocka: przy ograniczeniu: Minimum w punkcie: (0.7864, 0.8177); fmin = 0.0456766 Optymalizacja z Matlabem Można zastosować graficzne, interaktywne środowisko: optimtool 3 Optymalizacja z Matlabem 1. Przed rozpoczęciem obliczeń należy zbudować funkcję celu i zapisać ją w m-pliku o nazwie np. rosenbrock: 2. Ponadto należy zbudować funkcję ograniczeń i zapisać ją w mpliku o nazwie np. unitdisk: W zmiennej c są zakodowane nierówności o zwrocie <, natomiast w zmiennej ceq są zakodowane równości. Przy braku ograniczeń równościowych zmienna ceq jest pusta ([]). Optymalizacja z Matlabem 3. Należy wybrać solver, w tym wypadku to fmincon - Constrained nonlinear minimization (minimalizacja funkcji nieliniowej z ograniczeniami) 4. Należy wybrać algorytm (algorythm). W tym wypadku Active set gdyż domyślny Trust region reflective nie nadaje się do zadania z ograniczeniami. 5. Należy wybrać funkcję celu (objective function) i wprowadzić @rosenbrock (znak @ oznacza, że „wciągany” plik jest funkcją). 6. Należy wybrać punkt początkowy (Start point) i wprowadzić np. [0 0]. 7. Należy wybrać funkcję zawierającą ograniczenia (Nonlinear constraint function) i wprowadzić @unitdisk. Optymalizacja z Matlabem Panel Problem Setup and Results powinien wyglądać wtedy następująco: Optymalizacja z Matlabem 8. W panelu Options pane (środek na dole) w menu Level of display należy zaznaczyć opcję iterative, co wymusza wyświetlanie wyników iteracji w oknie poleceń i wyników Matlaba: 9. W oknie Run solver and view results należy nacisnąć przycisk START. Optymalizacja z Matlabem 10. W oknie pod przyciskiem START pojawi się tekst informujący o wynikach obliczeń: 11. Rozwiązanie pojawi się w zakładce Final point: Przetwarzanie wsadowe Optymalizacja z Matlabem 9 Optymalizacja z Matlabem Parametry optymalizacji (np. warunki stopu, dokładności, itp.) ustawia się przy pomocy funkcji optimset wg schematu: options = optimset(parametr1, wartość1, parametr1, wartość1, …) Wywołanie funkcji optimset bez parametrów powoduje wyświetlenie listy parametrów wraz z ich aktualnymi wartościami. Optymalizacja z Matlabem Rozwiązanie przykładu w trybie wsadowym: 1. Należy utworzyć strukturę options aby uaktywnić opcję iterative dla wyświetlania wyników i algorytm active-set: 2. Należy uruchomić solver fmincon ze strukturą options, która optymalną wartość zmiennych x1 i x2 zwraca w wektorze x oraz optymalną wartość funkcji celu zwraca w zmiennej fval: Sześć pustych nawiasów odpowiada sześciu domyślnym ograniczeniom, które w tym przykładzie nie są wykorzystane. Optymalizacja z Matlabem 3. W oknie poleceń Matlaba zostanie wyświetlony tekst: Optymalizacja z Matlabem 4. Wcześniej w oknie poleceń Matlaba pojawi się tablica iteracji: Dziękuję za uwagę