Optymalizacja ciągła

Podobne dokumenty
Iteracyjne rozwiązywanie równań

Metody numeryczne I Równania nieliniowe

VIII. Zastosowanie rachunku różniczkowego do badania funkcji. 1. Twierdzenia o wartości średniej. Monotoniczność funkcji.

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

Optymalizacja ciągła

Optymalizacja ciągła

METODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. prof. dr hab.inż. Katarzyna Zakrzewska

1 Równania nieliniowe

METODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. Rozwiązywanie równań nieliniowych z jedną niewiadomą

Wprowadzenie Metoda bisekcji Metoda regula falsi Metoda siecznych Metoda stycznych RÓWNANIA NIELINIOWE

RÓWNANIA NIELINIOWE Maciej Patan

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Optymalizacja ciągła

Laboratorium 5 Przybliżone metody rozwiązywania równań nieliniowych

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

Wstęp do metod numerycznych Rozwiazywanie równań algebraicznych. P. F. Góra

Metody numeryczne. materiały do wykładu dla studentów

IX. Rachunek różniczkowy funkcji wielu zmiennych. 1. Funkcja dwóch i trzech zmiennych - pojęcia podstawowe. - funkcja dwóch zmiennych,

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ

Pochodne funkcji wraz z zastosowaniami - teoria

Metody numeryczne. Równania nieliniowe. Janusz Szwabiński.

1 Pochodne wyższych rzędów

Z52: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania, zagadnienie brzegowe.

Metody Numeryczne. Wojciech Szewczuk

2. ZASTOSOWANIA POCHODNYCH. (a) f(x) = ln 3 x ln x, (b) f(x) = e2x x 2 2.

Metody rozwiązywania równań nieliniowych

VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa.

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH

Wybrane metody przybliżonego. wyznaczania rozwiązań (pierwiastków) równań nieliniowych

KADD Minimalizacja funkcji

Rozwiązywanie równań nieliniowych

Rozwiązywanie równań nieliniowych i ich układów. Wyznaczanie zer wielomianów.

Metody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne

Metody numeryczne Wykład 7

Wykład 6, pochodne funkcji. Siedlce

RACHUNEK RÓŻNICZKOWY FUNKCJI JEDNEJ ZMIENNEJ. Wykorzystano: M A T E M A T Y K A Wykład dla studentów Część 1 Krzysztof KOŁOWROCKI

Notatki z Analizy Matematycznej 3. Jacek M. Jędrzejewski

1 Pochodne wyższych rzędów

Ekstrema globalne funkcji

22 Pochodna funkcji definicja

Zagadnienia - równania nieliniowe

Pochodna funkcji. Pochodna funkcji w punkcie. Różniczka funkcji i obliczenia przybliżone. Zastosowania pochodnych. Badanie funkcji.

Elementy metod numerycznych

Wykład 13. Informatyka Stosowana. 14 stycznia 2019 Magdalena Alama-Bućko. Informatyka Stosowana Wykład , M.A-B 1 / 34

4b. Badanie przebiegu zmienności funkcji - monotoniczność i wypukłość

Wyznaczanie miejsc zerowych funkcji

Metody Obliczeniowe w Nauce i Technice

Wzór Maclaurina. Jeśli we wzorze Taylora przyjmiemy x 0 = 0 oraz h = x, to otrzymujemy tzw. wzór Maclaurina: f (x) = x k + f (n) (θx) x n.

Funkcje dwóch zmiennych

Pochodne wyższych rzędów definicja i przykłady

Matematyka i Statystyka w Finansach. Rachunek Różniczkowy

Wykład 4 Przebieg zmienności funkcji. Badanie dziedziny oraz wyznaczanie granic funkcji poznaliśmy na poprzednich wykładach.

Metody numeryczne. Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski

Wykład 11 i 12. Informatyka Stosowana. 9 stycznia Informatyka Stosowana Wykład 11 i 12 9 stycznia / 39

Rachunek Różniczkowy

Ciągłość funkcji jednej zmiennej rzeczywistej. Autorzy: Anna Barbaszewska-Wiśniowska

Całkowanie numeryczne przy użyciu kwadratur

Fakt 3.(zastosowanie różniczki do obliczeń przybliżonych) Przy czym błąd, jaki popełniamy zastępując przyrost funkcji

Zadania z analizy matematycznej - sem. I Pochodne funkcji, przebieg zmienności funkcji

Kubatury Gaussa (całka podwójna po trójkącie)

Wykłady z matematyki inżynierskiej EKSTREMA FUNKCJI. JJ, IMiF UTP

INFORMATYKA ELEMENTY METOD NUMERYCZNYCH.

Dystrybucje, wiadomości wstępne (I)

Pochodna funkcji. Zastosowania

Prawdopodobieństwo i statystyka

Zastosowania pochodnych

Rzut oka na współczesną matematykę spotkanie 3: jak liczy kalkulator i o źródłach chaosu

Rozwiązania prac domowych - Kurs Pochodnej. x 2 4. (x 2 4) 2. + kπ, gdzie k Z

II. RÓŻNICZKOWANIE I CAŁKOWANIE NUMERYCZNE Janusz Adamowski

Metody numeryczne. dr Artur Woike. Ćwiczenia nr 2. Rozwiązywanie równań nieliniowych metody połowienia, regula falsi i siecznych.

9. BADANIE PRZEBIEGU ZMIENNOŚCI FUNKCJI

Notatki z Analizy Matematycznej 2. Jacek M. Jędrzejewski

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Wstęp do metod numerycznych 9. Minimalizacja: funkcje jednej zmiennej. P. F. Góra

Matematyka stosowana i metody numeryczne

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Obliczanie długości łuku krzywych. Autorzy: Witold Majdak

Twierdzenia Rolle'a i Lagrange'a

5. Badanie przebiegu zmienności funkcji - monotoniczność i wypukłość

Wstęp do metod numerycznych 11. Minimalizacja: funkcje jednej zmiennej. P. F. Góra

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie:

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

Aproksymacja funkcji a regresja symboliczna

Układy równań nieliniowych (wielowymiarowa metoda Newtona-Raphsona) f(x) = 0, gdzie. dla n=2 np.

Metody numeryczne. Sformułowanie zagadnienia interpolacji

RÓŻNICZKOWANIE FUNKCJI WIELU ZMIENNYCH: rachunek pochodnych dla funkcji wektorowych. Pochodne cząstkowe funkcji rzeczywistej wielu zmiennych

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Wstęp do metod numerycznych 9. Rozwiazywanie równań algebraicznych. P. F. Góra

Materiały do ćwiczeń z matematyki - przebieg zmienności funkcji

METODY NUMERYCZNE. Wykład 3. Plan. Aproksymacja Interpolacja wielomianowa Przykłady. dr hab.inż. Katarzyna Zakrzewska, prof.agh. Met.Numer.

I. Pochodna i różniczka funkcji jednej zmiennej. 1. Definicja pochodnej funkcji i jej interpretacja fizyczna. Istnienie pochodnej funkcji.

Funkcja jednej zmiennej - przykładowe rozwiązania 1. Badając przebieg zmienności funkcji postępujemy według poniższego schematu:

14a. Analiza zmiennych dyskretnych: ciągi liczbowe

KADD Metoda najmniejszych kwadratów funkcje nieliniowe

Analiza matematyczna - pochodna funkcji 5.8 POCHODNE WYŻSZYCH RZĘDÓW

Pochodna funkcji odwrotnej

Metody Numeryczne Optymalizacja. Wojciech Szewczuk

Pochodna funkcji jednej zmiennej

Transkrypt:

Optymalizacja ciągła 1. Optymalizacja funkcji jednej zmiennej Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 28.02.2019 1 / 54

Plan wykładu Optymalizacja funkcji jednej zmiennej (x R): min p.o. f(x) x X R 1. Rozwiązanie analityczne 2. Przeszukiwanie jednostajne 3. Optymalizacja funkcji jednomodalnych: przeszukiwanie dychotomiczna i metoda złotego podziału 4. Optymalizacja funkcji różniczkowalnych: metoda bisekcji 5. Optymalizacja funkcji różniczkowalnych: metoda Newtona 2 / 54

Rozwiązanie analityczne 3 / 54

