- •1. Аналитический анализ функции
- •2. Графический анализ функции
- •3. Поиск минимума методом обратного переменного шага
- •4. Поиск минимума методом Пауэлла
- •5. Определение начального отрезка унимодальности
- •6. Расчёт минимума функции методом локализации оптимума
- •7. Расчёт минимума функции методом половинного деления
- •8. Поиск минимума функции методом золотого сечения
- •9. Расчёт минимума функции методом Фибоначчи
5. Определение начального отрезка унимодальности
Для определения отрезка унимодальности используем начальные вычисления метода обратного переменного шага для заданной начальной точки x0 = 14 и начальном шаге ∆ = -8. f(x0) = f(14) = 322; f(x0 + Δ0) = f(14 - 8) = 90 ; f(x0 + Δ0) < f(x0) ; f(x0 + 2 Δ0) = f(14 - 16) =-16 ; f(-2) < f(6) ; f(x0 + 3 Δ0) = f(14 - 24) = 10 ; f(-10) > f(-2) и т.о. точка минимума 6 > x* >-10 . Вывод: минимум функции находится на отрезке [-10, 6] , который можно принять в качестве начального отрезка унимодальности.
6. Расчёт минимума функции методом локализации оптимума
Делим исходный отрезок на четыре равные части и рассчитываем значения функции в полученных точках:
y1 =f(x1) =f(2) = 22
y2 =f(x2) =f(-2) = -16
y3 =f(x3) =f(-6) = -18
Учитывая, что значения функции на концах исходного отрезка известны и минимум достигается в точке x3= -18, получаем новый отрезок унимодальности [-10 ; -2]. Проверяем условие окончания поиска: Δ1 = b1-a1= -2+10 > ε = 0,5 и продолжаем решение.
Делим новый отрезок на четыре равные части и рассчитываем значения функции в полученных точках.
y1 =f(x1) =f(-4) = -20
y2 =f(x2) =f(-6) = -18
y3 =f(x3) =f(-8) = -8
Поскольку минимум достигается в точке x1 =-4, получаем новый отрезок унимодальности [-6 ; -2]. Проверяем условие окончания поиска: Δ2 = b2-a2= -2+6 > ε = 0,5 и продолжаем решение.
Вновь делим новый отрезок на четыре равные части и рассчитываем значения функции в полученных точках:
y1 =f(x1) =f(-3) = -18
y2 =f(x2) =f(-4) = -20
y3 =f(x3) =f(-5) = -20
Поскольку минимум достигается в точке x2 =-4, получаем новый отрезок унимодальности [-6 ; -4]. Проверяем условие окончания поиска: Δ3 = b3-a3= -4+6 > ε = 0,5 и продолжаем решение.
Вновь делим новый отрезок на четыре равные части и рассчитываем значения функции в полученных точках:
y1 =f(x1) =f(-4,5) = -20,25
y2 =f(x2) =f(-5) = -20
y3 =f(x3) =f(-5,5) = -19,25
Поскольку минимум достигается в точке x1 =-4,5, получаем новый отрезок унимодальности [-5 ; -4]. Проверяем условие окончания поиска: Δ4 = b4-a4= -4+5 > ε = 0,5 и продолжаем решение.
Вновь делим новый отрезок на четыре равные части и рассчитываем значения функции в полученных точках:
y1 =f(x1) =f(-4,25) = -20,19
y2 =f(x2) =f(-4,5) = -20,25
y3 =f(x3) =f(-4,75) = -20,19
Поскольку минимум достигается в точке x2 =-4,5, получаем новый отрезок унимодальности [-4,75 ; -4,25]. Проверяем условие окончания поиска: Δ5 = b5-a5= -4,25+4,75 = ε = 0,5 и продолжаем решение.
Вновь делим новый отрезок на четыре равные части и рассчитываем значения функции в полученных точках:
y1 =f(x1) =f(-4,375) = -20,23
y2 =f(x2) =f(-4,5) = -20,25
y3 =f(x3) =f(-4,625) = -20,23
Поскольку минимум достигается в точке x2 =-4,5, получаем новый отрезок унимодальности [-4,625 ; -4,375]. Проверяем условие окончания поиска: Δ6 = b6-a6= -4,375+4,625 < ε = 0,5 , условие окончания поиска выполняется.
Вывод:
Конечный отрезок унимодальности [-4,625 ; -4,375]. Принимаем за оптимальную точку его середину x* = -4,5. Значение функции в этой точке равно -20,25, количество итераций – 6 при 13 вычислениях функции.
7. Расчёт минимума функции методом половинного деления
Выбираем значение окрестности равной константе различимости δ= 0,03 < ε.
Выбираем две точки, симметрично расположенные относительно середины отрезка [a0, b0]:
x1(0) = (-10 + 6)/2 – 0,03 = -2,03
x2(0) = (-10 + 6)/2 + 0,03 = -1,97
и рассчитываем значение функции в этих точках:
y1(0) =f(x1(0)) = (-2,03)2 + 9 * (-2,03) = -14,15
y2(0) =f(x2(0)) = (-1,97)2 + 9 * (-1,97) = -13,85
Так как y1(0) < y2(0), определяем границы нового отрезка:
a1 = a0 = -10
b1 = x2(0) = -1,97
Вновь выбираем две точки на отрезке [a1, b1]:
x1(1) = (-10 - 1,97)/2 – 0,03 = -6,01
x2(1) = (-10 - 1,97)/2 + 0,03 = -5,95
и рассчитываем значение функции в этих точках:
y1(1) = (-6,01)2 + 9 * (-6,01) = -17,97
y2(1) = (-5,95)2 + 9 * (-5,95) = -18,15
Поскольку y1(1) > y2(1) , границы нового отрезка:
a2 = x1(1) = -6,01
b2 = b1 = -1,97
Проверяем условие окончания оптимизации и так как Δ2 = b2 - a2= -1,97+6,01= 4,04 >0,5 , продолжаем поиск.
Отрезок [a2, b2] = [x1(1), b1] = [-6,01, -1,97]
x1(2) = -4,02
x2(2) = -3,96
y1(2) = -20,02
y2(2) = -19,96
a3 = a2 = -6,01
b3 = x2(2) = -3,96
Проверяем условие окончания оптимизации и так как Δ3 = b3 – a3= -3,96+6,01= 2,05 >0,5 , продолжаем поиск.
Отрезок [a3, b3] = [a2, x2(2)] = [-6,01, -3,96]
x1(3) = -5,01
x2(3) = -4,95
y1(3) = -19,99
y2(3) = -20,05
Отрезок [a4, b4] = [x1(3), b3] = [-5,01, -3,96]
x1(4) = -4,51
x2(4) = -4,45
y1(4) = -20,2499
y2(4) = -20,2475
Отрезок [a5, b5] = [a4, x2(4)] = [-5,01, -4,45]
x1(5) = -4,76
x2(5) = -4,7
y1(5) = -20,19
y2(5) = -20,21
Отрезок [a6, b6] = [x1(5), b5] = [-4,76, -4,45]
Проверяем условие окончания оптимизации и так как Δ6 = b6 – a6= -4,45+4,76= 0,31 < ε = 0,5 условие окончания поиска выполняется.
За точку локального минимума, найденную с заданной точностью принимаем середину отрезка [a6, b6]:
x* ≈ (a6 + b6)/2 = (-4,76-4,45)/2 = -4,6
Значение функции в этой точке:
f(x*) = (-4,6)2 + 9 * (-4,6) = 20,24
Конечный отрезок унимодальности [-4,76 , -4,45]. Принимаем за оптимальную точку середину этого отрезка x* = -4,6. Значение функции в этой точке равно -20,24, количество итераций равно 6 при 12 вычислений функции.
