русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Алгоритм метода обратного переменного шага.


Дата добавления: 2015-07-23; просмотров: 7477; Нарушение авторских прав


Новокузнецк


Министерство образования Российской Федерации

 

Сибирский государственный индустриальный университет

 

Кафедра информационных технологий в металлургии

 

 

АЛГОРИТМЫ И ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ ОДНОМЕРНОЙ ОПТИМИЗАЦИИ

 

Методические указания к выполнению лабораторно-практических работ
по курсу «Оптимизация в технике и технологиях»

Специальности: «Информационные системы и технологии» (071900), специализации «Прикладное математическое и программное обеспечение»,
по курсу «Методы оптимизации в металлургии»

Специальности: «Металлургия черных металлов» (110100),

специализации «Информационные технологии и предпринимательство
в металлургии» (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]. При этом |b8a8|=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]. При этом |b11a11|=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.

Шаг 2. Положить ak+1 = xk; bk+1 = bk; xk+1 = yk; f(xk+1) = f(yk). Вычислить yk+1 = ak+1 + a(bk+1 - ak+1).

Вычислить f(yk+1) и перейти к шагу 4.

Шаг 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, а аппроксимирующая функция

g(x) = a0 + a1(x - x1) + a2(x - x1)(x - x2)

совпадает с f(x) в трех указанных точках.

Коэффициенты полинома определяются уравнениями

a0 = f1; a1 = (f2 - f1)/(x2 - x1); a2 = 1/(x3 - x2)×[(f3 - f1)/(x3 - x1) - (f2 - f1)(x2 - x1)].

Для унимодальных функций оказывается приемлемой для оценки оптимума x*.

Алгоритм метода квадратичной аппроксимации.

Шаг 1. Задать x1, x2, x3, и вычислить значения функции в этих точках f(х1), f(х2), f(х3).

Шаг 2. Рассчитать a0 = f(х1); a1 = (f(х2) - f(х1))/(x2 - x1);
a2 = 1/(x3 - x2)×[(f(х3) - f(х1))/(x3 - x1) - (f(х2) - f(х1))(x2 - x1)].

Шаг 2. Вычислить оптимальное решение: = (x2 + x1)/2 - (a1/2a2).

Пример расчета экстремума функции методом квадратичной аппроксимации.

Постановка задачи.Найти минимум функции 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. Метод Пауэлла.

Заключается в последовательном применении процедуры оценивания с использованием квадратичной аппроксимации. Схему алгоритма можно описать следующим образом.



<== предыдущая лекция | следующая лекция ==>
Рабочее задание | Алгоритм метода Пауэлла


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.023 сек.