Rozwiązanie analityczne W pewnych przypadkach można znaleźć minimum funkcji bez odwoływania się do metod numerycznych Założenia: Funkcja f zdefiniowana jest na dziedzinie X = [x min, x max ] Funkcja f jest różniczkowalna na X 4 / 54

Warunek konieczny na istnienie minimum Jeśli różniczkowalna funkcja f osiąga minimum lokalne w punkcie x 0 wewnątrz dziedziny, to f (x 0 ) = 0. 5 / 54

Warunek konieczny na istnienie minimum Jeśli różniczkowalna funkcja f osiąga minimum lokalne w punkcie x 0 wewnątrz dziedziny, to f (x 0 ) = 0. Wniosek: Algorytm znajdywania minimum funkcji f na X = [x min, x max ]: 1. Wyznacz punkty zerowanie się pochodnej X 0 = {x X : f (x) = 0} 2. Sprawdź wartość funkcji dla wszystkich punktów z X 0 oraz na krańcach dziedziny {x min, x max } i wybierz ten o najmniejszej wartości funkcji. 5 / 54

Przykład f(x) min f(x) = x 3 3x + 9 p.o. x [ 3, 2] 3 2 x 6 / 54

Przykład f(x) min f(x) = x 3 3x + 9 p.o. x [ 3, 2] 3 2 x 1. Obliczamy pochodną: f (x) = 3x 2 3 6 / 54

Przykład f(x) min f(x) = x 3 3x + 9 p.o. x [ 3, 2] 3 1 1 2 x 1. Obliczamy pochodną: f (x) = 3x 2 3 2. Wyznaczamy punkty zerowania się pochodnej: f (x) = 0 3x 2 3 = 0 x = 1 lub x = 1 6 / 54

Przykład f(x) min f(x) = x 3 3x + 9 p.o. x [ 3, 2] 3 1 1 2 x 1. Obliczamy pochodną: f (x) = 3x 2 3 2. Wyznaczamy punkty zerowania się pochodnej: f (x) = 0 3x 2 3 = 0 x = 1 lub x = 1 3. Obliczamy wartość funkcji w kandydatach na minimum globalne: f( 3) = 9, f( 1) = 11, f(1) = 7, f(2) = 11 6 / 54

Przykład f(x) min f(x) = x 3 3x + 9 p.o. x [ 3, 2] 3 1 1 2 x 1. Obliczamy pochodną: f (x) = 3x 2 3 2. Wyznaczamy punkty zerowania się pochodnej: f (x) = 0 3x 2 3 = 0 x = 1 lub x = 1 3. Obliczamy wartość funkcji w kandydatach na minimum globalne: f( 3) = 9, f( 1) = 11, f(1) = 7, f(2) = 11 4. Wniosek: minimum globalne w x = 3 6 / 54

min f(x) = ln2 (x) x p.o. x [0.4, 12] Przykład f(x) 0.4 x 12 7 / 54

min f(x) = ln2 (x) x p.o. x [0.4, 12] Przykład f(x) 0.4 x 12 1. Obliczamy pochodną: f (x) = 2 ln(x) ln2 (x) x 2 = ln(x) (2 ln(x)) x 2 7 / 54

Przykład min f(x) = ln2 (x) x p.o. x [0.4, 12] f(x) x 0.41 e 2 12 1. Obliczamy pochodną: f (x) = 2 ln(x) ln2 (x) ln(x) (2 ln(x)) x 2 = x 2 2. Wyznaczamy punkty zerowania się pochodnej: f (x) = 0 ln(x) (2 ln(x)) = 0 x = 1 lub x = e 2 7 / 54

Przykład min f(x) = ln2 (x) x p.o. x [0.4, 12] f(x) x 0.41 e 2 12 1. Obliczamy pochodną: f (x) = 2 ln(x) ln2 (x) ln(x) (2 ln(x)) x 2 = x 2 2. Wyznaczamy punkty zerowania się pochodnej: f (x) = 0 ln(x) (2 ln(x)) = 0 x = 1 lub x = e 2 3. Obliczamy wartość funkcji w kandydatach na minimum globalne: f(1) = 0, f(e 2 ) = 0.541, f(0.4) = 2.1, f(12) = 0.515 7 / 54

Przykład min f(x) = ln2 (x) x p.o. x [0.4, 12] f(x) x 0.41 e 2 12 1. Obliczamy pochodną: f (x) = 2 ln(x) ln2 (x) ln(x) (2 ln(x)) x 2 = x 2 2. Wyznaczamy punkty zerowania się pochodnej: f (x) = 0 ln(x) (2 ln(x)) = 0 x = 1 lub x = e 2 3. Obliczamy wartość funkcji w kandydatach na minimum globalne: f(1) = 0, f(e 2 ) = 0.541, f(0.4) = 2.1, f(12) = 0.515 4. Wniosek: minimum globalne w x = 1 7 / 54

Czy to wystarcza? 8 / 54

Czy to wystarcza? Oczywiście nie wystarcza: Rzadko kiedy potrafimy analitycznie wyznaczyć punkty zerowania się pochodnej, tzn. rozwiązać równanie f (x) = 0 Funkcja może nie być różniczkowalna 8 / 54

Czy to wystarcza? Oczywiście nie wystarcza: Rzadko kiedy potrafimy analitycznie wyznaczyć punkty zerowania się pochodnej, tzn. rozwiązać równanie f (x) = 0 Funkcja może nie być różniczkowalna Musimy odwołać się do numerycznych metod optymalizacji 8 / 54

Przeszukiwanie jednostajne 9 / 54

Opis problemu min p.o. f(x) x min x x max Nie zakładamy nic o różniczkowalności Kształt funkcji zupełnie nieznany 10 / 54

Metoda przeszukiwania jednostajnego Podziel dziedzinę funkcji X = [x min, x max ] na bardzo wiele krótkich odcinków i sprawdź wartość funkcji w każdym z odcinków (np. w punkcie środkowym odcinka) Zwracamy punkt x o najmniejszej wartości funkcji 11 / 54

Przeszukiwanie jednostajne przykład 30 20 f(x) 10 0 4 2 0 2 4 x 12 / 54

Przeszukiwanie jednostajne przykład 30 20 f(x) 10 0 4 2 0 2 4 x 12 / 54

Przeszukiwanie jednostajne przykład 30 20 f(x) 10 0 4 2 0 2 4 x 12 / 54

Przeszukiwanie jednostajne przykład 30 20 f(x) 10 0 4 2 0 x 2 4 x 12 / 54

Czy przeszukiwanie jednostajne gwarantuje znalezienie minimum? 30 20 f(x) 10 0 4 2 0 2 4 x 13 / 54

Czy przeszukiwanie jednostajne gwarantuje znalezienie minimum? 30 20 f(x) 10 0 4 2 0 2 4 x 13 / 54

Czy przeszukiwanie jednostajne gwarantuje znalezienie minimum? 30 20 f(x) 10 0 4 2 0 2 4 x 13 / 54

Czy przeszukiwanie jednostajne gwarantuje znalezienie minimum? 30 20 f(x) 10 0 4 2 0 x 2 4 x 13 / 54

Przeszukiwanie jednostajne Metoda o złożoności liniowej z liczbą odcinków (bardzo wolno!) Nie gwarantuje znalezienia minimum globalnego, nawet w przybliżeniu (choć dla większości funkcji w praktyce działa dobrze) Jakość rozwiązania silnie zależy od regularności funkcji Alternatywa: przeszukiwanie losowe (losuj punkty z dziedziny i sprawdzaj wartość funkcji), posiada podobne wady Bez dodatkowych założeń niewiele więcej można zrobić 14 / 54

Optymalizacja funkcji jednomodalnych (bez informacji o pochodnej) 15 / 54

Funkcja jednomodalna Funkcja jednomodalna to funkcja posiadająca tylko jedno (globalne) minimum (być może na granicy dziedziny) f(x) f(x) f(x) x x x 16 / 54

Własność funkcji jednomodalnej Niech funkcja f(x) posiada jedno (ścisłe) minimum na przedziale [a, b]. Wybierzmy dowolne x l, x p [a, b] takie, że x l < x p. Jeśli f(x l ) f(x p ) to minimum na pewno nie ma w [a, x l ) Jeśli f(x l ) f(x p ) to minimum na pewno nie ma w (x p, b] 17 / 54

