#include <Derivative.h>
Diagram dziedziczenia dla Derivative
Metoda pochodnej jest prostą metodą rozwiązywania problemów jednowymiarowych wykorzystującą wartość pochodnej funkcji w punkcie.
Do algorytmu wprowadzono usprawnienie dzięki któremu niemożliwe jest zapętlenie się procesu poszukiwań.
Oznaczenia:
- punkt w k-tej iteracji
- kandydat na punkt w następnej iteracji
- współczynnik wpływu wartości pochodnej w punkcie na przesunięcie punktu roboczego w k-tej iteracji
Dane potrzebne do obliczeń:
- minimalizowana funkcja jednej zmiennej
- punkt poczatkowy
- wymagana dokładność rozwiązania
- początkowa wartość
w każdej iteracji (może się zmniejszać gdy wykonywane kroki są za długie).
- współczynnik zmniejszania współczynnika
w przypadku, gdy wykonanie kroku dałoby gorszy wynik
Krok 1:
Podstawić oraz
.
Krok 2:
Podstawić oraz
.
Krok 3:
Obliczyć .
Jeśli , podstawić
i przejść do kroku 5. W przeciwnym wypadku przejść do kroku 4.
Krok 4:
Zmniejszyć zgodnie ze wzorem:
, a następnie przejsć do kroku 3.
Krok 5:
Jeśli spełniony jest warunek zbieżności, zakoczyć działanie algorytmu i zwrócić jako wynik. W przeciwnym wypadku przejść do kroku 2.
Algorytm zaimplementowano na podstawie pracy dyplomowej:
Grabowski J.: Numeryczne metody optymalizacji, miejsce i data obrony: Politechnika Wrocławska, TODO
Metody publiczne | |
~Derivative (void) | |
Destruktor. | |
virtual std::auto_ptr< Method > | Clone () const |
Tworzy kopię metody. | |
virtual const wxString & | Name () const |
Zwraca nazwę metody. | |
virtual MethodIdType | Id () const |
Zwraca ID metody. | |
virtual wxString | ToString (bool standalone=true) const |
Zwraca opis tekstowy metody (nazwa + parametry). | |
virtual bool | CanHandle (const ProblemBase *pProblem) const |
Sprawdza, czy dany problem może być rozwiązany tą metodą. | |
Statyczne metody publiczne | |
static MethodIdType | ClassId () |
Zwraca ID metody. | |
Metody chronione | |
Derivative (void) | |
Konstruktor domyślny. | |
Derivative (const Derivative &from) | |
Konstruktor kopiujący. | |
virtual wxString & | rName () |
Atrybuty chronione | |
DoubleParameter | mAlpha |
Współczynnik wpływu wartości pochodnej na położenie następnego odcinka. | |
DoubleParameter | mGamma |
Współczynnik zmniejszania wartości mAlpha w przypadku braku zbieżności. | |
Przyjaciele | |
class | DerivativeLineSearchPanel< Derivative > |
|
Konstruktor kopiujący.
|