Реферат: Одномерная оптимизация функций методом золотого сечения
d0 = b0 – a0 .
После первого шага оптимизации получается новый интервал неопределенности – отрезок [a1, b1 ].
Можно показать, что точка x1 делит этот отрезок в требуемом отношении, при этом
b1 – x1 = k2 d1 , d1 = b1 – a1 .
Для этого проведем очевидные преобразования:
b1 – x1 = x2 – x1 = (b0 – a0 ) – (x1 – a0 ) – (b0 – x2 ) = d0 – k2 d0 - k2 d0 = k3 d0 ,
d1 = x2 – a0 = k1 d0 ,
b1 – x1 = k3 (d1 /k1 ) = k2 d1 .
Вторая точка деления x3 выбирается на таком же расстоянии от левой границы отрезка, т.е. x3 – a1 = k2 d1 .
И снова интервал неопределенности уменьшается до размера
d2 = b2 – a2 = b1 – x3 = k1 d1 = kd0 .
Используя полученные соотношения, можно записать координаты точек деления y и z отрезка [ak , bk ] на k +1 шаге оптимизации (y < z):
y = k1 ak + k2 bk ,
z = k2 ak + k1 bk .
При этом длина интервала неопределенности равна
dk = bk – ak = kd0 .
Процесс оптимизации заканчивается при выполнении условия dk < ε. При этом проектный параметр оптимизации составляет ak < x < bk . Можно в качестве оптимального значения принять x = ak (или x = bk , или x = (ak + bk )/2 и т.п.).
Блок-схема алгоритма
3. Программная часть
3.1 Текст программы в среде MatLab
А. Программа вычисления максимума:
function Maximum(a,b,eps)
%Maximum(a,b,eps) функция нахождения максимума функции f(x)
% методом "золотого сечения" на отрезке [a, b] с точностью eps.
% Функция f(x) задаётся в M-файле, находящимся в той же дирекктории.
% (!) Для правильной работы функции необходимо, чтоб a<b и
% искомое значение было б единствено на [a, b].
%--------------------------------------------