Własność funkcji jednomodalnej Niech funkcja f(x) posiada jedno (ścisłe) minimum na przedziale [a, b]. Wybierzmy dowolne x l, x p [a, b] takie, że x l < x p. Jeśli f(x l ) f(x p ) to minimum na pewno nie ma w [a, x l ) Jeśli f(x l ) f(x p ) to minimum na pewno nie ma w (x p, b] Dowód: obrazkowy, nie wprost f(x p ) f(x l ) f(x l ) f(x p ) a x l x p b a x l x p b 17 / 54

Własność funkcji jednomodalnej Niech funkcja f(x) posiada jedno (ścisłe) minimum na przedziale [a, b]. Wybierzmy dowolne x l, x p [a, b] takie, że x l < x p. Jeśli f(x l ) f(x p ) to minimum na pewno nie ma w [a, x l ) Jeśli f(x l ) f(x p ) to minimum na pewno nie ma w (x p, b] Dowód: obrazkowy, nie wprost f(x p ) f(x l ) f(x l ) f(x p ) a x l x p b a x l x p b Wniosek: próbkując funkcję w dwóch punktach x l, x p zawsze możemy odrzucić jeden z obszarów [a, x l ) lub (x p, b]! 17 / 54

Algorytm znajdywania minimum funkcji jednomodalnej Rozpocznij od pełnej dziedziny a = x min, b = x max W kolejnych iteracjach: 1. Wybierz x l, x p [a, b] takie, że x l < x p 2. Jeśli f(x l ) f(x p ), przypisz b = x p, w przeciwny przypadku przypisz a = x l 18 / 54

Algorytm znajdywania minimum funkcji jednomodalnej Rozpocznij od pełnej dziedziny a = x min, b = x max W kolejnych iteracjach: 1. Wybierz x l, x p [a, b] takie, że x l < x p 2. Jeśli f(x l ) f(x p ), przypisz b = x p, w przeciwny przypadku przypisz a = x l a b 18 / 54

Algorytm znajdywania minimum funkcji jednomodalnej Rozpocznij od pełnej dziedziny a = x min, b = x max W kolejnych iteracjach: 1. Wybierz x l, x p [a, b] takie, że x l < x p 2. Jeśli f(x l ) f(x p ), przypisz b = x p, w przeciwny przypadku przypisz a = x l f(x p) f(x l ) a x l x p b 18 / 54

Algorytm znajdywania minimum funkcji jednomodalnej Rozpocznij od pełnej dziedziny a = x min, b = x max W kolejnych iteracjach: 1. Wybierz x l, x p [a, b] takie, że x l < x p 2. Jeśli f(x l ) f(x p ), przypisz b = x p, w przeciwny przypadku przypisz a = x l a b 18 / 54

Algorytm znajdywania minimum funkcji jednomodalnej Rozpocznij od pełnej dziedziny a = x min, b = x max W kolejnych iteracjach: 1. Wybierz x l, x p [a, b] takie, że x l < x p 2. Jeśli f(x l ) f(x p ), przypisz b = x p, w przeciwny przypadku przypisz a = x l f(x l ) f(x p) a x l x p b 18 / 54

Algorytm znajdywania minimum funkcji jednomodalnej Rozpocznij od pełnej dziedziny a = x min, b = x max W kolejnych iteracjach: 1. Wybierz x l, x p [a, b] takie, że x l < x p 2. Jeśli f(x l ) f(x p ), przypisz b = x p, w przeciwny przypadku przypisz a = x l a b 18 / 54

Algorytm znajdywania minimum funkcji jednomodalnej Jak dobrać punkty x l, x p, aby maksymalnie zawęzić obszar przeszukiwań?

Algorytm znajdywania minimum funkcji jednomodalnej Jak dobrać punkty x l, x p, aby maksymalnie zawęzić obszar przeszukiwań? W każdej iteracji odrzucamy jeden z kolorowych obszarów (nie wiemy który) a x l x p b

Algorytm znajdywania minimum funkcji jednomodalnej Jak dobrać punkty x l, x p, aby maksymalnie zawęzić obszar przeszukiwań? W każdej iteracji odrzucamy jeden z kolorowych obszarów (nie wiemy który) Oba obszary powinny być tej samej wielkości a x l x p b

Algorytm znajdywania minimum funkcji jednomodalnej Jak dobrać punkty x l, x p, aby maksymalnie zawęzić obszar przeszukiwań? W każdej iteracji odrzucamy jeden z kolorowych obszarów (nie wiemy który) Oba obszary powinny być tej samej wielkości a x l x p b Punkty x l, x p jak najbliżej środka 19 / 54

Algorytm przeszukiwania dychotomicznego Wejście: Inicjalizuj: procedura wyznaczająca wartość funkcji f(x) w dowolnym punkcie dziedziny [x min, x max ]; liczba odwołań do funkcji n; bardzo mała stała δ (np. δ = 10 8 ) a = x min, b = x max Powtarzaj dla k = 1, 2,..., n/2: 1. Wyznacz środkowy punkt m = a+b 2 2. Przypisz x l = m δ, x p = m + δ 3. Wyznacz wartości funkcji f(x l ) i f(x p ) 4. Jeśli f(x l ) f(x p ), przypisz b = x p, w przeciwnym przypadku przypisz a = x l Zwróć wartość x n = a+b 2 20 / 54

Przeszukiwanie dychotomiczne przykład f(x) a x b 21 / 54

Przeszukiwanie dychotomiczne przykład f(x) a x l x p x b 21 / 54

Przeszukiwanie dychotomiczne przykład f(x) a x l x p x b 21 / 54

Przeszukiwanie dychotomiczne przykład f(x) a b x 21 / 54

Przeszukiwanie dychotomiczne przykład f(x) a x l x p b x 21 / 54

Przeszukiwanie dychotomiczne przykład f(x) a x l x p b x 21 / 54

Przeszukiwanie dychotomiczne przykład f(x) a b x 21 / 54

Przeszukiwanie dychotomiczne przykład f(x) a x l x p b x 21 / 54

Przeszukiwanie dychotomiczne przykład f(x) a x l x p b x 21 / 54

Przeszukiwanie dychotomiczne przykład f(x) a b x 21 / 54

Przeszukiwanie dychotomiczne zbieżność Jeśli na początku iteracji obszar lokalizacji minimum ma długość x, pod koniec iteracji jest zawężony do 1 2 x + δ 1 2 x 22 / 54

