Metoda Brenta (optymalizacja)

Z testwiki
Wersja z dnia 18:37, 22 sty 2018 autorstwa imported>Paweł Ziemian BOT (Dodaję nagłówek przed Szablon:Przypisy)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacji Przejdź do wyszukiwania

Metoda Brenta - numeryczna metoda szukania minimum funkcji jednej zmiennej. Podobnie jak metoda złotego podziału nie używa pochodnych a jedynie samych wartości funkcji. Znaczne przyśpieszenie zostało uzyskane przez wyznaczenie przybliżenia punktu minimum za pomocą interpolacji trzech punktów parabolą. Sprawdzane jest czy parabola ma minimum (we wzorze ax2+bx+c a ma być >0) i następnym punktem jest współrzędna x ekstremum paraboli. Współrzędna x punktu ekstremum paraboli jest zadana wzorem b2a Mając trzy punkty x1,x2 i x3 oraz wartości funkcji y1, y2 i y3 z interpolacji wielomianem Lagrange'a mamy:

y1*(xx2)*(xx3)(x1x2)*(x1x3)+y2*(xx1)*(xx3)(x2x1)*(x2x3)+y3*(xx1)*(xx2)(x3x1)*(x3x2)

W metodzie Brenta aby uprościć wzór na b2a wybrano jeden punkt (np x1) i zamiast pozostałych dwóch stosuje się odległość do pierwszego punktu i najpierw wylicza się odległość ekstremum od pierwszego punktu: d=b2ax1

Podstawiając:

x2:=x1+dx2
x3:=x1+dx3
y2:=y1+dy2
y3:=y1+dy3

Mamy:

y1*(xdx2x1)*(xdx3x1)dx2*dx3+(y1+dy2)*(xx1)*(xdx3x1)dx2*(dx2dx3)+(y1+dy3)*(xx1)*(xdx2x1)dx3*(dx3dx2)

Otrzymujemy:

a=(dx2dy3dx3dy2)/(dx2dx3(dx3dx2))
b=(dx22dy3+2dx2dy3x1dx3dy2(dx3+2x1))/(dx2dx3(dx3dx2))
d=(dx22dy3dx32dy2)/(2(dx2dy3dx3dy2))

Mając iloczyny dx2dy3 oraz dx3dy2 obliczymy d.

Kod

Poniższy kod został przedstawiony w artykule Brenta[1]. Używa dwóch zmiennych dla tolerancji obliczeń: jedna podawana jest przez użytkownika, druga nie może być za mała i jest równa pierwiastkowi z wartości błędu maszynowego.

Wikibooks:pl:Kody_źródłowe/Szukanie minimów metodą Brenta

Działanie

Dla funkcji sinus na przedziale (0;10) i dokładności 1e-16 wyznacza minimum już po 10 krokach, podczas gdy metoda złotego podziału potrzebowała aż 79 kroków.

Zobacz też

Przypisy

Szablon:Przypisy