Dokumentacja klasy BolzanoDivision

#include <BolzanoDivision.h>

Diagram dziedziczenia dla BolzanoDivision

SectionLineSearch LineSearch Method Observable Lista wszystkich składowych.

Opis szczegółowy

Metoda podziału Bolzano.

Metoda BolzanoDivision (inaczej: metoda punktu środkowego) działa przy wykorzystaniu twierdzenia BolzanoDivision-Cauchy'ego, które brzmi: Niech funkcja $ \phi(x) $ będzie określona i ciągła w przedziale domkniętym $ <a,b> $ i niech na końcach tego przedziału przyjmuje wartości różnych znaków. Wówczas pomiędzy $ a $ i $ b $ znajduje się punkt c, w którym funkcja równa się zeru:

\[ \phi(c)=0, a<c<b \]


W naszym przypadku funkcją $ \phi(x) $ jest pochodna funkcji celu $ f'(x) $.

Algorytm metody:

Oznaczenia:
$ a $ - lewy kraniec przedziału poszukiwań w danej iteracji
$ b $ - prawy kraniec przedziału poszukiwań w danej iteracji
$ x_m $ - punkt w połowie przedziału nieoznaczoności w danej iteracji

Dane potrzebne do obliczeń:
$ f(x) $ - minimalizowana funkcja jednej zmiennej
$ a^0 $ - lewy kraniec początkowego przedziału poszukiwań
$ b^0 $ - prawy kraniec początkowego przedziału poszukiwań
$ \varepsilon $ - wymagana dokładność rozwiązania

Krok 1:
Obliczyć $ f'(a^0) $ i $ f'(b^0) $.

Krok 2:
Jeśli $ f'(a^0)>0 $, a $ f'(b^0)<0 $, 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: $ x_m=(a+b)/2 $ oraz pochodną w tym punkcie $ f'(x_m) $.

Krok 4:
Jeśli $ f'(x_m)<\varepsilon $, zakończ działanie algorytmu. Wynikiem jest punkt $ x_m $.

Krok 5a:
Jeśli $ f'(x_m)<0 $, podstaw $ a=x_m $ i przejdź do kroku 3.
W przeciwnym wypadku przejdź do kroku 5b.

Krok 5b:
Podstaw $ b=x_m $ i przejdź do kroku 3.

Algorytm zaimplementowano na podstawie:
Ostanin. A: Metody i algorytmy optymalizacji, Wydawnictwo Politechniki Białostockiej, Białystok, 2003

Zobacz również:
Linesearch


Metody publiczne

 ~BolzanoDivision (void)
 Destruktor.
virtual std::auto_ptr< MethodClone () const
 Tworzy kopię metody.
virtual const wxString & Name () const
 Zwraca nazwę metody.
virtual MethodIdType Id () const
 Zwraca ID metody.
virtual bool CanHandle (const ProblemBase *pProblem) const
 Sprawdza, czy dany problem może być rozwiązany tą metodą.
virtual bool CanAssist (const ProblemBase *pProblem) const
 Sprawdza, czy metoda może wspomóc rozwiązanie danego zadania.

Statyczne metody publiczne

static MethodIdType ClassId ()
 Zwraca ID metody.

Metody chronione

 BolzanoDivision (void)
 Konstruktor domyślny.
 BolzanoDivision (const BolzanoDivision &from)
 Konstruktor kopiujący.
virtual wxString & rName ()

Przyjaciele

class SectionLineSearchPanel< BolzanoDivision >


Dokumentacja konstruktora i destruktora

BolzanoDivision::BolzanoDivision const BolzanoDivision from  )  [protected]
 

Konstruktor kopiujący.

Parametry:
from Obiekt, którego wartość jest kopiowana.


Dokumentacja funkcji składowych

bool BolzanoDivision::CanAssist const ProblemBase pProblem  )  const [virtual]
 

Sprawdza, czy metoda może wspomóc rozwiązanie danego zadania.

Dokładniej rzecz biorąc sprawdzane jest, czy metoda może być wykorzystana przez metodę optymalizacji wielu zmiennych do optymalizacji w kierunku przy rozwiązywaniu danego zadania optymalizacji.

Reimplementowana z SectionLineSearch.


Dokumentacja dla tej klasy została wygenerowana z plików:
Wygenerowano Fri Sep 29 21:04:50 2006 dla EduOptim2 programem  doxygen 1.4.6