Materiały pomocnicze do ćwiczeń laboratoryjnych T2
Transkrypt
Materiały pomocnicze do ćwiczeń laboratoryjnych T2
Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Metody optymalizacji Metody poszukiwania ekstremum funkcji jednej zmiennej Materiały pomocnicze do ćwiczeń laboratoryjnych T2 Opracowanie: Piotr Hirsch, mgr inż. Kazimierz Duzinkiewicz, dr hab. inż. Gdańsk, 04.2016 1. Wstęp. Algorytmy poszukiwania minimum funkcji jednej zmiennej podzielić możemy na metody gradientowe i bezgradientowe. Do grupy metod gradientowych zaliczamy: poszukiwanie miejsc zerowych pochodnej (metody bisekcji, siecznych), algorytmy drugiego rzędu (algorytm Newtona-Raphsona), interpolacje funkcjami wielomianowymi. W grupie metod bezgradientowych wyróżniamy, między innymi, algorytmy: dychotomii (dwudzielny), Fibonacciego, złotego podziału i interpolacji kwadratowej. W ćwiczeniu zapoznamy się z metodami: bisekcji, Newtona-Raphsona i złotego podziału. Problem poszukiwania minimum funkcji jednej zmiennej zapisujemy jako: min 𝑓(𝑥) 𝑥 gdzie f(x) to funkcja kryterialna (funkcja celu), a 𝑥 ∈ 𝑅 to argument funkcji (zmienna decyzyjna). Przy założeniu jednomodalności (unimodalności) f(x), czyli posiadania przez nią dokładnie jednego minimum 𝑥 ∗ w znanym przedziale <a,b>. f(x) x* x Rys. 1. Funkcja unimodalna Na rysunku 1. przedstawiony został wykres funkcji unimodalnej, która dla 𝑥 < 𝑥 ∗ jest ściśle malejąca, a dla 𝑥 > 𝑥 ∗ jest ściśle rosnąca. Zauważyć należy, że funkcja unimodalna nie musi być gładka ani ciągła. 2. Metody gradientowe poszukiwania minimum funkcji jednej zmiennej W przypadku rozważania metod gradientowych, założenie o unimodalności musimy rozszerzyć o założenie o różniczkowalności, wówczas zadanie znalezienia minimum sprowadza się do zadania znalezienia punktu, w którym zeruje się pochodna 𝑓 ′ (𝑥) = 𝑔(𝑥) = 0. Metoda bisekcji Metoda bisekcji jest jednym z najprostszych sposobów na znalezienie pierwiastka nieliniowej funkcji. Aby ją zastosować, należy wybrać przedział początkowy, w którym znajduje się zero funkcji. Metoda bisekcji polega na systematycznym zmniejszaniu przedziału w którym znajduje się pierwiastek, poprzez podzielenie tego przedziału na dwie równe części i sprawdzenie, w której połowie znajduje się zero. Test ten opiera się o twierdzenie o wartości średniej: Tw. o wartości średniej – niech f(x) będzie funkcją ciągłą, zdefiniowaną na przedziale <a,b> , jeżeli wartości funkcji f(a), f(b) na krańcach przedziału mają różne znaki, to funkcja posiada co najmniej jedno zero na przedziale <a,b>. f(b) f(c) a c b f(a) Rys. 2. Ilustracja do algorytmu bisekcji Algorytm bisekcji: Założenia: f(x) jest ciągła na [a,b]; 𝑓(𝑎)𝑓(𝑏) < 0 Początek pętli: 1. Wyznacz środek przedziału: 𝑐 = 𝑎+𝑏 2 2. Oblicz f(c) 3. Jeżeli 𝑓(𝑎)𝑓(𝑐) < 0 to nowy przedział poszukiwań to [a,c] Jeżeli 𝑓(𝑎)𝑓(𝑐) > 0 to nowy przedział poszukiwań to [c,b] 4. Jeżeli 𝑏−𝑎 2 < 𝜀 to zakończ algorytm, jeżeli nie to przejdź do kroku 1. Koniec pętli Metoda Newtona-Raphsona Metoda Newtona-Raphsona wykorzystuje informacje o pochodnej funkcji, w celu lepszego przybliżenia pierwiastka. Oznacza to, że przy zadaniu minimalizacji funkcji jednej zmiennej posługujemy się faktycznie drugą pochodną funkcji kryterialnej. Metoda korzysta z interpretacji geometrycznej pochodnej, to jest 𝑓 ′ (𝑥𝑖 ) = 𝑡𝑔𝛼 = 𝑓(𝑥𝑖 ) , 𝑥𝑖 −𝑥𝑖+1 gdzie α jest kątem nachylenia osi X do stycznej w punkcie xi. f(xi) x* α xi+1 xi Rys. 3. Ilustracja do algorytmu Newtona-Raphsona Algorytm Newtona-Raphsona: Założenia: f(x) jest ciągła i ma pierwszą pochodną; początkowe rozwiązanie takie, że 𝑓 ′ (𝑥𝑜 ) ≠ 0 Początek pętli: 1. Wyznacz wartość funkcji w punkcie 𝒙𝒊 2. Wyznacz wartość pochodnej funkcji w punkcie 𝒙𝒊 𝒇(𝒙 ) 3. Oblicz kolejne przybliżenie rozwiązania 𝒙𝒊+1 = 𝒙𝒊 − 𝒇′ (𝒙𝒊 ) 𝒊 4. Jeżeli |𝒇(𝒙𝒊+𝟏 )| < 𝜀 to zakończ algorytm, jeżeli nie to przejdź do kroku 1. Koniec pętli 3. Metody bezgradientowe poszukiwania minimum funkcji jednej zmiennej Metody z tej kategorii bazują jedynie na obliczaniu wartości funkcji kryterialnej, nie wymaga się żeby, poza unimodalnością, funkcja była ciągła, różniczkowalna, a nawet podana w formie analitycznej. Metoda złotego podziału Metoda złotego podziału polega na systematycznym zmniejszaniu przedziału nieokreśloności, to jest przedziału, o którym możemy powiedzieć, że znajduje się w nim minimum funkcji unimodalnej. Metoda ta cechuje się tym, że w każdej iteracji stosunek długości dwóch kolejnych przedziałów nieokreśloności jest taki sam i wynosi 𝑘 = √5−1 . 2 Podstawową zaletą metody złotego podziału jest to, że w każdym kroku (za wyjątkiem pierwszego) zachodzi konieczność wyznaczenia wartości funkcji tylko w jednym punkcie. f(x) a0 b0 α0 a1 a2 x β0 b1 α1 β1 b2 Rys. 4. Ilustracja do algorytmu złotego podziału, kolorem czerwonym zaznaczono odrzucone przedziały Algorytm złotego podziału: Początek pętli: 1. Wyznacz położenie punktów według stosunku złotego podziału: 𝛼𝑖 = 𝑏𝑖 − 𝑘 ∙ (𝑏𝑖 − 𝑎𝑖 ) 𝛽𝑖 = 𝑎𝑖 + 𝑘 ∙ (𝑏𝑖 − 𝑎𝑖 ) 2. Jeżeli 𝑓(𝛼𝑖 ) ≤ 𝑓(𝛽𝑖 ) to odrzucamy przedział (𝛽𝑖 , 𝑏𝑖 ], przyjmując: 𝑎𝑖+1 = 𝑎𝑖 𝑏𝑖+1 = 𝛽𝑖 3. Jeżeli 𝑓(𝛼𝑖 ) > 𝑓(𝛽𝑖 ) to odrzucamy przedział [𝑎𝑖 , 𝛼𝑖 ), przyjmując: 𝑎𝑖+1 = 𝛼𝑖 𝑏𝑖+1 = 𝑏𝑖 4. Jeżeli (𝑏𝑖+1 − 𝑎𝑖+1 ) < 𝜀 to zakończ algorytm, jeżeli nie to przejdź do kroku 1. Koniec pętli