Сибирский государственный индустриальный университет
Кафедра информационных технологий в металлургии
АЛГОРИТМЫ И ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ ОДНОМЕРНОЙ ОПТИМИЗАЦИИ
Методические указания к выполнению лабораторно-практических работ по курсу «Оптимизация в технике и технологиях»
Специальности: «Информационные системы и технологии» (071900), специализации «Прикладное математическое и программное обеспечение», по курсу «Методы оптимизации в металлургии»
специализации «Информационные технологии и предпринимательство в металлургии» (110107).
Новокузнецк
УДК 681.3.06
Алгоритмы и примеры решения задач одномерной оптимизации: Метод. указ./ Сост.: С.П Мочалов, И.А. Рыбенко.: СибГИУ.- Новокузнецк, 2004.- 18с., ил.
Изложены теоретические аспекты методов поиска экстремума функции одной переменной, представлены алгоритмы методов, приведены примеры решения задач одномерной оптимизации и варианты заданий.
Предназначены для студентов специальности «Информационные системы и технологии» (071900), специализации «Прикладное математическое и программное обеспечение» и «Металлургия черных металлов» (110100), специализации «Информационные технологии и предпринимательство в металлургии» (110107).
Рецензент - кафедра систем автоматизации (зав. кафедрой С.М.Кулаков)
Печатается по решению редакционно-издательского совета университета.
1. ОБЩИЕ ПОЛОЖЕНИЯ
В настоящем издании рассматривается решение наиболее простого типа задач оптимизации – поиск экстремума функции одной переменной. Данная задача формулируется как нахождение такого значения входной переменной объекта, которое соответствует наилучшему (минимальному или максимальному) значению целевой функции.
Хотя на практике задачи, в которых критерий задан функцией одной переменной, встречаются достаточно редко, анализ таких задач занимает центральное место в оптимизационных исследованиях. Это объясняется тем, что многие многомерные методы достаточно понятны, легко могут быть проиллюстрированы графически, что позволяет глубже понять сущность задач оптимизации и способствует приобретению навыков их решения.
Постановка задачи одномерной оптимизации заключается в нахождении точки х*, в которой целевая функция f(х*) принимает минимальное (максимальное) значение. Функция f(x) имеет локальный минимум в точке х0, если при e>0 существует окрестность [x-e; x+e ], такая, что для всех значений х в этой окрестности f(x) больше f(x*). Функция f(x) имеет глобальной минимум в точке х*, если для всех х справедливо неравенство f(x) >f(x*).
Аналитический анализ функции. Классический подход к задаче нахождения экстремума функции состоит в поиске условий, которым они должны удовлетворять. Необходимым условием экстремума в точке x* является равенство нулю первой производной, т.е. требуется решить уравнение f ’(x)=0.
Данному уравнению удовлетворяет как локальные и глобальные экстремумы, так и точки перегиба функции, поэтому приведенное условие является необходимым, но не достаточным.
С целью получения более определенных выводов требуется расчет значений вторых производных в точках, удовлетворяющих уравнению равенства нулю первой производной. При этом доказано, что минимуму функции соответствует положительной значение второй производной (f’”(x)>0), а максимальному – отрицательное (f’”(x)<0). Однако, если вторая производная равна нулю, ситуация остается неопределенной.
Классификация численных методов. Для определения экстремума функции одной переменной можно применять поисковые методы и методы с использованием производных. Среди методов поиска выделяют методы последовательного сокращения интервала (сканирования, локализации оптимума, половинного деления, золотого сечения, Фибоначчи) и методы точечного оценивания (Пауэлла, квадратичной аппроксимации, обратного переменного шага). На основе использования производных построены методы: средней точки, секущих, кубичной аппроксимации, Ньютона и др.
Целью выполнения лабораторно-практических работ является: формирование навыков решения оптимизационных задач с использованием различных методов поиска экстремума функции одной переменной.
2. ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ МЕТОДОВ ОДНОМЕРНОЙ ОПТИМИЗАЦИИ. АЛГОРИТМЫ И ПРИМЕРЫ РЕШЕНИЯ.
2.1 Поисковые методы
Основой всех одномерных поисковых методов является сокращение интервала неопределенности, а именно: построение последовательности отрезков [ak ; bk], стягивающихся в точке х* - минимуму функции на исходном отрезке. Методы оптимизации отличаются друг от друга лишь различным выбором точек на начальном интервале неопределенности: в методе половинного деления – число Е>0 – наименьший сдвиг по х, при котором еще можно отличить f(x) и f(x+Е); в методе золотого сечения – величина ; в методе Фибоначчи используются числа Фибоначчи.
Общая последовательность реализации методов такова: установление границ начального интервала, выбор точек в начальном интервале неопределенности; вычисление значений функции в этих точках и сравнение этих значений; проверка критерия окончания расчетов.
На этапе установления границ интервала на основе априорных данных или правил исключения строится относительно широкий интервал [a, b], содержащий точку оптимума x*. Обычно поиск граничных точек такого интервала проводится с помощью эвристических методов поиска, хотя в ряде случаев можно также использовать методы экстраполяции. Так как минимум x* на [a, b] неизвестен, то этот интервал называется интервалом неопределенности. Для унимодальной функции f(x) интервал неопределенности может быть сокращен с помощью вычисления значений функции в двух точках x, y Î [a, b]. При этом возможны два случая. Если f(x) > f(y), то новым интервалом неопределенности является [x, b], поэтому переприсвоение границ интервала на итерациях для этого случая осуществляется по правилу ak+1 = xk, а bk+1 = bk. При выполнении условия f(x) £ f(y), новым интервалом будет [a, y] и, соответственно, ak+1 = ak, bk+1 = yk.
2.1.1 Метод сканирования
Сканирование или равномерный поиск является примером одновременного поиска, когда точки, в которых вычисляется значение функции, выбираются заранее. Начальный интервал неопределенности [a1, b1] делится на отрезки величиной d сеткой из точек a1 + kd для k = 1, …, n. Тогда b1 = a1+ (n - 1)d. Затем функция f(x) вычисляется в каждой из n точек сетки и определяется , в которой она имеет наименьшее значение. Если f(x) унимодальна, то минимум принадлежит интервалу [ - d , + d].
После n вычислений функции интервал [a1, b1] сокращен до длины 2d. Так как n = [(b1 - a1)/d] - 1, то для достижения более высокой точности нахождения минимума необходимо большое число вычислений функции.
Алгоритм метода сканирования.
Начальный этап. Выбрать шаг разбиения d> 0 и начальный интервал [a1, b1]. Задать k = 1 и перейти к основному этапу.
Основной этап. Шаг 1. Вычислить значение х=a1 + kd и f(x). Если k=n, то перейти к шагу 2, иначе положить k=k+1 и вернуться к шагу 1.
Шаг 2. Выбрать минимальное значение функции f(x) и соответствующее ему значение . Минимум функции находится в интервале [ -d , + d].
Пример расчета экстремума функции методом сканирования.
Постановка задачи. Определить экстремум функции f(x)=(x-2)2+7.
Определение экстремума аналитически. Необходимым условием существования экстремума является равенство нулю первой производной. Решаем уравнение f'(x)=2(x-2)=0. Полученная точка х*=2 является точкой минимума, так как вторая производная в данной точке f''(x*) =2>0.
Реализация метода сканирования. Выбираем достаточно большой начальный интервал [-100, 100] и количество разбиений n=10. Результаты расчетов точек и значений функции представлены в таблице 2.1.
Таблица 2.1
Результаты расчетов методом сканирования.
№
х
f(x)
-100
-80
-60
-40
-20
Графический анализ функции Строим график функции на данном интервале (рис.2.1).
Рис.2.1
В результате реализации метода сканирования получена минимальная точка х*=0, значение функции в которой составляет f(x)=11. Границами интервала являются две точки по обе стороны от минимальной. Исходя из этого, делаем вывод, что экстремум находится в интервале [a1b1]=[-20,20]. Этот интервал можно использовать в качестве начального при реализации других методов одномерной оптимизации либо двойного сканирования.
2.1.2. Метод локализации оптимума.
С целью повышения точности и уменьшения числа расчетов целевой функции используется процедура двойного сканирования. В начале необходимо определить [ - d, + d], а затем вновь повторить сканирование. Этапы повторяются до достижения заданной точности. Этот метод называется локализацией оптимума. Он работает наиболее эффективно, если текущий интервал неопределенности делится на четыре части. При этом на начальном интервале вычисляются три точки на расстоянии (b1-a1)/4 друг от друга, затем рассчитывается значение функции в этих трех точках. Из полученных точек выбирается точка с минимальным значением функции и две точки по обе стороны от нее. Таким образом, получается новый интервал, для которого известны границы и середина интервала. После чего следует рассчитать только две новые точки по обе стороны от середины интервала. Расчет осуществляется до тех пор, пока длина конечного интервала не станет меньше заданной точности.
Алгоритм метода локализации оптимума.
Начальный этап. Выбрать начальный интервал [a1, b1] и точность поиска l. Задать k = 1, i=1 и перейти к основному этапу.
Основной этап. Шаг 1. Определить dk=(bk–ak)/4. Вычислить значение хik=ak + idk и f(xik). Если i=3, то перейти к шагу 2, иначе положить i=i+1 и вернуться к шагу 1.
Шаг 2. Выбрать минимальное значение функции f(xi) и соответствующее ему значение xik. Если i(min)=1, то aк+1= aк, bк+1=x2,k, x2, k+1= x1, k.. Если i(min)=2, то aк+1= x1, k, bк+1=x3,k, x2, k+1= x2, k.. Если i(min)=3, то aк+1= x2,к, bк+1=b,k, x2,k+1=x3,k, положить k=k+1 и перейти к шагу 3.
Шаг 3. Если (bk – ak)<l, то остановиться, минимум функции находится на интервале [bk – ak]. Иначе, перейти к шагу 4.
Шаг 4. Вычислить dk=(bk – ak)/4, x1,k=ak+dkи x3,k=ak+3dk, а также f(x1,k), f(x3,k). Перейти к шагу 2.
Пример расчета экстремума функции методом локализации оптимума.
Постановка задачи. Определить экстремум функции f(x)=(x-2)2+7 на полученном с использованием метода сканирования начальном интервале [-20;20] с точностью l=0,5.
Расчет экстремума методом локализации оптимума для заданной задачи реализован средствами ECXEL. Результаты расчета представлены в таблице 2.2.
Таблица 2.2
Расчет экстремума функции f(x)=(x-2)2+7 методом локализации оптимума.
№
а
b
x1
x2
x3
f(x1)
f(x2)
f(x3)
|b-a|
Критерий
-20.00
20.00
-10.00
0.00
10.00
151.00
11.00
71.00
40.00
не достигнут
-10.00
10.00
-5.00
0.00
5.00
56.00
11.00
16.00
20.00
не достигнут
-5.00
5.00
-2.50
0.00
2.50
27.25
11.00
7.25
10.00
не достигнут
0.00
5.00
1.25
2.50
3.75
7.56
7.25
10.06
5.00
не достигнут
1.25
3.75
1.88
2.50
3.13
7.02
7.25
8.27
2.50
не достигнут
1.25
2.50
1.56
1.88
2.19
7.19
7.02
7.04
1.25
не достигнут
1.56
2.19
1.72
1.88
2.03
7.08
7.02
7.00
0.63
не достигнут
1.88
2.19
1.95
2.03
2.11
7.00
7.00
7.01
0.31
достигнут
После семи итераций и восьми расчетов значений функции интервал неопределенности составил [1,88; 2,19]. При этом |b8 – a8|=0,31, что меньше заданной величины 0,5. В качестве точки минимума может быть взята середина интервала 2,03. Следует отметить, что искомый минимум находится в точке х*=2.0.
2.1.3. Метод половинного деления.
Метод половинного деления является процедурой последовательного поиска. Используется стратегия выбора точек x1 и y1 на интервале [a1, b1], направленная на минимизацию максимумов из x1 - a1 и b1 - y1. Это может быть достигнуто расчетом точек x1 и y1, симметрично расположенных на расстоянии e>0 от середины интервала каждая. Здесь число e>0 настолько мало, чтобы длина нового интервала e + (b1 - a1)/2 являлась достаточно близкой к значению (b1 - a1)/2 и в то же время, чтобы значения функций f(x1), f(y1) были различны.
Алгоритм метода половинного деления.
Начальный этап. Выбрать константу 2e > 0, допустимую конечную длину интервала l > 0, начальный интервал [a1, b1]. Задать k = 1 и перейти к основному этапу.
Основной этап. Шаг 1. Если bk - ak < l то остановиться; точка минимума принадлежит интервалу [ak, bk], иначе вычислить
xk = yk =
и перейти к шагу 2.
Шаг 2. Если f(xk) < f(yk) то ak+1 = ak и bk+1 = yk. В противном случае положить ak+1 = xk и bk+1 = bk . Заменить k = k + 1 и перейти к шагу 1.
Пример расчета экстремума функции методом половинного деления.
Постановка задачи. Определить экстремум функции f(x)=x2-3x+2 на интервале [-10;10] с точностью l=0,03 и константой различимости e=0,005 .
Результаты расчета с применением табличного процессора ECXEL по алгоритму, рассмотренному выше, представлены в таблице 2.3.
Таблица 2.3
Расчет экстремума функции f(x)=x2-3x+2 методом половинного деления.
№
аk
bk
xk
yk
f(xk)
f(yk)
|b-a|
Критерий
-10.000
10.000
-0.005
0.005
2.015
1.985
20.000
не достигнут
-0.005
10.000
4.993
5.003
11.948
12.018
10.005
не достигнут
-0.005
5.003
2.494
2.504
0.738
0.758
5.008
не достигнут
-0.005
2.504
1.244
1.254
-0.185
-0.190
2.509
не достигнут
1.244
2.504
1.869
1.879
-0.114
-0.106
1.259
не достигнут
1.244
1.879
1.557
1.567
-0.247
-0.246
0.635
не достигнут
1.244
1.567
1.401
1.411
-0.240
-0.242
0.322
не достигнут
1.401
1.567
1.479
1.489
-0.250
-0.250
0.166
не достигнут
1.479
1.567
1.518
1.528
-0.250
-0.249
0.088
не достигнут
1.479
1.528
1.498
1.508
-0.250
-0.250
0.049
не достигнут
1.479
1.508
1.488
1.498
-0.250
-0.250
0.030
достигнут
Таким образом, при поиске экстремума функции f(x)=x2-3x+2 методом половинного деления после десяти итераций и одиннадцати вычислений значений функции интервал неопределенности составил [1,479; 1,508]. При этом |b11 – a11|=0,030, что равно заданной величине l=0,3. Следует отметить, что искомый минимум находится в точке х*=1,5.
2.1.4. Метод золотого сечения.
Представляет дальнейшее развитие метода половинного деления, когда при выполнении каждой итерации осуществляется только один раз расчет значения целевой функции.
Основные соотношения метода вытекают из следующих предпосылок. Пусть на k-ой итерации метода золотого сечения интервал неопределенности равен [ak, bk]. Точки xk, yk выбираются на основе следующих условий.
xk=ak+(1-a)×(bk-ak)
yk=ak+a×(bk-ak), где aÎ (0, 1)– коэффициент сжатия.
Длина нового интервала неопределенности определяется следующим способом: bk+1 - ak+1 = a(bk - ak)
Кроме того, должны выполняться равенства
bk - xk = yk - ak; xk = ak + (1 - a)(bk - ak); yk = ak +a(bk - ak).
Для новой итерации xk+1 и yk+1 выбираются так, что xk+1 совпадает с yk, или yk+1 совпадает с xk. Это условие обеспечивает возможность того, что на (k +1)-й итерации потребуется только одно новое вычисление функции.
При сравнении значений функции в двух точках возможны два варианта. 1. Если f(xk) > f(yk), то в этом случае ak+1 = xk и bk+1 = bk. При xk+1 = yk имеем yk+1 = ak+1 + a(bk+1 - ak+1) = xk + a(bk+1 - ak+1). Подставляя в это выражение для xk и yk уравнения из предыдущего первого условия, получим, что a2+ a - 1 = 0.
2. Если f(xk) £ f(yk), то в этом случае ak+1 = ak и bk+1 = yk. При yk+1 = xk имеем xk+1 = ak+1 + (1 - a)(bk+1 - ak+1) = ak+ (1 - a)(yk - ak). Подставляем в это выражение для xk и yk уравнения из предыдущего первого условия также получим a2+ a - 1 = 0.
Корнями уравнения a2+ a- 1=0 являются a= 0.618 и a= -1.618. Так как a должно быть из интервала (0, 1), то принимаем a= 0.618. На первой итерации метода необходимы два вычисления функции в точках x1 и y1, но на каждой последующей требуется только одно вычисление, так как либо xk+1 = yk, либо yk+1 = xk.
Алгоритм метода золотого сечения.
Начальный этап. Задается конечная длина интервала неопределенности l > 0, начальный интервал [a1, b1]. Вычислить x1 = a1 + (1 - a)(b1 - a1) и y1 = a1 + a(b1 - a1), приняв a = 0.618. Найти f(x1), и f(y1). Задать k = 1 и перейти к основному этапу.
Основной этап. Шаг 1. Если bk - ak < 1, то остановиться; оптимальная точка принадлежит интервалу [ak, bk]. При f(xk) > f(yk), перейти к шагу 2, если f(xk) £ f(yk), то к шагу 3.
Шаг 3. Положить аk+1 = ak, bk+1 = yk, yk+1 = xk, f(yk+1) = f(xk). Вычислить xk+1 = ak+1 + (1-a)(bk+1 - ak+1). Вычислить f(xk+1) и перейти к шагу 4.
Шаг 4. Заменить k = k + 1 и перейти к шагу 1.
Пример расчета экстремума функции методом золотого сечения.
Постановка задачи. Минимизировать f(x) = x2 + 2x на интервале xÎ[-3; 5] сократив его до величины l £ 0,2.
Рассчитываем минимум функции f(x) = x2 + 2x с использованием табличного процессора ECXEL по рассмотренному выше алгоритму. Результаты расчетов представлены в таблице 2.4.
Таблица 2.4
Расчет экстремума функции f(x)= x2 + 2x методом золотого сечения.
№
аk
bk
xk
yk
f(xk)
f(yk)
|b-a|
Критерий
-3.000
5.000
0.056
1.944
0.115
7.667
8.000
не достигнут
-3.000
1.944
-1.111
0.056
-0.988
0.116
4.944
не достигнут
-3.000
0.056
-1.832
-1.111
-0.307
-0.988
3.056
не достигнут
-1.832
0.056
-1.111
-0.665
-0.988
-0.888
1.889
не достигнут
-1.832
-0.665
-1.387
-1.111
-0.851
-0.988
1.167
не достигнут
-1.387
-0.665
-1.111
-0.941
-0.988
-0.996
0.721
не достигнут
-1.111
-0.665
-0.941
-0.835
-0.996
-0.973
0.446
не достигнут
-1.111
-0.835
-1.006
-0.941
-1.000
-0.996
0.276
не достигнут
-1.111
-0.941
-1.046
-1.006
-0.998
-1.000
0.170
достигнут
После восьми итераций интервал неопределенности составил [-1,111; -0,941]. При этом |b9 - a9|=0,170, что меньше заданной величины 0,2. В качестве точки минимума может быть взята середина интервала -1,026. Искомый минимум равен ‑1,0.
2.1.5. Метод Фибоначчи.
В отличие от рассмотренных поисковых процедур в методе Фибоначчи используется числовая последовательность, поэтому общее число n вычислений функции заранее задается. Это объясняется тем, что точки, в которых производятся вычисления, определяются по зависящим от n формулам
xk = ak + (bk - ak), k = 1, …, n - 1;
yk = ak + (bk - ak), k = 1, …, n - 1.
где Fj =Fj-1 + Fj-2, j = 3, 4, …; F0=F1=1 называется последовательностью чисел Фибоначчи (1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,...). В этом методе длина интервала неопределенности на k-й итерации сократится от b1 - a1 до (b1 - a1)/Fn. Поэтому для требуемой точности можно заранее рассчитать величину Fn и количество вычислений функции.
Алгоритм метода Фибоначчи.
Начальный этап. Задается конечная длина интервала l > 0 и константа различимости e > 0, начальный интервал [a1, b1]. Выбрать число вычислений функции n так, чтобы Fn > (b1 - a1)/l. Вычислить x1 = a1 + (Fn-2/Fn)(b1 - a1), y1 = a1+(Fn-1/Fn)(b1-a1); f(x1); f(y1) . Принять k = 1 и перейти к основному этапу.
Основной этап. Шаг 1. Если f(xk) > f(yk), то перейти к шагу 2, если f(xk) £ f(yk), то к шагу 3.
Шаг 2. Принять ak+1 = xk; bk+1 = bk. Затем вычислить xk+1 = yk, yk+1 = ak+1 + (Fn-k-1/Fn-k)×(bk+1 - ak+1). Если k = n - 2, то перейти к шагу 4.
Шаг 3. Принять ak+1 = ak; bk+1 = yk; xk+1 =ak+1 + (Fn-k-2/Fn-k)×(bk+1 - ak+1). Если k = n - 2, то перейти к шагу 5, иначе вычислить f(xk+1) и перейти к шагу 4.
Шаг 4. Присвоить k = k + 1 и перейти к шагу 1.
Шаг 5. Принять xn= xn-1 и yn= xn+e . Если f(xn) > f(yn) , то an= xnи bn= bn‑1. При f(xn) £ f(yn) вычислить an= an-1 и bn= уn и остановиться.
Оптимальное решение содержится в интервале [an, bn].
Пример расчета экстремума функции методом Фибоначчи
Постановка задачи. Минимизировать f(x) = x2- 5x+8на интервале [-5, 5] с точностью l =0,25.
Результаты расчетов представлены в таблице 2.5.
Таблица 2.5
Расчет минимума функции f(x) = x2- 5x+8методом Фибоначчи.
№
аk
bk
xk
yk
f(xk)
f(yk)
|b-a|
Критерий
-5.000
5.000
-1.182
1.182
15.306
3.488
10.000
не достигнут
-1.182
5.000
1.182
2.636
3.488
1.769
6.182
не достигнут
1.182
5.000
2.636
3.545
1.769
2.843
3.818
не достигнут
1.182
3.545
2.091
2.636
1.917
1.769
2.364
не достигнут
2.091
3.545
2.636
3.000
1.769
2.000
1.455
не достигнут
2.091
3.000
2.455
2.636
1.752
1.769
0.909
не достигнут
2.091
2.636
2.273
2.455
1.802
1.752
0.545
не достигнут
2.273
2.636
2.455
2.455
1.752
1.752
0.364
не достигнут
2.455
2.636
2.455
2.636
1.752
1.769
0.182
достигнут
Конечный интервал неопределенности равен [2,455; 2,636], длина которого l = 0,182. Середина интервала равна 2,545. Точка минимума х*=2,5.
2.2. Методы точечного оценивания.
2.2.1. Метод обратного переменного шага.
Предполагает задание начальной координаты x1 и приращения Dx. Сущность метода заключается в следующем. Рассчитывается координата xk+1 = xk + Dx Если f(xk+1) < f(xk), то шаг считается “удачным” и его значение увеличивается Dx = aDx, a > 1. Если f(xk+1) £ f(xk), то шаг считается “неудачным”. Поэтому направление изменяется на противоположное, а значение шага уменьшается на величину b < 1 и будет равно Dx =-bDx. Затем проверяется условие окончания |xk+1 - xk| £ e и поиск продолжается.
Алгоритм метода обратного переменного шага.
Начальный этап. Выбрать начальную точку x1 и приращение Dx. Задать коэффициенты деформации шага a > 1, 0<b < 1 и точность поиска e>0. Положить k = 1 и перейти к основному этапу.
Основной этап. Шаг 1. Если Dx < e то остановиться; точкой минимума является точка xk, иначе вычислить xk+1 = xk+Dx и перейти к шагу 2.
Шаг 2. Если f(xk) > f(хk+1), то Dх=a Dx. В противном случае положить Dx =-bDx. Заменить k = k + 1 и перейти к шагу 1.
Пример расчета экстремума функции методом обратного переменного шага.
Постановка задачи. Рассчитать минимум функции f(x) = x2– 10х+3с точностью e=0,1. Начальную точку принять равной x1=-1.
Выбираем следующие параметры метода: начальный шаг - Dх=1, коэффициенты растяжения и сжатия шага - a =1,5; b=0,4. Результаты расчета представлены в таблице 2.6.
Таблица 2.6
Расчет минимума функции f(x) = x2– 10х+3методом обратного переменного шага.
№
xk
Δx
f(xk)
Критерий
-1.000
1.000
14.000
не достигнут
0.000
1.500
3.000
не достигнут
1.500
2.250
-9.750
не достигнут
3.750
3.375
-20.438
не достигнут
7.125
-1.350
-17.484
не достигнут
5.775
-2.025
-21.399
не достигнут
3.750
0.810
-20.438
не достигнут
4.560
1.215
-21.806
не достигнут
5.775
-0.486
-21.399
не достигнут
5.289
-0.729
-21.916
не достигнут
4.560
0.292
-21.806
не достигнут
4.852
0.437
-21.978
не достигнут
5.289
-0.175
-21.916
не достигнут
5.114
-0.262
-21.987
не достигнут
4.852
0.105
-21.978
не достигнут
4.957
0.157
-21.998
не достигнут
5.114
-0.063
-21.987
достигнут
Таким образом, в результате реализации метода обратного переменного шага за шестнадцать итераций определена минимальная точка х*=5,114 с точностью 0,063.
2.2.2. Метод квадратичной аппроксимации.
Метод основан на предположении о том, что в ограниченном интервале можно аппроксимировать функцию квадратичным полиномом, который используется для оценивания координаты оптимума. Оценка оптимального значения рассчитывается по формуле:
= (x2 + x1)/2 - (a1/2a2).
Предполагается, что заданы x1, x2, x3, и известны значения функции в этих точках f1, f2, f3, а аппроксимирующая функция
Пример расчета экстремума функции методом квадратичной аппроксимации.
Постановка задачи.Найти минимум функции f(x) = x2 + 5x методом квадратичной аппроксимации.
Для реализации метода необходимо выбрать три точки, по который будет производиться аппроксимация. Задаем следующие значения: x1=-5, x2=0, x3=5, Результаты расчета, реализованного средствами ECXEL, представлены в таблице 2.7
Таблица 2.7
Расчет экстремума функции f(x) = x2 + 5x методом квадратичной аппроксимации
x1
x2
x3
f(x1)
f(x2)
f(x3)
a0
a1
a2
xопт
-5,00
0,00
5,00
0,00
0,00
50,00
0,00
0,00
3,00
-2,50
Таким образом, с использованием метода квадратичной аппроксимации за одну итерацию найдена точка минимума xопт=-2,5, которая совпадает с точкой экстремума x*=-2,5, полученной аналитически.
2.2.3. Метод Пауэлла.
Заключается в последовательном применении процедуры оценивания с использованием квадратичной аппроксимации. Схему алгоритма можно описать следующим образом.