Przeszukiwanie dychotomiczne zbieżność Jeśli na początku iteracji obszar lokalizacji minimum ma długość x, pod koniec iteracji jest zawężony do 1 2 x + δ 1 2 x Wniosek: rozpoczynając z zakresem o długości X, po k iteracjach ) k minimum jest zlokalizowane z dokładnością X ( 1 2 22 / 54

Przeszukiwanie dychotomiczne zbieżność Jeśli na początku iteracji obszar lokalizacji minimum ma długość x, pod koniec iteracji jest zawężony do 1 2 x + δ 1 2 x Wniosek: rozpoczynając z zakresem o długości X, po k iteracjach ) k minimum jest zlokalizowane z dokładnością X Wniosek: po n odwołaniach do funkcji: x n x ( 1 2 ) n/2 X = ( 1 2 ( 1 2 ) n X, punkt zwracany przez algorytm punkt optymalny (minimum f(x)) 22 / 54

Przeszukiwanie dychotomiczne zbieżność n x n x 0 1 1 0.707 2 0.5 5 0.177 10 0.031 20 0.001 50 3 10 8 23 / 54

Czy można to zrobić szybciej? 24 / 54

Czy można to zrobić szybciej? Dotychczas w każdej iteracji próbkowaliśmy funkcję w dwóch punktach i zmniejszaliśmy przedział przeszukiwań o połowę. Jeden z dwóch punktów staje się nową granicą przedziału, po czym próbkujemy funkcję w dwóch nowych punktach. 24 / 54

Czy można to zrobić szybciej? Dotychczas w każdej iteracji próbkowaliśmy funkcję w dwóch punktach i zmniejszaliśmy przedział przeszukiwań o połowę. Jeden z dwóch punktów staje się nową granicą przedziału, po czym próbkujemy funkcję w dwóch nowych punktach. Pomysł: wykorzystać jeden z punktów z poprzedniej iteracji i próbkować funkcję tylko raz na iterację! 24 / 54

Czy można to zrobić szybciej? Dotychczas w każdej iteracji próbkowaliśmy funkcję w dwóch punktach i zmniejszaliśmy przedział przeszukiwań o połowę. Jeden z dwóch punktów staje się nową granicą przedziału, po czym próbkujemy funkcję w dwóch nowych punktach. Pomysł: wykorzystać jeden z punktów z poprzedniej iteracji i próbkować funkcję tylko raz na iterację! f(x) a x b 24 / 54

Czy można to zrobić szybciej? Dotychczas w każdej iteracji próbkowaliśmy funkcję w dwóch punktach i zmniejszaliśmy przedział przeszukiwań o połowę. Jeden z dwóch punktów staje się nową granicą przedziału, po czym próbkujemy funkcję w dwóch nowych punktach. Pomysł: wykorzystać jeden z punktów z poprzedniej iteracji i próbkować funkcję tylko raz na iterację! f(x) a x l x x p b 24 / 54

Czy można to zrobić szybciej? Dotychczas w każdej iteracji próbkowaliśmy funkcję w dwóch punktach i zmniejszaliśmy przedział przeszukiwań o połowę. Jeden z dwóch punktów staje się nową granicą przedziału, po czym próbkujemy funkcję w dwóch nowych punktach. Pomysł: wykorzystać jeden z punktów z poprzedniej iteracji i próbkować funkcję tylko raz na iterację! f(x) a x l x x p b 24 / 54

Czy można to zrobić szybciej? Dotychczas w każdej iteracji próbkowaliśmy funkcję w dwóch punktach i zmniejszaliśmy przedział przeszukiwań o połowę. Jeden z dwóch punktów staje się nową granicą przedziału, po czym próbkujemy funkcję w dwóch nowych punktach. Pomysł: wykorzystać jeden z punktów z poprzedniej iteracji i próbkować funkcję tylko raz na iterację! f(x) a x l x b 24 / 54

Czy można to zrobić szybciej? Dotychczas w każdej iteracji próbkowaliśmy funkcję w dwóch punktach i zmniejszaliśmy przedział przeszukiwań o połowę. Jeden z dwóch punktów staje się nową granicą przedziału, po czym próbkujemy funkcję w dwóch nowych punktach. Pomysł: wykorzystać jeden z punktów z poprzedniej iteracji i próbkować funkcję tylko raz na iterację! f(x) a x l x p x b 24 / 54

Konstrukcja algorytmu a x l x p b x 25 / 54

Konstrukcja algorytmu x p a a x l x p b x b x l W następnej iteracji obszar zwęża się do x p a lub b x l. Ponieważ nie wiemy, który przypadek nastąpi, ustalamy: x p a = b x l 25 / 54

a Konstrukcja algorytmu x l a x p a x l x p b x l W następnej iteracji obszar zwęża się do x p a lub b x l. Ponieważ nie wiemy, który przypadek nastąpi, ustalamy: x p a = b x l Jeśli wybierzemy obszar np. x p a, punkt x l zostanie użyty ponownie. Aby zachować proporcje podziału, ustalamy: x p a b a = x l a x p a b x 25 / 54

a Konstrukcja algorytmu x l a x p a x l x p b x l W następnej iteracji obszar zwęża się do x p a lub b x l. Ponieważ nie wiemy, który przypadek nastąpi, ustalamy: x p a = b x l = x l a = b x p Jeśli wybierzemy obszar np. x p a, punkt x l zostanie użyty ponownie. Aby zachować proporcje podziału, ustalamy: x p a b a = x l a x p a Podstawiając pierwsze z równań do drugiego: x p a b a = b x p x p a = b a (x p a) x p a b x = b a x p a 1 25 / 54

a Konstrukcja algorytmu x l a x p a x l x p b x l W następnej iteracji obszar zwęża się do x p a lub b x l. Ponieważ nie wiemy, który przypadek nastąpi, ustalamy: b x x p a = b x l = x l a = b x p Jeśli wybierzemy obszar np. x p a, punkt x l zostanie użyty ponownie. Aby zachować proporcje podziału, ustalamy: x p a b a = x l a x p a Podstawiając pierwsze z równań do drugiego: x p a b a }{{} q = b x p x p a = b a (x p a) x p a = b a 1 x p a }{{} 1/q 25 / 54

Konstrukcja algorytmu x p a a x l x p b x Otrzymaliśmy równanie: q = 1 q 1 = q2 + q 1 = 0, dla q = x p a b a 25 / 54

Konstrukcja algorytmu x p a a x l x p b x Otrzymaliśmy równanie: q = 1 q 1 = q2 + q 1 = 0, dla q = x p a b a Rozwiązanie: 5 1 q = 0.618. 2 Złoty podział odcinka. 25 / 54

Wejście: Inicjalizuj: Algorytm złotego podziału procedura wyznaczająca wartość funkcji f(x) w dowolnym punkcie dziedziny [x min, x max ]; liczba odwołań do funkcji n; α := 5 1 2 0.618 a = x min, b = x max x l = αa + (1 α)b, x p = (1 α)a + αb Wyznacz wartości funkcji f(x l ), f(x p ) Powtarzaj dla k = 2, 3,..., n: Jeśli f(x l ) < f(x p ) Przypisz b = x p, x p = x l, x l = αa + (1 α)b Jeśli k n, wyznacz wartość funkcji f(x l ). w przeciwnym przypadku Przypisz a = x l, x l = x p, x p = (1 α)a + αb Jeśli k n, wyznacz wartość funkcji f(x p ). Zwróć wartość x n = a+b 2 26 / 54

Algorytm złotego podziału przykład f(x) a x b 27 / 54

Algorytm złotego podziału przykład f(x) a x l x x p b 27 / 54

Algorytm złotego podziału przykład f(x) a x l x x p b 27 / 54

Algorytm złotego podziału przykład f(x) a x l x p x b 27 / 54

Algorytm złotego podziału przykład f(x) a x l x p x b 27 / 54

Algorytm złotego podziału przykład f(x) a x l x p b x 27 / 54

Algorytm złotego podziału przykład f(x) a x l x p b x 27 / 54

Algorytm złotego podziału przykład f(x) a x l x p b x 27 / 54

Algorytm złotego podziału zbieżność Jeśli na początku iteracji obszar lokalizacji minimum ma długość x, pod koniec iteracji jest zawężony do αx, gdzie α = 5 1 2 28 / 54

Algorytm złotego podziału zbieżność Jeśli na początku iteracji obszar lokalizacji minimum ma długość x, pod koniec iteracji jest zawężony do αx, gdzie α = 5 1 2 Wniosek: rozpoczynając z zakresem o długości X, po n 1 iteracjach minimum jest zlokalizowane z dokładnością α n 1 X 28 / 54

Algorytm złotego podziału zbieżność Jeśli na początku iteracji obszar lokalizacji minimum ma długość x, pod koniec iteracji jest zawężony do αx, gdzie α = 5 1 2 Wniosek: rozpoczynając z zakresem o długości X, po n 1 iteracjach minimum jest zlokalizowane z dokładnością α n 1 X Wniosek: po n odwołaniach do funkcji: x n x α n 1 X (0.618) n X, 28 / 54

Porównanie: dychotomiczne vs. złoty podział algorytm przeszukiwania dychotomicznego złotego podziału ( ) n 2 1 ( 5 1 2 zbieżność (0.707) n ) n 1 (0.618) n 29 / 54

Porównanie: dychotomiczne vs. złoty podział algorytm przeszukiwania dychotomicznego złotego podziału ( ) n 2 1 ( 5 1 2 zbieżność (0.707) n ) n 1 (0.618) n Zbieżność (0.618) n jest asymptotycznie optymalna. Algorytm optymalny to metoda Fibonacciego: Zbieżność bardzo podobna jak dla algorytmu złotego podziału (asymptotycznie taka sama). Bardziej skomplikowany i przez to mniej praktyczny. 29 / 54

Optymalizacja funkcji różniczkowalnych: algorytm bisekcji 30 / 54

Założenia Założenia: 1. Funkcja f ma ciągłą pochodną na X = [x min, x max ] 2. Pochodna zmienia na X jednokrotnie znak z ujemnego na dodatni 31 / 54

Założenia: Założenia 1. Funkcja f ma ciągłą pochodną na X = [x min, x max ] 2. Pochodna zmienia na X jednokrotnie znak z ujemnego na dodatni Wniosek: funkcja jest jednomodalna: wpierw ściśle malejąca, potem ściśle rosnąca, z minimum w punkcie zerowania się pochodnej f(x) f (x) 0 x x 31 / 54

Założenia: Założenia 1. Funkcja f ma ciągłą pochodną na X = [x min, x max ] 2. Pochodna zmienia na X jednokrotnie znak z ujemnego na dodatni Wniosek: funkcja jest jednomodalna: wpierw ściśle malejąca, potem ściśle rosnąca, z minimum w punkcie zerowania się pochodnej f(x) f (x) 0 x x Wniosek: Sprowadzamy problem do znalezienia miejsca zerowego pochodnej 31 / 54

Metoda bisekcji Rozważmy przedział [a, b] z f (a) < 0 i f (b) > 0, w którym f ma dokładnie jedno miejsce zerowe f (x) 0 a x b 32 / 54

Metoda bisekcji Rozważmy przedział [a, b] z f (a) < 0 i f (b) > 0, w którym f ma dokładnie jedno miejsce zerowe f (x) 0 a m= a+b 2 x b 32 / 54

Metoda bisekcji Rozważmy przedział [a, b] z f (a) < 0 i f (b) > 0, w którym f ma dokładnie jedno miejsce zerowe f (x) 0 a m= a+b 2 x b Skoro f (m) < 0 to miejsce zerowe musi leżeć po prawej stronie! 32 / 54

Metoda bisekcji Rozważmy przedział [a, b] z f (a) < 0 i f (b) > 0, w którym f ma dokładnie jedno miejsce zerowe f (x) 0 a x b Zawężamy obszar przyjmując a = m i ponownie mamy f (a) < 0, f (b) > 0 32 / 54

Metoda bisekcji Wejście: Inicjalizuj: procedura wyznaczająca wartość pochodnej f (x) w dowolnym punkcie dziedziny [x min, x max ]; liczba odwołań do pochodnej n; a = x min, b = x max Powtarzaj dla k = 1, 2,..., n: Wyznacz pochodną f (m) w punkcie m = a+b 2 Jeśli f (m) = 0, zakończ algorytm (znaleziono minimum) W przeciwny przypadku: Jeśli f (m) > 0 przypisz b = m Jeśli f (m) < 0 przypisz a = m Zwróć wartość x n = a+b 2 33 / 54

Metoda bisekcji przykład f (x) 0 a x b 34 / 54

Metoda bisekcji przykład f (x) 0 a m x b 34 / 54

Metoda bisekcji przykład f (x) 0 a m x b 34 / 54

Metoda bisekcji przykład f (x) 0 a x b 34 / 54

Metoda bisekcji przykład f (x) 0 a x m b 34 / 54

Metoda bisekcji przykład f (x) 0 a x m b 34 / 54

Metoda bisekcji przykład f (x) 0 a x b 34 / 54

Metoda bisekcji przykład f (x) 0 a x m b 34 / 54

Metoda bisekcji przykład f (x) 0 a x m b 34 / 54

Metoda bisekcji przykład f (x) 0 x a b 34 / 54

Metoda bisekcji zbieżność Jeśli na początku iteracji obszar lokalizacji minimum ma długość x, pod koniec iteracji jest zawężony do 1 2 x 35 / 54

Metoda bisekcji zbieżność Jeśli na początku iteracji obszar lokalizacji minimum ma długość x, pod koniec iteracji jest zawężony do 1 2 x Wniosek: po n odwołaniach do pochodnej funkcji: x n x ( 1 2 ) n X 35 / 54

Metoda bisekcji zbieżność Jeśli na początku iteracji obszar lokalizacji minimum ma długość x, pod koniec iteracji jest zawężony do 1 2 x Wniosek: po n odwołaniach do pochodnej funkcji: x n x ( 1 2 ) n X algorytm przeszukiwania dychotomicznego złotego podziału bisekcji zbieżność (0.707) n (0.618) n (0.5) n 35 / 54

Metoda bisekcji zbieżność Jeśli na początku iteracji obszar lokalizacji minimum ma długość x, pod koniec iteracji jest zawężony do 1 2 x Wniosek: po n odwołaniach do pochodnej funkcji: x n x ( 1 2 ) n X algorytm przeszukiwania dychotomicznego złotego podziału bisekcji zbieżność (0.707) n (0.618) n (0.5) n Znajomość pochodnej pozwala na szybszą zbieżność! Algorytm przeszukiwania dychotomicznego jest przybliżeniem metody bisekcji, gdzie znak pochodnej szacuje się poprzez f(m + δ) f(m δ) 35 / 54

Optymalizacja funkcji różniczkowalnych: algorytm Newtona 36 / 54

Wielomian: Wielomian Taylora i wzór Taylora P m (x; x 0 ) = f(x 0 )+ f (x 0 ) 1! (x x 0 )+ f (x 0 ) 2! (x x 0 ) 2 +...+ f (m) (x 0 ) (x x 0 ) m m! nazywamy Wielomianem Taylora rzędu m funkcji f w punkcie x 0. Wielomian Taylora coraz lepiej przybliża przebieg funkcji wokół punktu x 0 dla coraz większych m. 37 / 54

Wielomian: Wielomian Taylora i wzór Taylora P m (x; x 0 ) = f(x 0 )+ f (x 0 ) 1! (x x 0 )+ f (x 0 ) 2! (x x 0 ) 2 +...+ f (m) (x 0 ) (x x 0 ) m m! nazywamy Wielomianem Taylora rzędu m funkcji f w punkcie x 0. Wielomian Taylora coraz lepiej przybliża przebieg funkcji wokół punktu x 0 dla coraz większych m. Wzór Taylora: Błąd oszacowania funkcji f(x) wielomianem Taylora P m (x; x 0 ) wokół punktu x 0 : f(x) = P m (x; x 0 )+R m (x; x 0 ), R m (x; x 0 ) = f (m+1) (ξ) (m + 1)! (x x 0) m+1, }{{} reszta w postaci Lagrange a gdzie ξ jest punktem leżącym między x a x 0 37 / 54

Wielomiany Taylora przykład Rozwinięcie Taylora funkcji f(x) = e x w punkcie x 0 = 0. 38 / 54

Wielomiany Taylora przykład Rozwinięcie Taylora funkcji f(x) = e x w punkcie x 0 = 0. f(x) = e x f(x 0 ) = e 0 = 1 P 0 (x; 0) = 1 38 / 54

Wielomiany Taylora przykład Rozwinięcie Taylora funkcji f(x) = e x w punkcie x 0 = 0. f(x) = e x f(x 0 ) = e 0 = 1 P 0 (x; 0) = 1 f (x) = e x f (x 0 ) = e 0 = 1 P 1 (x; 0) = 1 + 1 1! x = 1 + x 38 / 54

Wielomiany Taylora przykład Rozwinięcie Taylora funkcji f(x) = e x w punkcie x 0 = 0. f(x) = e x f(x 0 ) = e 0 = 1 P 0 (x; 0) = 1 f (x) = e x f (x 0 ) = e 0 = 1 P 1 (x; 0) = 1 + 1 1! x = 1 + x f (x) = e x f (x 0 ) = e 0 = 1 P 2 (x; 0) = 1 + x + 1 2! x = 1 + x + x2 2 38 / 54

Wielomiany Taylora przykład Rozwinięcie Taylora funkcji f(x) = e x w punkcie x 0 = 0. f(x) = e x f(x 0 ) = e 0 = 1 P 0 (x; 0) = 1 f (x) = e x f (x 0 ) = e 0 = 1 P 1 (x; 0) = 1 + 1 1! x = 1 + x f (x) = e x f (x 0 ) = e 0 = 1 P 2 (x; 0) = 1 + x + 1 2! x = 1 + x + x2 2 f (3) (x) = e x f (3) (x 0 ) = e 0 = 1 P 3 (x; 0) = 1 + x + x2 2 + x3 6 38 / 54

Wielomiany Taylora przykład f(x) = e x, x 0 = 0. y f(x) x 0 = 0 x 39 / 54

Wielomiany Taylora przykład f(x) = e x, x 0 = 0. y f(x) P 0 (x; 0) = 1 x 0 = 0 x 39 / 54

Wielomiany Taylora przykład f(x) = e x, x 0 = 0. y f(x) P 1 (x; 0) = 1 + x x 0 = 0 x 39 / 54

Wielomiany Taylora przykład f(x) = e x, x 0 = 0. y f(x) P 2 (x; 0) = 1 + x + x2 2 x 0 = 0 x 39 / 54

Wielomiany Taylora przykład f(x) = e x, x 0 = 0. y f(x) P 3 (x; 0) = 1 + x + x2 2 + x3 6 x 0 = 0 x 39 / 54

Założenia metody Newtona Warunek wystarczający na minimum: Jeśli f (x ) = 0 i f (x ) > 0 w punkcie x X, to funkcja f(x) ma minimum lokalne w x. 40 / 54

Założenia metody Newtona Warunek wystarczający na minimum: Jeśli f (x ) = 0 i f (x ) > 0 w punkcie x X, to funkcja f(x) ma minimum lokalne w x. Wykorzystując tę własność możemy rozsądnie założyć, że f (x ) > 0 w punkcie minimum x funkcji f(x) 40 / 54

Założenia metody Newtona Warunek wystarczający na minimum: Jeśli f (x ) = 0 i f (x ) > 0 w punkcie x X, to funkcja f(x) ma minimum lokalne w x. Wykorzystując tę własność możemy rozsądnie założyć, że f (x ) > 0 w punkcie minimum x funkcji f(x) Przyjmując, że druga pochodna jest ciągła, zakładamy dodatkowo, że f (x) > 0 w pewnym otoczeniu punktu x. 40 / 54

Metoda Newtona Metoda Newtona to iteracyjny algorytm minimalizacji bez ograniczeń funkcji f(x) o ciągłej pierwszej i drugiej pochodnej 41 / 54

Metoda Newtona Metoda Newtona to iteracyjny algorytm minimalizacji bez ograniczeń funkcji f(x) o ciągłej pierwszej i drugiej pochodnej Wynikiem metody jest ciąg punktów x 1, x 2,... zbiegających do minimum lokalnego x funkcji f(x) 41 / 54

Metoda Newtona Metoda Newtona to iteracyjny algorytm minimalizacji bez ograniczeń funkcji f(x) o ciągłej pierwszej i drugiej pochodnej Wynikiem metody jest ciąg punktów x 1, x 2,... zbiegających do minimum lokalnego x funkcji f(x) W każdej iteracji k = 1, 2,... przybliżamy funkcję f(x) wielomianem Taylora drugiego rzędu wokół aktualnego punktu x k : f(x) P 2 (x; x k ) = f(x k ) + f (x k )(x x k ) + 1 2 f (x k )(x x k ) 2 41 / 54

Metoda Newtona Metoda Newtona to iteracyjny algorytm minimalizacji bez ograniczeń funkcji f(x) o ciągłej pierwszej i drugiej pochodnej Wynikiem metody jest ciąg punktów x 1, x 2,... zbiegających do minimum lokalnego x funkcji f(x) W każdej iteracji k = 1, 2,... przybliżamy funkcję f(x) wielomianem Taylora drugiego rzędu wokół aktualnego punktu x k : f(x) P 2 (x; x k ) = f(x k ) + f (x k )(x x k ) + 1 2 f (x k )(x x k ) 2 f(x) x k x 41 / 54

Metoda Newtona Metoda Newtona to iteracyjny algorytm minimalizacji bez ograniczeń funkcji f(x) o ciągłej pierwszej i drugiej pochodnej Wynikiem metody jest ciąg punktów x 1, x 2,... zbiegających do minimum lokalnego x funkcji f(x) W każdej iteracji k = 1, 2,... przybliżamy funkcję f(x) wielomianem Taylora drugiego rzędu wokół aktualnego punktu x k : f(x) P 2 (x; x k ) = f(x k ) + f (x k )(x x k ) + 1 2 f (x k )(x x k ) 2 P 2 (x; x k ) f(x) Przybliżenie funkcji f(x) funkcją kwadratową wokół x k Powód: Minimum funkcji kwadratowej umiemy znaleźć analitycznie! x k x 41 / 54

Metoda Newtona Z założenia f (x) > 0 w otoczeniu x, stąd dla x k bliskiego x P 2 (x; x k ) = f(x k ) + f (x k )(x x k ) + 1 2 f (x k )(x x k ) 2 }{{} >0 jest parabolą wypukłą posiadającą minimum 42 / 54

Metoda Newtona Z założenia f (x) > 0 w otoczeniu x, stąd dla x k bliskiego x P 2 (x; x k ) = f(x k ) + f (x k )(x x k ) + 1 2 f (x k )(x x k ) 2 }{{} >0 jest parabolą wypukłą posiadającą minimum Kolejny punkt x k+1 przyjmujemy więc jako minimum P 2 (x; x k ) uzyskane poprzez przyrównanie pochodnej P 2 (x; x k ) do zera: P 2(x; x k ) = 0 f (x k ) + f (x k )(x x k ) = 0 42 / 54

Metoda Newtona Z założenia f (x) > 0 w otoczeniu x, stąd dla x k bliskiego x P 2 (x; x k ) = f(x k ) + f (x k )(x x k ) + 1 2 f (x k )(x x k ) 2 }{{} >0 jest parabolą wypukłą posiadającą minimum Kolejny punkt x k+1 przyjmujemy więc jako minimum P 2 (x; x k ) uzyskane poprzez przyrównanie pochodnej P 2 (x; x k ) do zera: P 2(x; x k ) = 0 f (x k ) + f (x k )(x x k ) = 0 x k+1 = x k f (x k ) f (x k ) 42 / 54

Metoda Newtona Wejście: procedura wyznaczająca wartości f (x) i f (x) w dowolnym punkcie dziedziny; liczba iteracji n; Inicjalizuj: x 1 odpowiednio blisko minimum x Powtarzaj dla k = 1, 2,..., n: Wyznacz pierwszą i drugą pochodną w x k : f (x k ), f (x k ) Przypisz x k+1 = x k f (x k ) f (x k ) Zwróć wartość x n+1 43 / 54

Metoda Newtona przykład f(x) x x 44 / 54

Metoda Newtona przykład f(x) x 1 x x 44 / 54

Metoda Newtona przykład f(x) x 1 x x 44 / 54

Metoda Newtona przykład f(x) x x 1 x 2 x 44 / 54

Metoda Newtona przykład f(x) x x x 2 44 / 54

Metoda Newtona przykład f(x) x x x 2 44 / 54

Metoda Newtona przykład f(x) x x x 3 x 2 44 / 54

Metoda Newtona przykład f(x) x x x 3 44 / 54

Metoda Newtona przykład f(x) x x x 3 44 / 54

Metoda Newtona przykład f(x) x 4 x x 3 x 44 / 54

Metoda Newtona przykład Szukamy minimum funkcji f(x) = e x + e x f (x) = e x e x, f (x) = e x + e x Łatwo wyznaczyć minimum globalne analitycznie: x = 0. 45 / 54

Metoda Newtona przykład Szukamy minimum funkcji f(x) = e x + e x f (x) = e x e x, f (x) = e x + e x Łatwo wyznaczyć minimum globalne analitycznie: x = 0. Rozpoczynamy od rozwiązania x 1 = 1 45 / 54

Metoda Newtona przykład Szukamy minimum funkcji f(x) = e x + e x f (x) = e x e x, f (x) = e x + e x Łatwo wyznaczyć minimum globalne analitycznie: x = 0. Rozpoczynamy od rozwiązania x 1 = 1 k x k x k x 1 1 1 2 0.238 0.238 3 0.004 0.004 4 2.9 10 8 2.9 10 8 5 2.51 10 17 2.51 10 17 45 / 54

Metoda Newtona przykład Szukamy minimum funkcji f(x) = e x + e x f (x) = e x e x, f (x) = e x + e x Łatwo wyznaczyć minimum globalne analitycznie: x = 0. Rozpoczynamy od rozwiązania x 1 = 10 45 / 54

Metoda Newtona przykład Szukamy minimum funkcji f(x) = e x + e x f (x) = e x e x, f (x) = e x + e x Łatwo wyznaczyć minimum globalne analitycznie: x = 0. Rozpoczynamy od rozwiązania x 1 = 10 k x k x k x 1 10 10 2 9 9 3 8 8 4 7 7 5 6 6 6 5 5 7 4 4 8 3 3 9 2.005 2.005 10 1.041 1.041 11 0.263 0.263 12 0.006 0.006 13 6.8 10 8 6.8 10 8 14 1.5 10 17 1.5 10 17 45 / 54

Metoda Newtona przykład Szukamy minimum funkcji f(x) = x 2 + 2x + 1 f (x) = 2x + 2 f (x) = 2 Łatwo wyznaczyć minimum globalne analitycznie: x = 1. 46 / 54

Metoda Newtona przykład Szukamy minimum funkcji f(x) = x 2 + 2x + 1 f (x) = 2x + 2 f (x) = 2 Łatwo wyznaczyć minimum globalne analitycznie: x = 1. Rozpoczynamy od rozwiązania x 1 = 5 k x k x k x 1 5 6 2 1 0 46 / 54

Metoda Newtona przykład Szukamy minimum funkcji f(x) = x 2 + 2x + 1 f (x) = 2x + 2 f (x) = 2 Łatwo wyznaczyć minimum globalne analitycznie: x = 1. Rozpoczynamy od rozwiązania x 1 = 5 k x k x k x 1 5 6 2 1 0 Metoda Newtona znajduje minimum funkcji kwadratowej dokładnie w jednym kroku! Dlaczego? 46 / 54

Metoda Newtona przykład Szukamy minimum funkcji f(x) = x 2 + 2x + 1 f (x) = 2x + 2 f (x) = 2 Łatwo wyznaczyć minimum globalne analitycznie: x = 1. Rozpoczynamy od rozwiązania x 1 = 5 k x k x k x 1 5 6 2 1 0 Metoda Newtona znajduje minimum funkcji kwadratowej dokładnie w jednym kroku! Dlaczego? Ponieważ przybliżenie kwadratowe jest w tym wypadku tożsame z funkcją f(x)! 46 / 54

Metoda Newtona przykład Szukamy minimum funkcji f(x) = x log(x) f (x) = 1 1 x, f (x) = 1 x 2 Łatwo wyznaczyć minimum globalne analitycznie: x = 1. 47 / 54

Metoda Newtona przykład Szukamy minimum funkcji f(x) = x log(x) f (x) = 1 1 x, f (x) = 1 x 2 Łatwo wyznaczyć minimum globalne analitycznie: x = 1. Rozpoczynamy od rozwiązania x 1 = 1.5 47 / 54

Metoda Newtona przykład Szukamy minimum funkcji f(x) = x log(x) f (x) = 1 1 x, f (x) = 1 x 2 Łatwo wyznaczyć minimum globalne analitycznie: x = 1. Rozpoczynamy od rozwiązania x 1 = 1.5 k x k x k x 1 1.5 0.5 2 0.75 0.25 3 0.9375 0.0625 4 0.996 0.004 5 0.999 1.53 10 5 6 0.999 2.33 10 10 47 / 54

Metoda Newtona przykład Szukamy minimum funkcji f(x) = x log(x) f (x) = 1 1 x, f (x) = 1 x 2 Łatwo wyznaczyć minimum globalne analitycznie: x = 1. Rozpoczynamy od rozwiązania x 1 = 3 47 / 54

Metoda Newtona przykład Szukamy minimum funkcji f(x) = x log(x) f (x) = 1 1 x, f (x) = 1 x 2 Łatwo wyznaczyć minimum globalne analitycznie: x = 1. Rozpoczynamy od rozwiązania x 1 = 3 k x k x k x 1 3 2 2 3 4 3 4 5 4 15 16 5 16 17 6 255 256......... 10 4294967295 4294967296 Metoda rozbiega się do (minus) nieskończoności! 47 / 54

Metoda Newtona Wymaga dostępu do pierwszej i drugiej pochodnej Nie radzi sobie z ograniczeniami dziedziny W ogólności algorytm trzeba rozpocząć dostatecznie blisko optimum, w przeciwnym wypadku może się nawet rozbiec! Rozpoczęty blisko optimum, algorytm zbiega błyskawicznie, zwykle wystarczy kilka iteracji! (z tego względu zwykle preferowany w praktyce) 48 / 54

Przypomnienie (wzór Taylora): Zbieżność metody Newtona f(x) = P m (x; x 0 ) + f (m+1) (ξ) (m + 1)! (x x 0) m+1 gdzie ξ jest punktem leżącym między x a x 0. W szczególności dla m = 1: f(x) = f(x 0 ) + f (x 0 )(x x 0 ) + 1 2 f (ξ)(x x 0 ) 2 49 / 54

Przypomnienie (wzór Taylora): Zbieżność metody Newtona f(x) = P m (x; x 0 ) + f (m+1) (ξ) (m + 1)! (x x 0) m+1 gdzie ξ jest punktem leżącym między x a x 0. W szczególności dla m = 1: f(x) = f(x 0 ) + f (x 0 )(x x 0 ) + 1 2 f (ξ)(x x 0 ) 2 Wniosek: Stosując to twierdzenie do pochodnej f (x) (dla m = 1) z x = x i x 0 = x k mamy: f (x ) }{{} =0 = f (x k ) + f (x k )(x x k ) + 1 2 f (ξ)(x x k ) 2, (zakładamy, że funkcja jest trzykrotnie różniczkowalna) 49 / 54

Przypomnienie (wzór Taylora): Zbieżność metody Newtona f(x) = P m (x; x 0 ) + f (m+1) (ξ) (m + 1)! (x x 0) m+1 gdzie ξ jest punktem leżącym między x a x 0. W szczególności dla m = 1: f(x) = f(x 0 ) + f (x 0 )(x x 0 ) + 1 2 f (ξ)(x x 0 ) 2 Wniosek: Stosując to twierdzenie do pochodnej f (x) (dla m = 1) z x = x i x 0 = x k mamy: f (x ) }{{} =0 = f (x k ) + f (x k )(x x k ) + 1 2 f (ξ)(x x k ) 2, (zakładamy, że funkcja jest trzykrotnie różniczkowalna) co daje: f (x k ) = f (x k )(x x k ) + 1 2 f (ξ)(x x k ) 2 49 / 54

Zbieżność metody Newtona f (x k ) = f (x k )(x x k ) + 1 2 f (ξ)(x x k ) 2 Z definicji metody Newtona mamy: x k+1 x = x k x f (x k ) f (x k ) 50 / 54

Zbieżność metody Newtona f (x k ) = f (x k )(x x k ) + 1 2 f (ξ)(x x k ) 2 Z definicji metody Newtona mamy: Używając wzoru w ramce: x k+1 x = x k x f (x k ) f (x k ) x k+1 x = x k x + f (x k )(x x k ) + 1 2 f (ξ)(x x k ) 2 f (x k ) 50 / 54

Zbieżność metody Newtona f (x k ) = f (x k )(x x k ) + 1 2 f (ξ)(x x k ) 2 Z definicji metody Newtona mamy: Używając wzoru w ramce: x k+1 x = x k x f (x k ) f (x k ) x k+1 x = x k x + f (x k )(x x k ) + 1 2 f (ξ)(x x k ) 2 f (x k ) = 1 f (ξ) 2 f (x k ) (x x k ) 2 50 / 54

Zbieżność metody Newtona f (x k ) = f (x k )(x x k ) + 1 2 f (ξ)(x x k ) 2 Z definicji metody Newtona mamy: Używając wzoru w ramce: x k+1 x = x k x f (x k ) f (x k ) x k+1 x = x k x + f (x k )(x x k ) + 1 2 f (ξ)(x x k ) 2 f (x k ) = 1 f (ξ) 2 f (x k ) (x x k ) 2 Zbieżność kwadratowa: x k+1 x = β k (x k x ) 2, β k = 1 f (ξ) 2 f (x k ) 50 / 54

Rząd zbieżności Niech p 1 będzie maksymalną wartością, dla której istnieje granica: β = lim β k, gdzie β k = x k+1 x k x k x p. Wtedy p nazywamy rzędem zbieżności ciągu x k do x. 51 / 54

Rząd zbieżności Niech p 1 będzie maksymalną wartością, dla której istnieje granica: β = lim β k, gdzie β k = x k+1 x k x k x p. Wtedy p nazywamy rzędem zbieżności ciągu x k do x. Jeśli p = 1 i β (0, 1) to ciąg ma zbieżność liniową (przeszukiwanie dychotomiczne, złoty podział, bisekcja) Jeśli p = 2 to ciąg ma zbieżność kwadratową (metoda Newtona) 51 / 54

Porównanie rzędów zbieżności Załóżmy dla uproszczenia, że zachodzi x k+1 x = β x k x p dla wszystkich n. Porównamy rzędy zbieżności dla β = 0.5 i p = 1, 2, tzn: x k+1 x = 0.5 x k x, x k+1 x = 0.5 x k x 2 52 / 54

Porównanie rzędów zbieżności Załóżmy dla uproszczenia, że zachodzi x k+1 x = β x k x p dla wszystkich n. Porównamy rzędy zbieżności dla β = 0.5 i p = 1, 2, tzn: x k+1 x = 0.5 x k x, x k+1 x = 0.5 x k x 2 Rozpoczynamy od x 1 x = 1. k wartość x k x p = 1 p = 2 1 1 1 2 0.5 0.5 3 0.25 0.125 4 0.125 0.00781 5 0.0625 3.05 10 5 6 0.03125 4.66 10 10 7 0.01563 1.08 10 19 52 / 54

Porównanie rzędów zbieżności Załóżmy dla uproszczenia, że zachodzi x k+1 x = β x k x p dla wszystkich n. Porównamy rzędy zbieżności dla β = 0.5 i p = 1, 2, tzn: x k+1 x = 0.5 x k x, x k+1 x = 0.5 x k x 2 Rozpoczynamy od x 1 x = 4. k wartość x k x p = 1 p = 2 1 2 2 2 1 8 3 0.5 512 4 0.25 131072 5 0.125 8589934592 52 / 54

Metoda siecznych Druga pochodna potrzebna w metodzie Newtona może być czasem trudna (lub wręcz niemożliwa) do pozyskania 53 / 54

Metoda siecznych Druga pochodna potrzebna w metodzie Newtona może być czasem trudna (lub wręcz niemożliwa) do pozyskania Rozwiązanie: Korzystając z definicji drugiej pochodnej: f (x) = lim 0 f (x + ) f (x) przybliżamy: f (x k ) f (x k ) f (x k 1 ) x k x k 1 53 / 54

Metoda siecznych Druga pochodna potrzebna w metodzie Newtona może być czasem trudna (lub wręcz niemożliwa) do pozyskania Rozwiązanie: Korzystając z definicji drugiej pochodnej: przybliżamy: f (x) = lim 0 f (x + ) f (x) f (x k ) f (x k ) f (x k 1 ) x k x k 1 W rezultacie dostajemy tzw. metodę siecznych: x k+1 = x k f (x k )(x k x k 1 ) f (x k ) f (x k 1 ) 53 / 54

Metoda siecznych Druga pochodna potrzebna w metodzie Newtona może być czasem trudna (lub wręcz niemożliwa) do pozyskania Rozwiązanie: Korzystając z definicji drugiej pochodnej: przybliżamy: f (x) = lim 0 f (x + ) f (x) f (x k ) f (x k ) f (x k 1 ) x k x k 1 W rezultacie dostajemy tzw. metodę siecznych: x k+1 = x k f (x k )(x k x k 1 ) f (x k ) f (x k 1 ) Można pokazać, że metoda siecznych ma rząd zbieżności β = 1+ 5 2 1.618 53 / 54

Kryteria stopu algorytmów optymalizacji Poznane algorytmy mogą w zasadzie działać nieskończenie długo, coraz lepiej przybliżając optimum, ale nigdy go dokładnie nie osiągając. Potrzebne jest więc dodatkowe kryterium stopu 54 / 54

Kryteria stopu algorytmów optymalizacji Poznane algorytmy mogą w zasadzie działać nieskończenie długo, coraz lepiej przybliżając optimum, ale nigdy go dokładnie nie osiągając. Potrzebne jest więc dodatkowe kryterium stopu Dla uproszczenia dotychczas stosowaliśmy kryterium czasu obliczeń, w którym z góry zadana jest liczba iteracji n. 54 / 54

Kryteria stopu algorytmów optymalizacji Poznane algorytmy mogą w zasadzie działać nieskończenie długo, coraz lepiej przybliżając optimum, ale nigdy go dokładnie nie osiągając. Potrzebne jest więc dodatkowe kryterium stopu Dla uproszczenia dotychczas stosowaliśmy kryterium czasu obliczeń, w którym z góry zadana jest liczba iteracji n. Alternatywnie, można rozważać kryteria jakości przybliżenia x k wyrażone za pomocą numerycznej stałej ɛ (np. ɛ = 10 8 ), np. zatrzymaj algorytm: Jeśli x k x ɛ (co otrzymujemy z analizy teoretycznej) 54 / 54

Kryteria stopu algorytmów optymalizacji Poznane algorytmy mogą w zasadzie działać nieskończenie długo, coraz lepiej przybliżając optimum, ale nigdy go dokładnie nie osiągając. Potrzebne jest więc dodatkowe kryterium stopu Dla uproszczenia dotychczas stosowaliśmy kryterium czasu obliczeń, w którym z góry zadana jest liczba iteracji n. Alternatywnie, można rozważać kryteria jakości przybliżenia x k wyrażone za pomocą numerycznej stałej ɛ (np. ɛ = 10 8 ), np. zatrzymaj algorytm: Jeśli x k x ɛ (co otrzymujemy z analizy teoretycznej) Jeśli f (x k ) ɛ (korzystając z faktu, że f (x ) = 0) 54 / 54

Kryteria stopu algorytmów optymalizacji Poznane algorytmy mogą w zasadzie działać nieskończenie długo, coraz lepiej przybliżając optimum, ale nigdy go dokładnie nie osiągając. Potrzebne jest więc dodatkowe kryterium stopu Dla uproszczenia dotychczas stosowaliśmy kryterium czasu obliczeń, w którym z góry zadana jest liczba iteracji n. Alternatywnie, można rozważać kryteria jakości przybliżenia x k wyrażone za pomocą numerycznej stałej ɛ (np. ɛ = 10 8 ), np. zatrzymaj algorytm: Jeśli x k x ɛ (co otrzymujemy z analizy teoretycznej) Jeśli f (x k ) ɛ (korzystając z faktu, że f (x ) = 0) Jeśli x k x k 1 x k 1 < ɛ (relatywna zmiana rozwiązania niewielka) 54 / 54

Kryteria stopu algorytmów optymalizacji Poznane algorytmy mogą w zasadzie działać nieskończenie długo, coraz lepiej przybliżając optimum, ale nigdy go dokładnie nie osiągając. Potrzebne jest więc dodatkowe kryterium stopu Dla uproszczenia dotychczas stosowaliśmy kryterium czasu obliczeń, w którym z góry zadana jest liczba iteracji n. Alternatywnie, można rozważać kryteria jakości przybliżenia x k wyrażone za pomocą numerycznej stałej ɛ (np. ɛ = 10 8 ), np. zatrzymaj algorytm: Jeśli x k x ɛ (co otrzymujemy z analizy teoretycznej) Jeśli f (x k ) ɛ (korzystając z faktu, że f (x ) = 0) Jeśli x k x k 1 x k 1 < ɛ (relatywna zmiana rozwiązania niewielka) Jeśli f(x k) f(x k 1 ) f(x k 1 ) niewielka) < ɛ (relatywna zmiana jakości rozwiązania 54 / 54