#include <BolzanoDivision.h>
Diagram dziedziczenia dla BolzanoDivision
Metoda BolzanoDivision (inaczej: metoda punktu środkowego) działa przy wykorzystaniu twierdzenia BolzanoDivision-Cauchy'ego, które brzmi: Niech funkcja będzie określona i ciągła w przedziale domkniętym
i niech na końcach tego przedziału przyjmuje wartości różnych znaków. Wówczas pomiędzy
i
znajduje się punkt c, w którym funkcja równa się zeru:
W naszym przypadku funkcją jest pochodna funkcji celu
.
Algorytm metody:
Oznaczenia:
- lewy kraniec przedziału poszukiwań w danej iteracji
- prawy kraniec przedziału poszukiwań w danej iteracji
- punkt w połowie przedziału nieoznaczoności w danej iteracji
Dane potrzebne do obliczeń:
- minimalizowana funkcja jednej zmiennej
- lewy kraniec początkowego przedziału poszukiwań
- prawy kraniec początkowego przedziału poszukiwań
- wymagana dokładność rozwiązania
Krok 1:
Obliczyć i
.
Krok 2:
Jeśli , a
, zakończ działanie algorytmu stwierdzając, że punkt stacjonarny nie znajduje się w przedziale początkowym.
W przeciwnym wypadku przejść do kroku 3.
Krok 3:
Oblicz: oraz pochodną w tym punkcie
.
Krok 4:
Jeśli , zakończ działanie algorytmu. Wynikiem jest punkt
.
Krok 5a:
Jeśli , podstaw
i przejdź do kroku 3.
W przeciwnym wypadku przejdź do kroku 5b.
Krok 5b:
Podstaw i przejdź do kroku 3.
Algorytm zaimplementowano na podstawie:
Ostanin. A: Metody i algorytmy optymalizacji, Wydawnictwo Politechniki Białostockiej, Białystok, 2003