Minimalizacja funkcji Poszukiwanie minimum funkcji Foma
Transkrypt
Minimalizacja funkcji Poszukiwanie minimum funkcji Foma
Minimalizacja funkcji Poszukiwanie minimum funkcji ■ Foma kwadratowa ■ Metody przybliżania minimum – minimalizacja ■ Minimalizacja w n wymiarach ■ Metody poszukiwania minimum Otaczanie minimum Podział obszaru zawierającego minimum metodą złotego podziału Metoda interpolacji kwadratowej ■ KADD – Minimalizacja funkcji 1 Pomiary zależne ■ Pomiary nie muszą być całkowicie niezależne. Np. mierząc 3 kąty w trójkącie musimy uzyskać sumę równą 180°. Szukamy estymatorów wielkości ηj: { } y j = j j , j=1, 2 , , n ■ E j =0 { } 2 2 E j = j Oprócz tego mamy też równania więzów: f k =0, k=1, 2 , , q ■ Najprostszy przypadek to równania liniowe: b10 b11 1 b12 2 b1 n n=0 ⋮ b q0 b q1 1 b q2 2 b qn n =0 ■ lub w notacji macierzowej B b0 =0 KADD – Minimalizacja funkcji 2 Metoda mnożników Lagrange'a ■ Metoda elementów wymaga wyboru zmiennych α. Metoda mnożników Lagrange'a podchodzi inaczej do problemu. Przepiszmy równanie więzów: B y−B b0 =0 ■ Wprowadzamy wektor c i otrzymujemy równanie: c=B yb0 c−B =0 ■ Wprowadzamy wektor mnożników Lagrange'a: T = 1 2 q ■ i z jego pomocą rozszerzamy funkcję M do L: L=M 2 T c−B =T G y 2 T c−B ■ Jest to funkcja Lagrange'a. Teraz rozwiązujemy problem minimalizacji M przy jednoczesnym spełnieniu równań więzów. KADD – Minimalizacja funkcji 3 Mnożniki Lagrange'a – rozwiązanie ■ ■ Pochodna zupełna funkcji L musi znikać: dL=2 T G y d 2 T B d =0 ⇔ T G y −T B=0 Przekształcając otrzymujemy rozwiązanie na μ: T −1 T −1 T −1 T G y =T B ⇒ =G−1 B ⇒ c−B G B =0 ⇒ = B G B c y y y ■ I możemy wyliczyć estymatory błędów pomiarowych T −1 T −1 =G−1 B B G B c y y ■ oraz najlepszy estymator dla wektora η: −1 T −1 T −1 = y− = y−G y B B G y B c ■ I ostatecznie piszemy macierze kowariancji: −1 T −1 G−1 = B G B ≡G B y −1 −1 T −1 G−1 =G −G B G B G y y B y KADD – Minimalizacja funkcji 4 Wartości ekstremalne Bardzo ważnym zagadnieniem jest poszukiwanie wartości ekstremalnych funkcji. Poszukiwanie maksimum można zawsze zamienić na poszukiwanie minimum przez przemnożenie funkcji przez -1. Stąd mówimy o minimalizacji funkcji. ■ Jeśli jest to możliwe, to zawsze używamy analitycznych metod minimalizacji. Jednak w większości przypadków nie są one dostępne. Dlatego przedstawimy teraz numeryczne metody minimalizacji. Należy pamiętać, że dają one zawsze wyniki z ograniczoną dokładnością. ■ KADD – Minimalizacja funkcji 5 Forma kwadratowa ■ Rozważmy prostą formę kwadratową: M x =c−bx1/ 2 A x 2 ■ która osiąga ekstremum w miejscach zerowych pierwszej pochodnej: dM ■ ■ dx =0 =−bx A x czyli gdy x = xm = b/A. Oznaczymy M(xm) = Mm i: M x −M m=1/ 2 A x−x m 2 Bardziej skomplikowane funkcje można zawsze przybliżyć przez taką formę w pobliżu minimum poprzez rozwinięcie w szereg Taylora w x0: M x =M x 0 −b x−x 0 1/ 2 A x−x 0 2 ■ skąd b=-M'(x0) i A=M''(x0) a minimum funkcji jest w x mp=x 0 b / A KADD – Minimalizacja funkcji 6 Forma kwadratowa – omówienie M(x) Podane wzory są słuszne tylko w pobliżu minimum gdzie usprawiedliwione jest obcięcie szeregu Taylora na dwóch wyrazach. ■ Na rysunku mamy funkcję xM xs xm xs xM x o minimum w xm i maksimach w xM oraz punktach przegięcia w xs. ■ Drugie pochodne funkcji dają: M''(x )>0 dla x<x 0 s oraz M''(x0)<0 dla x>xs. Stąd xmp jest bliżej xm niż x0 tylko dla x0<xs. Widzimy, że duże znaczenie ma wybór x0. 7 ■ KADD – Minimalizacja funkcji Procedury przybliżania Wykorzystanie wartości funkcji M oraz jej pierwszej i drugiej pochodnej w punkcie x0. Obliczamy x jako pierwsze przybliżenie xm. mp Zastępujemy x0 przez xmp i powtarzamy dopóki otrzymana w kolejnym kroku wielkość różni się od poprzedniej o więcej niż ε. ■ Wykorzystanie wartości M oraz jej pierwszej pochodnej w punkcie x0. Posuwamy się w kierunku wskazywanym przez znak pochodnej M'(x0)=-b. Przechodzimy do punktu x1 = x0 + b, lub x1 = x0 + cb, dobierając dowolną stałą c. ■ KADD – Minimalizacja funkcji 8 Przybliżanie c.d. Wykorzystanie wartości funkcji w kilku punktach Przez trzy punkty, przez które przechodzi funkcja można poprowadzić parabolę i jej wartość ekstremalną przyjąć jako kolejne przybliżenie. Jest to interpolacja kwadratowa. ■ Stopniowe zmniejszanie przedziału otaczającego minimum. Jeśli znamy z pewnością przedział, w którym leży minimum, to możemy ten przedział dzielić na coraz mniejsze podprzedziały i sprawdzać, w którym z nich ono leży. Ta metoda pozwala na wyznaczenie minimum z dowolną dokładnością. ■ KADD – Minimalizacja funkcji 9 Minimalizacja w n wymiarach ■ W przypadku n niezależnych zmiennych forma kwadratowa ma postać: M x=c−b x1/ 2 xT A x=c−∑k b k x k 1/ 2 ∑k , l x k Akl x l Gdzie A jest macierzą symetryczną ■ Pochodne względem xi są dane jako: ■ dM ■ dx i =−bi x1/ 2 ∑ A x ∑ A =−b ∑ A x l il l k ki i l il l lub w zwartej postaci: ∇ M =−b A x ■ i analogicznie do przypadku jednowymiarowego: x m= A−1 b ■ Gdy funkcja M nie jest prostą formą kwadratową, rozwijamy ją w szereg Taylora wokół x0 M x=M x0 −b x− x0 1/ 2 x− x0 T A x− x0 KADD – Minimalizacja funkcji 10 Procedury minimalizacji w n wymiarach ■ Wtedy gradient i macierz drugich pochodnych to: b=−∇ M x0 , tzn. bi =− ∂M ∂ xi ∣x= x 0 Aik =− ∂2 M ∂ xi ∂ xk ∣x= x 0 I tworzymy procedury minimalizacyjne: ■ Minimalizacja w kierunku gradientu Rozpoczynając od x poszukujemy minimum w 0 kierunku gradientu M(x0). Wynik: x1 bierzemy jako następne przybliżenie i poszukujemy dalej w kierunku M(x1). Jest to metoda największego spadku dla przypadku wielowymiarowego. ■ KADD – Minimalizacja funkcji 11 Procedury n-wymiarowe c.d. ■ Krok o zadanej długości w kierunku gradientu Oblicza się wartość wektora: x1 = x0 c b , b=−∇ M x0 przy zadanej dodatniej liczbie c. Jest to więc krok w kierunku maksymalnego spadku, ale bez wyznaczania minimum w tym kierunku. ■ Wykorzystanie gradientu i drugich pochodnych Korzystamy ze wzoru: xmp= x0 A−1 b Następnie rozwiązanie przyjmujemy jako następne przybliżenie, liczymy w tym punkcie gradienty i drugie pochodne i powtarzamy procedurę. KADD – Minimalizacja funkcji 12 Dokładność numeryczna ■ W kolejnych krokach przybliżenia porównujemy wartości funkcji w blisko położonych punktach: x−x m = ■ 2 [ M x −M x m ] A Obliczenia prowadzimy z dokładnością δ: x−x m≈ ■ A ≈ Musimy podać warunek, przy którym kończymy procedurę minimalizacji. Rozważmy wzór: ∣x −x ∣∣x ∣t k ■ 2 k−1 k ε jest ograniczone przez dokładność obliczeń. Do zapisu mantysy stosuje się n=24 bity, stąd: −n/ 2 2 −4 ≈2 ⋅10 KADD – Minimalizacja funkcji 13 Parabola przechodząca przez trzy punkty ■ Mamy zadane trzy punkty (xa, ya), (xb, yb), (xc, yc). Stosujemy następujące równanie paraboli: 2 y=c 0 c 1 x− x b c 2 x−x b ■ Stosując je w trzech danych punktach otrzymujemy c 0 =y b c 1 =C [ x c −x b 2 y a −y b − x a −x b 2 y c −y b ] c 2 =C [− x c −x b y a −y b − x a−x b y c −y b ] ■ C=1.0/[ x 1 −x b x c −x b 2 − x c − x b x a− x b 2 ] Dostajemy też położenie ekstremum paraboli: x mp=x b −c 1 /2 ⋅c 2 KADD – Minimalizacja funkcji 14 Parabola – ekstremum ■ Parabola ma minimum, gdy c2<0. Grupujemy punkty tak, aby xa<xb<xc i możemy napisać: sign c 2 =sign[ x c −x b y a−y b x b− x a y c −y b ] ■ Warunkiem wystarczającym istnienia minimum jest więc: y ay b , y c y b ■ Gdy minimalizowana funkcja jest określona na prostej w przestrzeni n-wymiarowej: f a=M x0 a d ■ gzie x0 to pewien punkt, a d – wektor w tej przestrzeni, to problem sprowadzamy do przypadku jednowymiarowego przez wzięcie: n=1, x0 =0, d=1 KADD – Minimalizacja funkcji 15 Otaczanie minimum Poszukujemy przedziału, w którym z pewnością znajduje się minimum funkcji. ■ Rozpoczynamy od dwóch punktów początkowych x1 i x2. Nazywamy je a i b tak, aby M(xa)>M(xb). ■ Z dowolną stałą p dobieramy: xc=xb+p(xb-xa) ■ Nasz cel jest osiągnięty, gdy y >y . Gdy to nie c b zachodzi, wyznaczamy xm z równania elipsy w trzech punktach i realizujemy algorytm: ■ b. x m ∈ x c , x end , gdzie x end =x b f x c − x b a. x m ∈ x b , x c a.1 y my c ⇒ bierzemy x b , x m , x c b.1 y my c ⇒ bierzemy x b , x c , x m a.2 y y ⇒ bierzemy x , x , x b.2 y m y c ⇒ dalej b m a a.3 y m y c ∧y my b ⇒ dalej b m c. x end x m ⇒ dalej KADD – Minimalizacja funkcji 16 Otaczanie minimum – kolejna iteracja ■ Krok 2 Krok 1 a a b m n m n−1 x n = x b c c ■ Krok 3 Krok 4 a a b m c c m b n−1 xa = xb b c W kolejnym kroku bierzemy: n−1 x n = x c m Procedurę przerywamy, gdy znajdujemy przedział, zawierający minimum, czyli gdy y a y b , y c y b KADD – Minimalizacja funkcji 17 Reguła złotego podziału ■ Jako wejście mamy 3 punkty spełniające warunki y ay b , y c y b ■ Wyliczamy położenie punktu x w większym z przedziałów (xa,xb), (xb,xc). Stosujemy regułę złotego podziału, tzn. λ λ l g= = L l ■ 5−1 = ≈0,618034 x l xa 2 Sprawdzamy warunek: xb xc L M x M x b ■ I mamy cztery możliwości wyznaczenia nowego przedziału zawierającego minimum: ∣x − x ∣∣x −x ∣⇒ M x M x ⇒ x , x , x , ∣x −x ∣∣x −x ∣⇒ M x M x ⇒ x , x , x , b a c b b a b w przeciwnym razie x , x b , x c b a c b b b c w przeciwnym razie x a , x b , x KADD – Minimalizacja funkcji 18 Przykład metody złotego podziału ■ Stosujemy kolejne podziały i zawężamy przedział, gdzie znajduje się minimum, aż do spełnienia warunku ∣x −x ∣ c KADD – Minimalizacja funkcji a 19 Minimalizacja interpolacją kwadratową ■ Procedura redukcji przedziału poprzez złoty podział jest dość wolno zbieżna. Można ją przyspieszyć poprzez jej połączenie z metodą interpolacji kwadratowej: Wychodzimy od granic przedziału, w których znajduje się minimum (xa,xc). Następnie dzielimy ten przedział regułą złotego przedziału otrzymując xb. Opierając się na tych trzech punktach przeprowadzamy interpolację kwadratową uzyskując minimum xm. Korzystając z identycznych warunków jak poprzednio zawężamy przedział. 20 KADD – Minimalizacja funkcji Interpolacja kwadratowa – przykład Kolejne przedziały są coraz mniejsze i zawierają w sobie minimum. ■ Porównanie szybkości zbieżności: Złoty podział: 21 kroków Interpolacja: 13 kroków ■ KADD – Minimalizacja funkcji 21 Metoda elementów ■ Rozwiązujemy q równań więzów aby wyeliminować z równań q z n wielkości η. Pozostałe n-q wielkości αi (i=1,2,...,n-q) nazywamy elementami. Mogą to być pierwotne pomiary n lub ich kombinacje liniowe: j = f j0 f j1 1 f j2 2 f j , n−q n−q , j=1, 2 , , n lub =F f 0 ■ ■ Rozwiązanie znajdujemy podobnie jak wcześniej: = F Gy F T −1 F T G y y− f 0 Macierz kowariancji wynosi wtedy: −1 T G−1 = F Gy F ■ zaś poprawione wyniki pomiarów i ich macierz kowariancji wynoszą: −1 T =F f 0 =F F G y F F T G y y− f 0 f 0 T G−1 = F G F KADD – Minimalizacja funkcji 22