I0,1,2,3,4,5,6,7…
Fi1,1,2,3,5,8,13,2…
Вначале вычисляют число N=(b-a)/. Затем в ряду чисел Фибоначчи находят пару соседних чисел, удовлетворяющих условию. Далее вычисляют X1=а + dx*F(s-2) и X2 = а + dx*F(s-2-1) и значение функции в этих точках: Q(X1) и Q(X2). Далее движение в сторону экстремума выполняется по общей формуле: Xi+1 = Xt ± sign (Xi-Xi-1)·sign |Q(Xi)-Q(Xi-1)| ∆·Fs-2-i , i = 2,3,… Здесь знак “+”ставится в задаче максимизации функции, а знак “-” ставится в задаче минимизации функции.
Xt есть значение X, при котором получено наилучшее значение функции на предыдущих шагах. Sign (z) есть знаковая функция. Sign (z)=-1, если z0, Sign (z)=1, если z >0.
Признаком окончания поиска является условие, когда весь ряд чисел Фибоначчи будет исчерпан.Число вычислений функции при этом равно s-1.
3.5 Пример выполнения работы
Постановка задачи.
Требуется найти экстремум функции , где
Левая граница интервала поиска: .
Правая граница интервала поиска: , так как - точка экстремума функции , найденная аналитическим методом.
Погрешность нахождения экстремума
.5.1 Поиск экстремума функции методом половинного деления
График функции
Левая граница отрезка [A, B]: А = 1,05
Правая граница отрезка [А, B]: B = 2,1
Требуемая точность: E = 0,01
б = 0.05*E = 0,0005
Шаг N: 1
Текущий отрезок [A, B]:= 1,05= 2,1A = 1,05
Так как отрезок B-A > E, то отрезок сужается.
Отложим по обе стороны от середины текущего отрезка [A, B] точки= (A + B)/2 - б = 1,5745= (A + B)/2 + б = 1,5755
и отстоящие от середины отрезка [A, B] на расстояние б
Вычислим значения функции в точках U1 и U2= F(U1) = -25,911196= F(U2) = -25,908796
Так как Q1 <= Q2, то далее сужается отрезок [A, B]:
A = A = 1,05= U2 = 1,5755
Шаг N: 2
Текущий отрезок [A, B]:
A = 1,05= 1,5755A = 0,5255
Так как отрезок B-A > E, то отрезок сужается.
Отложим по обе стороны от середины текущего отрезка [A, B] точки= (A + B)/2 - б = 1,31225= (A + B)/2 + б = 1,31325
и отстоящие от середины отрезка [A, B] на расстояние б
Вычислим значения функции в точках U1 и U2= F(U1) = -25,435999= F(U2) = -25,441991
Так как Q1 > Q2, то далее сужается отрезок [A, B]:= U1 = 1,31225= B = 1,5755
……………………
Шаг N: 7
Текущий отрезок [A, B]:= 1,492546875= 1,5099375A = 0,017390625
Так как отрезок B-A > E, то отрезок сужается.
Отложим по обе стороны от середины текущего отрезка [A, B] точки= (A + B)/2 - б = 1,5007421875= (A + B)/2 + б = 1,5017421875
и отстоящие от середины отрезка [A, B] на расстояние б
Вычислим значения функции в точках U1 и U2= F(U1) = -25,9999911865234= F(U2) = -25,9999514365234
Так как Q1 <= Q2, то далее сужается отрезок [A, B]:
A = A = 1,492546875= U2 = 1,5017421875
Шаг N: 8
Текущий отрезок [A, B]:
A = 1,492546875= 1,5017421875A = 0,00919531249999994
Так как отрезок B-A < E, то требуемая точность достигнута.
Точка минимума: Xmin = B = 1,5017421875
Значение функции в точке Xmin: F(Xmin) = -25,9999514365234
Поиск окончен.
.5.2 Поиск экстремума функции методом “Золотого сечения”
Описание алгоритма поиска
Исследуемая фунция: 10-48*x+16*x*x
Левая граница отрезка [A, B]: А = 1,05
Правая граница отрезка [А, B]: B = 2,1
Требуемая точность: E = 0,01
Разобьем текущий отрезок [A; B] точками X1 и X2, используя пропорцию золотого сечения:
|AB| / |X1 B| = |X1 B| / |A X1| (для точки X1)
|AB| / |A X2| = |A X2| / |X2 B| (для точки X2)
Здесь и далее X1 будет левее X2, a |AX1| = |X2B|,
т.е. если известна X1, то X2 = B - (X1 - A),
а если известна X2, то X1 = A + (B - X2)
|