Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Исследование методов оптимизации

Тип Реферат
Предмет Информатика
Просмотров
1191
Размер файла
446 б
Поделиться

Ознакомительный фрагмент работы:

Исследование методов оптимизации

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

«ХАРЬКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ»

Факультет информатики и управления

Кафедра экономической кибернетики и маркетингового менеджмента

КУРСОВАЯ РАБОТА

По математическому программированию

Исследование методов оптимизации

Харьков 2009


РЕФЕРАТ

Данная курсовая работа содержит : 41 страницу, 16 таблиц, 6 графиков.

В курсовой работе рассмотрены теоретические основы двух методов оптимизации математического программирования :

- метод Нелдера-Мида ;

- градиентный метод с дроблением шага.

Произведена минимизация исследуемой функции указанными методами. Выявлена зависимость числа итераций от заданной точности. Сопоставлена трудоемкость и эффективность оптимизации заданной функции различными методами (градиентным и методом Нелдера-Мида).

Ключевые термины:

Градиент – вектор первых частных производных функции.

Линии уровня – множества точек, в которых функция принимает постоянные значения, т.е.

Методы нулевого порядка – методы, которые не предполагают вычисления производной для поиска оптимума.

Методы первого порядка – методы, в которых кроме вычисления функции в любой точке предлагается вычисление первых производных.


СОДЕРЖАНИЕ

1. Введение

2. Математическое описание методов оптимизации

2.1 Метод Нелдера-Мида

2.2 Градиентный метод с дроблением шага

3. Решение задачи минимизации для каждого из методов

3.1 Метод Нелдера-Мида

3.2 Градиентный метод с дроблением шага

4. Графическая интерпретация решения задачи

5. Аналитическое исследование методов

6. Заключение

7. Приложение

8. Список литературы


СПИСОК УСЛОВНЫХ ОБОЗНАЧЕНИЙ

- точка

- длинна шага

- вектор градиент

E - точность

N – количество итераций

Д – матрица координат симплекса

t – длинна ребра симплекса


1. ВВЕДЕНИЕ

Объектом исследования предмета математическое программирование являются задачи оптимизации.

Оптимизация подразумевает нахождение наилучшего варианта среди всех существующих. В любой практической оптимизационной задаче существует много совпадающих этапов. Наиболее важным этапом является моделирование рассматриваемой физической ситуации с целью получения математической функции, которую необходимо минимизировать, а также определения ограничений, если таковые существуют. Затем следует выбрать подходящую процедуру для осуществления минимизации. Эта процедура должна быть реализована на практике, что во многих реальных случаях вынуждает использовать ЭВМ для выполнения большого объема вычислений.

Универсальных методов, подходящих для поиска экстремума абсолютно любой функции не существует. Данная курсовая работа ставит себе целью исследовать метод оптимизации нулевого порядка – метод Нелдера-Мида, а также метод оптимизации первого порядка – градиентный метод с дроблением шага на примере конкретной функции. Таким образом, получив практические результаты, можно будет сравнить эффективность рассматриваемых методов, применяемых к исследуемой функции.

ПОСТАНОВКА ЗАДАЧИ ( Вариант задания 1)

Исследовать функцию типа :

Используемые методы минимизации :

1. Метод: Нелдера-Мида.

2. Метод: Градиентный с дроблением шага.

Необходимо :

1. Решить задачу минимизации , начав итерации из выбранной начальной точки x0=(1;1) заданными по варианту методами, необходимая точность решения . Привести таблицу результатов расчета типа: Итерация: - точка: значение: критерий: .

2. Рассчитать 3 линии уровня функции и изобразить их на графике.

3. Отобразить на графиках линий уровня для каждого из заданных методов траекторию движения по итерациям (траекторию спуска).

4. Выявить зависимость числа итераций N от заданной точности E, значения точности: , , , , , . Привести таблицу результатов как в п.1 для каждого значения E.

5. Сравнить эффективность рассмотренных в варианте методов по числу итераций N, построить графики N=F(E).


2. МАТЕМАТИЧЕСКОЕ ОПИСАНИЕ МЕТОДОВ ОПТИМИЗАЦИИ

2.1 Метод Нелдера-Мида

Вводится симплекс, координаты вершин которого заданы таблицей (одна из вершин в начале координат).

t – некоторое выбранное число.

Если n = 2, то при t = 1 имеем

Расположение симплекса показано на рисунке 2.1


Рисунок 2.1- Начальное расположение симплекса


Легко убедиться в том, что если координаты вершин симплекса задать в соответствии с матрицей Д0 , то расстояние между двумя любыми вершинами симплекса всегда будет равно выбранной константе t независимо от размерности задачи n .

Действительно, расстояние между любой вершиной xj , j= 2,3,.., n+1, и вершиной x1 равно

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

Вычислим значения оптимизируемой функции в точках и переномеруем точки так, чтобы выполнялись неравенства :

.

Найдем координаты центра тяжести фигуры , получающейся в результате удаления вершины :

Осуществим отражение вершины относительно центра тяжести. Получим точку

.

Если a=1 , то получим зеркальное отражение. В одномерном случае процедура отражения, обеспечивающая получение точки , симметричной точке относительно иллюстрируется рис. 2.2


Рисунок 2.2 - Построение точки

Сравним теперь между собой значения

Возможны следующие варианты

а). В этом случае выполняется растяжение симплекса и отыскивается точка

Параметр обычно принимается равным 1,5.

Полученная точка заменяет , если . В противном случае для замены используется точка .

б) . При этом реализуется отражение. Точка заменяет .

в) . В этом случае осуществляется сжатие и отыскивается точка

Параметр обычно принимается равным 0,5. Точка заменяет .

г) . При этом осуществляется редукция (уменьшение размера симплекса путем приближения всех его вершин к вершине ). Координаты вершин нового симплекса рассчитываются по формулам

Критерий останова вычислительной процедуры имеет вид :

Критерий останова J является составным. При этом его компоненты имеют различный вес в зависимости от того, каков характер поведения оптимизируемой функции в окрестности экстремума. Если в районе экстремума оптимизируемая функция изменяется по типу «глубокая впадина», то больший вклад в численное значение критерия J вносит первое слагаемое, а второе при этом быстро уменьшается. Напротив, если оптимизируемая функция изменяется по типу «пологое плато», то первое слагаемое быстро становится малым и поэтому второе слагаемое вносит больший вклад в величину критерия J.

Модификация метода

Описанный «классический» вариант построения алгоритма метода Нелдера-Мида обладает конструктивным недостатком, который состоит в следующем. Предположим, что оптимизируемая функция, для простоты, двух переменных имеет вид глубокого оврага с очень пологим дном. Тогда может случиться так, что симплекс, который в рассматриваемом случае представляет собой треугольник, в какой-то момент двумя вершинами ляжет на дно оврага, а третья окажется на его склоне. При этом на очередном шаге произойдет переброс этой вершины на другой склон, а затем редукция или сжатие симплекса. Если склон оврага крутой, то эта процедура повторится много раз, в результате чего симплекс сожмется и может сработать критерий останова, хотя до точки минимума еще может быть очень далеко. Естественное усовершенствование алгоритма состоит в следующем. После срабатывания критерия останова целесообразно построить над центром тяжести сжавшегося симплекса новый, размеры которого соответствуют исходному симплексу. Пусть координаты центра тяжести сжавшегося симплекса образуют вектор

.

Найдем теперь координаты точки такой, что центр тяжести симплекса с длиной ребра, равной t , использующего вершину в качестве начальной, совпадал бы с . Матрица координат указанного симплекса имеет вид

(2.1)

Координаты центра тяжести этого симплекса образуют вектор

Теперь координаты точки найдем из равенства =, откуда

где

Подставляя вычисленные значения в выражение (2.1) , получим требуемый симплекс, используя который продолжим процедуру поиска минимума. С другой стороны, для продолжения процедуры в качестве начальной точки может быть использован центр тяжести «сжавшегося» симплекса. Возникающее при этом смещение нового симплекса относительно сжавшегося (точки предполагаемого останова) во многих случаях может даже оказаться полезным. Эту процедуру считаем законченной, если после очередного сжатия алгоритм приведет в точку, расстояние от которой до точки предыдущего сжатия не превосходит некоторого достаточно малого .

2.2 Градиентный метод с дроблением шага

Большей эффективностью обладают итерационные процедуры, в которых приближение к минимуму осуществляется сразу по всем переменным. При этом задача состоит в нахождении последовательности векторов таких, что

(2.2)

Методы построения таких последовательностей называют методами спуска. Пусть Поставим задачу отыскания последовательности ., сходящейся к .

Выберем произвольным образом точку , направление и сконструируем луч

. (2.3)

Рассмотрим вопрос о выборе направления , обеспечивающего (2.2). Для этого изучим поведение вдоль луча . Имеем

Введем

(2.4)

Здесь

В соответствии с (2.3)

Тогда

Вычислим (2.5)

Теперь, чтобы для любого обеспечить отрицательность (2.5), достаточно положить , где произвольная положительно определенная матрица. Тогда

При этом (2.6)

Выбрав каким-либо образом , получим Затем аналогично рассчитаем

Общее рекуррентное соотношение имеет вид :

(2.7)

Различные варианты градиентных процедур отличаются друг от друга способом выбора .

Полученное соотношение (2.7) обеспечивает построение последовательности точек , сходящейся к точке , минимизирующей . Понятно, что каждая из точек этой последовательности может рассматриваться как некоторое приближение к точке минимума , положение которого, вообще говоря, остается неизвестным в ходе всей процедуры спуска. Поэтому для всех таких процедур принципиальной остается проблема останова. В вычислительной практике часто используются следующие критерии останова:

(2.8)

(2.9)

где и -некоторые достаточно малые числа .

Понятно, что критерий (2.8) хорош в тех случаях, когда функция в окрестности минимума, используя ранее введенную классификацию, имеет характер «глубокой» впадины. С другой стороны, если функция ведет себя как «пологое плато», то более предпочтительным является критерий (2.9).Аналогом критерия (2.8) является другое часто применяемое правило останова :

, (2.10)

использующее необходимое условие экстремума функции.Очевидным недостатком критериев (2.8)-(2.10) является то, что их качество существенно зависит от абсолютных значений величины и компонентов векторов ,.Более универсальными являются относительные критерии :

(2.11)

(2.12)

(2.13)

Заметим, что очень часто на практике используются составные критерии, представляющие собой линейную комбинацию критериев (2.11)-(2.13), например,

Иногда применяют другой вариант построения составного критерия :

При реализации градиентного метода с дроблением шагав качестве выбирают единичную матрицу, то есть

а длину шага определяют путем проверки некоторого неравенства. При этом основное рекуррентное соотношение (2.7) приобретает вид :

Ясно, то если , выбирать достаточно малым, то это обеспечит убывание , но потребуется весьма большое число шагов. Если же неосторожно выбрать большим , то можно проскочить минимум, а это опасно в связи с возможным осциллированием. Для выбора шага используется правило Голдстейна-Армийо :

а) (2.14)

б) (2.15)

Выполнение условия а) обеспечивает выбор не слишком большим. Выполнение условия б) не дает возможность выбрать слишком малым.

Практическая процедура строится следующим образом. Выбирается начальная точка и некоторое начальное значение , проверяется (2.14) и, если оно выполняется, то делается шаг в направлении В новой точке вычисляется градиент и вновь проверяется условие (2.14). В случае его удовлетворения продвижение к минимуму продолжается с тем же шагом. Если же оно не удовлетворяется, то параметр , определяющий длину шага, делят пополам до тех пор, пока это неравенство не будет выполнено. Затем выполняется очередной шаг. Процедура продолжается до выполнения критерия останова.


3. РЕШЕНИЕ ЗАДАЧИ МИНИМИЗАЦИИ ДЛЯ КАЖДОГО ИЗ МЕТОДОВ

3.1Метод Нелдера-Мида

Построим симплекс состоящий из 3-х вершин. Длину ребра t возьмем равной 1 .

Начальные координаты симплекса :

Проводим сортировку по значениям функции для поиска точки с наименьшей функцией. Далее записываем симплекс таким образом, чтобы первая точка была лучшей, а каждая последующая – хуже.

Для осуществления оптимизации вычислим новую точку как отражение самой «плохой» вершины относительно центра тяжести симплекса. Формула для вычисления новой точки:

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

Одно из четырех действий, указанных выше, выполняется в соответствии с значением функции в новой точке, по отношению к значению функции в старых точках.

Замена происходит в случае, если новая точка лучше чем лучшая.

Если выполняется условие , то при этом реализуется отражение. Точка заменяет .

При выполнении условия осуществляется сжатие и отыскивается точка :

Параметр принимается равным 0,5. Точка заменяет . Таким образом полученная точка заменяет самую «плохую»

Если новая точка окажется самой «плохой», необходимо осуществить редукцию (уменьшение размера симплекса путем приближения всех его вершин к лучшей вершине)

После выполнения указанных действий проверяется параметр останова. В случае, если он признан большим, чем выбранное значение точности, действия повторяются снова. Параметр останова рассчитывается по формуле :

Результат работы метода представлен в таблице 3.1

Таблица 3.1 – Решение задачи минимизации при помощи метода Нелдера-Мида

Номер итерацииХ1Х2ФункцияПараметр останова
10,40666670,406666745,63112349226714,5885289
20,44333330,268333329,8700636616342,8471538
30,31416670,270416716,4568833648400,8308005
40,24958330,271458313,6678625200210,3301516
50,21947920,203072912,6622204109420,1540974
60,17966150,186497412,2813269018930,0870517
70,15465490,148160812,1368917330070,0558708
80,12849450,130288912,0728454630970,0394655
90,10945110,106652612,0443252080990,0355389
100,03808680,047272512,0320575452390,0204381
110,01072400,020609412,0210175392130,0124410
120,02172440,028788612,0110939400340,0130068
13-0,0220008-0,016358512,0087328673060,0089109
14-0,0274319-0,023555612,0052484042760,0053110
15-0,0178584-0,014068112,0032931045150,0042019
16-0,0191470-0,018975012,0020694163050,0030794
17-0,0146824-0,015457912,0011216156180,0025320
18-0,0132441-0,013352012,0006552464930,0026725
19-0,0028766-0,004211912,0005046347540,0015212
200,0004344-0,000873912,0003393472680,0009248
21-0,0013297-0,002324512,0001830346130,0009948
220,00352820,002901012,0001371175790,0007582
230,00386070,003482112,0000784767320,0004900
240,00272930,002321012,0000503206790,0004156
250,00226280,002322212,0000316843860,0002830
260,00158040,001741912,0000178949790,0002411
270,00152650,001596612,0000099691130,0002705
280,00010790,000290712,0000080364640,0001594
29-0,0002737-0,000108412,0000054032900,0000921

В результате решения задачи минимизации с помощью метода Нелдера-Мида получено следующее значение функции : . Данный оптимум достигается в точке . Этот метод позволяет найти минимум (при начальной точке Х (1 ; 1)) за 29 итераций при точности решения . При этом параметр останова равен 0,0000921.

3.2Градиентный метод с дроблением шага

Для реализации процедуры необходимо вычислить градиент:

В процедуре используется критерий останова, который вычисляется по формуле:

,

где E – заданная точность решения (в данной задаче E=).

Результат работы метода представлен в таблице 3.2

Вследствие того, что таблица содержит 1263 итерации, целесообразно предоставить первые и последние 25 итераций.

Таблица 3.2 – Решение задачи минимизации при помощи градиентного метода

Номер итерацииХ1Х2ФункцияПараметр останова
10,9921875000,97656250014,8722483227111005,725771436
20,9721125960,96670099114,7557785614259005,391343315
30,9602526060,94929807514,6474534571582005,170831157
40,9441204790,93714339414,5458088271694004,999364954
50,9312507040,92245524514,4500157556303004,851038521
60,9170526690,90990556714,3595224191039004,715343849
70,9042653410,89664829414,2738949399639004,588117156
80,8912104990,88436899814,1927681121372004,467486611
90,8788695370,87203035014,1158178434957004,352565782
100,8666286260,86023055214,0427530347540004,242801681
110,8548316090,84858970013,9733086626862004,137814211
120,8432508970,83731403713,9072429878283004,037283606
130,8320015420,82626120613,8443345058966003,940936337
140,8209955530,81549774313,7843800451890003,848521743
150,8102669790,80496695713,7271928088998003,759812059
160,7997783960,79468635813,6726008530993003,674595835
170,7895358000,78463034513,6204456363624003,592677880
180,7795203660,77479971113,5705807907100003,513876598
190,7697288170,76518041613,5228709928576003,438023378
200,7601494720,75576791813,4771909740798003,364961115
210,7507763520,74655274913,4334246232260003,294543452
220,7416007980,73752898313,3914641877660003,226633778
230,7326163680,72868919813,3512095525295003,161104506
240,7238159110,72002740613,3125675921953003,097836320
250,7151932480,71153729213,2754515864311003,036717546
12390,0000424610,00004246112,0000000036058000,000120097
12400,0000421290,00004212912,0000000035497000,000119159
12410,0000418000,00004180012,0000000034945000,000118228
12420,0000414730,00004147312,0000000034401000,000117304
12430,0000411490,00004114912,0000000033865000,000116388
12440,0000408280,00004082812,0000000033338000,000115479
12450,0000405090,00004050912,0000000032819000,000114576
12460,0000401920,00004019212,0000000032309000,000113681
12470,0000398780,00003987812,0000000031806000,000112793
12480,0000395670,00003956712,0000000031311000,000111912
12490,0000392580,00003925812,0000000030823000,000111038
12500,0000389510,00003895112,0000000030344000,000110170
12510,0000386470,00003864712,0000000029871000,000109309
12520,0000383450,00003834512,0000000029406000,000108455
12530,0000380450,00003804512,0000000028949000,000107608
12540,0000377480,00003774812,0000000028498000,000106767
12550,0000374530,00003745312,0000000028055000,000105933
12560,0000371610,00003716112,0000000027618000,000105106
12570,0000368700,00003687012,0000000027188000,000104285
12580,0000365820,00003658212,0000000026765000,000103470
12590,0000362960,00003629612,0000000026348000,000102662
12600,0000360130,00003601312,0000000025938000,000101860
12610,0000357310,00003573112,0000000025535000,000101064
12620,0000354520,00003545212,0000000025137000,000100274
12630,0000351750,00003517512,0000000024746000,000099491

В результате реализации градиентного метода минимальное значение функции составляет . Данный оптимум достигнут в точке . Этот метод позволяет найти минимум (при начальной точке Х(1;1) за 1263 итерации при точности решения . При этом параметр останова равен 0,000099491.


4. ГРАФИЧЕСКАЯ ИНТЕРПРИТАЦИЯ РЕШЕНИЯ ЗАДАЧИ

График исследуемой функции имеет вид :


Рисунок 4.1 – График исследуемой функции

Изобразим на рисунке (4.2) линии уровня функции


Рисунок 4.2 – Линии уровня исследуемой функции

Отобразим на графиках линий уровня для каждого из заданных методов траекторию спуска



Рисунок 4.3 – траектория спуска (метод Нелдера-Мида)


Рисунок 4.4 – траектория спуска (градиентный метод)


5. АНАЛИТИЧЕСКОЕ ИССЛЕДОВАНИЕ МЕТОДОВ

Для выявления зависимости числа итераций от заданной точности методы реализованы для каждого значения точности. Результаты представлены в таблицах (5.1-5.6, 5.8-5.13)

Реализация метода Нелдера-Мида :

Таблица 5.1 – Реализация метода Нелдера-Мида при

Номер итерацииХ1Х2ФункцияПараметр останова
10,40666670,406666745,63112349226714,5885289
20,44333330,268333329,8700636616342,8471538
30,31416670,270416716,4568833648400,8308005
40,24958330,271458313,6678625200210,3301516
50,21947920,203072912,6622204109420,1540974
60,17966150,186497412,2813269018930,0870517

Таблица 5.2 – Реализация метода Нелдера-Мида при

Номер итерацииХ1Х2ФункцияПараметр останова
10,40666670,406666745,63112349226714,5885289
20,44333330,268333329,8700636616342,8471538
30,31416670,270416716,4568833648400,8308005
40,24958330,271458313,6678625200210,3301516
50,21947920,203072912,6622204109420,1540974
60,17966150,186497412,2813269018930,0870517
70,15465490,148160812,1368917330070,0558708
80,12849450,130288912,0728454630970,0394655
90,10945110,106652612,0443252080990,0355389
100,03808680,047272512,0320575452390,0204381
110,01072400,020609412,0210175392130,0124410
120,02172440,028788612,0110939400340,0130068
13-0,0220008-0,016358512,0087328673060,0089109

Таблица 5.3 – Реализация метода Нелдера-Мида при

Номер итерацииХ1Х2ФункцияПараметр останова
10,40666670,406666745,63112349226714,5885289
20,44333330,268333329,8700636616342,8471538
30,31416670,270416716,4568833648400,8308005
40,24958330,271458313,6678625200210,3301516
50,21947920,203072912,6622204109420,1540974
60,17966150,186497412,2813269018930,0870517
70,15465490,148160812,1368917330070,0558708
80,12849450,130288912,0728454630970,0394655
90,10945110,106652612,0443252080990,0355389
100,03808680,047272512,0320575452390,0204381
110,01072400,020609412,0210175392130,0124410
120,02172440,028788612,0110939400340,0130068
13-0,0220008-0,016358512,0087328673060,0089109
14-0,0274319-0,023555612,0052484042760,0053110
15-0,0178584-0,014068112,0032931045150,0042019
16-0,0191470-0,018975012,0020694163050,0030794
17-0,0146824-0,015457912,0011216156180,0025320
18-0,0132441-0,013352012,0006552464930,0026725
19-0,0028766-0,004211912,0005046347540,0015212
200,0004344-0,000873912,0003393472680,0009248

Таблица 5.4 – Реализация метода Нелдера-Мида при

Номер итерацииХ1Х2ФункцияПараметр останова
10,40666670,406666745,63112349226714,5885289
20,44333330,268333329,8700636616342,8471538
30,31416670,270416716,4568833648400,8308005
40,24958330,271458313,6678625200210,3301516
50,21947920,203072912,6622204109420,1540974
60,17966150,186497412,2813269018930,0870517
70,15465490,148160812,1368917330070,0558708
80,12849450,130288912,0728454630970,0394655
90,10945110,106652612,0443252080990,0355389
100,03808680,047272512,0320575452390,0204381
110,01072400,020609412,0210175392130,0124410
120,02172440,028788612,0110939400340,0130068
13-0,0220008-0,016358512,0087328673060,0089109
14-0,0274319-0,023555612,0052484042760,0053110
15-0,0178584-0,014068112,0032931045150,0042019
16-0,0191470-0,018975012,0020694163050,0030794
17-0,0146824-0,015457912,0011216156180,0025320
18-0,0132441-0,013352012,0006552464930,0026725
19-0,0028766-0,004211912,0005046347540,0015212
200,0004344-0,000873912,0003393472680,0009248
21-0,0013297-0,002324512,0001830346130,0009948
220,00352820,002901012,0001371175790,0007582
230,00386070,003482112,0000784767320,0004900
240,00272930,002321012,0000503206790,0004156
250,00226280,002322212,0000316843860,0002830
260,00158040,001741912,0000178949790,0002411
270,00152650,001596612,0000099691130,0002705
280,00010790,000290712,0000080364640,0001594
29-0,0002737-0,000108412,0000054032900,0000921

Таблица 5.5 – Реализация метода Нелдера-Мида при

Номер итерацииХ1Х2ФункцияПараметр останова
10,40666670,406666745,63112349226714,5885289
20,44333330,268333329,8700636616342,8471538
30,31416670,270416716,4568833648400,8308005
40,24958330,271458313,6678625200210,3301516
50,21947920,203072912,6622204109420,1540974
60,17966150,186497412,2813269018930,0870517
70,15465490,148160812,1368917330070,0558708
80,12849450,130288912,0728454630970,0394655
90,10945110,106652612,0443252080990,0355389
100,03808680,047272512,0320575452390,0204381
110,01072400,020609412,0210175392130,0124410
120,02172440,028788612,0110939400340,0130068
13-0,0220008-0,016358512,0087328673060,0089109
14-0,0274319-0,023555612,0052484042760,0053110
15-0,0178584-0,014068112,0032931045150,0042019
16-0,0191470-0,018975012,0020694163050,0030794
17-0,0146824-0,015457912,0011216156180,0025320
18-0,0132441-0,013352012,0006552464930,0026725
19-0,0028766-0,004211912,0005046347540,0015212
200,0004344-0,000873912,0003393472680,0009248
21-0,0013297-0,002324512,0001830346130,0009948
220,00352820,002901012,0001371175790,0007582
230,00386070,003482112,0000784767320,0004900
240,00272930,002321012,0000503206790,0004156
250,00226280,002322212,0000316843860,0002830
260,00158040,001741912,0000178949790,0002411
270,00152650,001596612,0000099691130,0002705
280,00010790,000290712,0000080364640,0001594
29-0,0002737-0,000108412,0000054032900,0000921
30-0,00001450,000118212,0000030128900,0000930
31-0,0005185-0,000453412,0000021356780,0000765
32-0,0005149-0,000482912,0000011717110,0000537
33-0,0003880-0,000347412,0000007557530,0000486
34-0,0002538-0,000271012,0000004876500,0000301
35-0,0001568-0,000184212,0000002901030,0000249
36-0,0001661-0,000181612,0000001556190,0000289
370,0000186-0,000005212,0000001282810,0000180
380,00006010,000040212,0000000845920,0000102
390,00002430,000007412,0000000490290,0000094

Таблица 5.6 – Реализация метода Нелдера-Мида при

Номер итерацииХ1Х2ФункцияПараметр останова
10,40666670,406666745,63112349226714,5885289
20,44333330,268333329,8700636616342,8471538
30,31416670,270416716,4568833648400,8308005
40,24958330,271458313,6678625200210,3301516
50,21947920,203072912,6622204109420,1540974
60,17966150,186497412,2813269018930,0870517
70,15465490,148160812,1368917330070,0558708
80,12849450,130288912,0728454630970,0394655
90,10945110,106652612,0443252080990,0355389
100,03808680,047272512,0320575452390,0204381
110,01072400,020609412,0210175392130,0124410
120,02172440,028788612,0110939400340,0130068
13-0,0220008-0,016358512,0087328673060,0089109
14-0,0274319-0,023555612,0052484042760,0053110
15-0,0178584-0,014068112,0032931045150,0042019
16-0,0191470-0,018975012,0020694163050,0030794
17-0,0146824-0,015457912,0011216156180,0025320
18-0,0132441-0,013352012,0006552464930,0026725
19-0,0028766-0,004211912,0005046347540,0015212
200,0004344-0,000873912,0003393472680,0009248
21-0,0013297-0,002324512,0001830346130,0009948
220,00352820,002901012,0001371175790,0007582
230,00386070,003482112,0000784767320,0004900
240,00272930,002321012,0000503206790,0004156
250,00226280,002322212,0000316843860,0002830
260,00158040,001741912,0000178949790,0002411
270,00152650,001596612,0000099691130,0002705
280,00010790,000290712,0000080364640,0001594
29-0,0002737-0,000108412,0000054032900,0000921
30-0,00001450,000118212,0000030128900,0000930
31-0,0005185-0,000453412,0000021356780,0000765
32-0,0005149-0,000482912,0000011717110,0000537
33-0,0003880-0,000347412,0000007557530,0000486
34-0,0002538-0,000271012,0000004876500,0000301
35-0,0001568-0,000184212,0000002901030,0000249
36-0,0001661-0,000181612,0000001556190,0000289
370,0000186-0,000005212,0000001282810,0000180
380,00006010,000040212,0000000845920,0000102
390,00002430,000007412,0000000490290,0000094
400,00007160,000065512,0000000329970,0000081
410,00006550,000063612,0000000176010,0000061
420,00005220,000048612,0000000112150,0000059
430,00002670,000029912,0000000075650,0000034
440,00001360,000017812,0000000047410,0000026
450,00001670,000019412,0000000024930,0000031
46-0,0000062-0,000003312,0000000020450,0000021
47-0,0000104-0,000008112,0000000013020,0000012
48-0,0000057-0,000003712,0000000007840,0000010
49-0,0000094-0,000008912,0000000005070,0000009

Данные по количеству итераций и заданным точностям для метода Нелдера-Мида сведены в таблицу 5.7

Таблица 5.7 - Зависимость числа итераций от точности

ТочностьКоличество итераций
0,16
0,0113
0,00120
0,000129
0,0000139
0,00000149

Рисунок 5.1 – Графическое представление зависимости количества итераций N от точности E для метода Нелдера-Мида.

Для градиентного метода, принимая во внимание большое количество итераций, целесообразно приводить для каждой реализации первые и последние 25 итераций.

Реализация градиентного метода:

Таблица 5.8 – Реализация градиентного метода при

Номер итерацииХ1Х2ФункцияПараметр останова
10,9921875000,97656250014,8722483227111005,725771436
20,9721125960,96670099114,7557785614259005,391343315
30,9602526060,94929807514,6474534571582005,170831157
40,9441204790,93714339414,5458088271694004,999364954
50,9312507040,92245524514,4500157556303004,851038521
60,9170526690,90990556714,3595224191039004,715343849
70,9042653410,89664829414,2738949399639004,588117156
80,8912104990,88436899814,1927681121372004,467486611
90,8788695370,87203035014,1158178434957004,352565782
100,8666286260,86023055214,0427530347540004,242801681
110,8548316090,84858970013,9733086626862004,137814211
120,8432508970,83731403713,9072429878283004,037283606
130,8320015420,82626120613,8443345058966003,940936337
140,8209955530,81549774313,7843800451890003,848521743
150,8102669790,80496695713,7271928088998003,759812059
160,7997783960,79468635813,6726008530993003,674595835
170,7895358000,78463034513,6204456363624003,592677880
180,7795203660,77479971113,5705807907100003,513876598
190,7697288170,76518041613,5228709928576003,438023378
200,7601494720,75576791813,4771909740798003,364961115
210,7507763520,74655274913,4334246232260003,294543452
220,7416007980,73752898313,3914641877660003,226633778
230,7326163680,72868919813,3512095525295003,161104506
240,7238159110,72002740613,3125675921953003,097836320
250,7151932480,71153729213,2754515864311003,036717546
3580,0425887630,04258798312,0036308286957000,120676586
3590,0422554290,04225466712,0035741660221000,119728711
3600,0419247130,04192396912,0035183899681000,118788359
3610,0415965950,04159586812,0034634865881000,117855470
3620,0412710530,04127034312,0034094421578000,116929982
3630,0409480690,04094737512,0033562431711000,116011835
3640,0406276200,04062694312,0033038763365000,115100970
3650,0403096880,04030902612,0032523285732000,114197326
3660,0399942510,03999360512,0032015870082000,113300844
3670,0396812920,03968066012,0031516389726000,112411467
3680,0393707880,03937017212,0031024719987000,111529137
3690,0390627230,03906212112,0030540738163000,110653795
3700,0387570750,03875648712,0030064323496000,109785386
3710,0384538260,03845325212,0029595357143000,108923853
3720,0381529570,03815239612,0029133722144000,108069140
3730,0378544480,03785390112,0028679303391000,107221192
3740,0375582830,03755774712,0028231987600000,106379954
3750,0372644400,03726391812,0027791663277000,105545371
3760,0369729040,03697239312,0027358220696000,104717390
3770,0366836540,03668315612,0026931551865000,103895956
3780,0363966740,03639618712,0026511550501000,103081018
3790,0361119440,03611146812,0026098112002000,102272522
3800,0358294480,03582898312,0025691133418000,101470417
3810,0355491670,03554871412,0025290513430000,100674650
3820,0352710850,03527064212,0024896152315000,099885171

Таблица 5.9 – Реализация градиентного метода при

Номер итерацииХ1Х2ФункцияПараметр останова
10,9921875000,97656250014,8722483227111005,725771436
20,9721125960,96670099114,7557785614259005,391343315
30,9602526060,94929807514,6474534571582005,170831157
40,9441204790,93714339414,5458088271694004,999364954
50,9312507040,92245524514,4500157556303004,851038521
60,9170526690,90990556714,3595224191039004,715343849
70,9042653410,89664829414,2738949399639004,588117156
80,8912104990,88436899814,1927681121372004,467486611
90,8788695370,87203035014,1158178434957004,352565782
100,8666286260,86023055214,0427530347540004,242801681
110,8548316090,84858970013,9733086626862004,137814211
120,8432508970,83731403713,9072429878283004,037283606
130,8320015420,82626120613,8443345058966003,940936337
140,8209955530,81549774313,7843800451890003,848521743
150,8102669790,80496695713,7271928088998003,759812059
160,7997783960,79468635813,6726008530993003,674595835
170,7895358000,78463034513,6204456363624003,592677880
180,7795203660,77479971113,5705807907100003,513876598
190,7697288170,76518041613,5228709928576003,438023378
200,7601494720,75576791813,4771909740798003,364961115
210,7507763520,74655274913,4334246232260003,294543452
220,7416007980,73752898313,3914641877660003,226633778
230,7326163680,72868919813,3512095525295003,161104506
240,7238159110,72002740613,3125675921953003,097836320
250,7151932480,71153729213,2754515864311003,036717546
6520,0042409170,00424091612,0000359710715000,011995339
6530,0042077840,00420778412,0000354112040000,011901621
6540,0041749100,00417491012,0000348600508000,011808634
6550,0041422930,00414229312,0000343174761000,011716375
6560,0041099310,00410993012,0000337833464000,011624836
6570,0040778220,00407782112,0000332575304000,011534012
6580,0040459630,00404596312,0000327398986000,011443898
6590,0040143540,00401435312,0000322303235000,011354489
6600,0039829910,00398299012,0000317286799000,011265777
6610,0039518730,00395187312,0000312348441000,011177759
6620,0039209990,00392099812,0000307486948000,011090429
6630,0038903660,00389036512,0000302701123000,011003781
6640,0038599720,00385997112,0000297989787000,010917810
6650,0038298150,00382981512,0000293351782000,010832511
6660,0037998940,00379989412,0000288785965000,010747878
6670,0037702070,00377020712,0000284291214000,010663907
6680,0037407520,00374075112,0000279866422000,010580592
6690,0037115270,00371152612,0000275510500000,010497927
6700,0036825300,00368253012,0000271222376000,010415909
6710,0036537600,00365376012,0000267000996000,010334531
6720,0036252150,00362521412,0000262845319000,010253790
6730,0035968920,00359689212,0000258754324000,010173679
6740,0035687910,00356879112,0000254727003000,010094194
6750,0035409100,00354090912,0000250762366000,010015330
6760,0035132460,00351324612,0000246859436000,009937082

Таблица 5.10 – Реализация градиентного метода при

Номер итерацииХ1Х2ФункцияПараметр останова
10,9921875000,97656250014,8722483227111005,725771436
20,9721125960,96670099114,7557785614259005,391343315
30,9602526060,94929807514,6474534571582005,170831157
40,9441204790,93714339414,5458088271694004,999364954
50,9312507040,92245524514,4500157556303004,851038521
60,9170526690,90990556714,3595224191039004,715343849
70,9042653410,89664829414,2738949399639004,588117156
80,8912104990,88436899814,1927681121372004,467486611
90,8788695370,87203035014,1158178434957004,352565782
100,8666286260,86023055214,0427530347540004,242801681
110,8548316090,84858970013,9733086626862004,137814211
120,8432508970,83731403713,9072429878283004,037283606
130,8320015420,82626120613,8443345058966003,940936337
140,8209955530,81549774313,7843800451890003,848521743
150,8102669790,80496695713,7271928088998003,759812059
160,7997783960,79468635813,6726008530993003,674595835
170,7895358000,78463034513,6204456363624003,592677880
180,7795203660,77479971113,5705807907100003,513876598
190,7697288170,76518041613,5228709928576003,438023378
200,7601494720,75576791813,4771909740798003,364961115
210,7507763520,74655274913,4334246232260003,294543452
220,7416007980,73752898313,3914641877660003,226633778
230,7326163680,72868919813,3512095525295003,161104506
240,7238159110,72002740613,3125675921953003,097836320
250,7151932480,71153729213,2754515864311003,036717546
9450,0004260150,00042601512,0000003629777000,001204953
9460,0004226870,00042268712,0000003573283000,001195539
9470,0004193850,00041938512,0000003517669000,001186199
9480,0004161080,00041610812,0000003462920000,001176932
9490,0004128570,00041285712,0000003409023000,001167737
9500,0004096320,00040963212,0000003355965000,001158614
9510,0004064320,00040643212,0000003303733000,001149562
9520,0004032560,00040325612,0000003252314000,001140581
9530,0004001060,00040010612,0000003201695000,001131671
9540,0003969800,00039698012,0000003151864000,001122829
9550,0003938790,00039387912,0000003102808000,001114057
9560,0003908010,00039080112,0000003054516000,001105354
9570,0003877480,00038774812,0000003006976000,001096718
9580,0003847190,00038471912,0000002960176000,001088150
9590,0003817130,00038171312,0000002914103000,001079649
9600,0003787310,00037873112,0000002868748000,001071214
9610,0003757720,00037577212,0000002824099000,001062845
9620,0003728370,00037283712,0000002780145000,001054542
9630,0003699240,00036992412,0000002736875000,001046303
9640,0003670340,00036703412,0000002694278000,001038129
9650,0003641660,00036416612,0000002652345000,001030018
9660,0003613210,00036132112,0000002611064000,001021971
9670,0003584990,00035849912,0000002570425000,001013987
9680,0003556980,00035569812,0000002530419000,001006066
9690,0003529190,00035291912,0000002491036000,000998206

Таблица 5.11 – Реализация градиентного метода при

Номер итерацииХ1Х2ФункцияПараметр останова
10,9921875000,97656250014,8722483227111005,725771436
20,9721125960,96670099114,7557785614259005,391343315
30,9602526060,94929807514,6474534571582005,170831157
40,9441204790,93714339414,5458088271694004,999364954
50,9312507040,92245524514,4500157556303004,851038521
60,9170526690,90990556714,3595224191039004,715343849
70,9042653410,89664829414,2738949399639004,588117156
80,8912104990,88436899814,1927681121372004,467486611
90,8788695370,87203035014,1158178434957004,352565782
100,8666286260,86023055214,0427530347540004,242801681
110,8548316090,84858970013,9733086626862004,137814211
120,8432508970,83731403713,9072429878283004,037283606
130,8320015420,82626120613,8443345058966003,940936337
140,8209955530,81549774313,7843800451890003,848521743
150,8102669790,80496695713,7271928088998003,759812059
160,7997783960,79468635813,6726008530993003,674595835
170,7895358000,78463034513,6204456363624003,592677880
180,7795203660,77479971113,5705807907100003,513876598
190,7697288170,76518041613,5228709928576003,438023378
200,7601494720,75576791813,4771909740798003,364961115
210,7507763520,74655274913,4334246232260003,294543452
220,7416007980,73752898313,3914641877660003,226633778
230,7326163680,72868919813,3512095525295003,161104506
240,7238159110,72002740613,3125675921953003,097836320
250,7151932480,71153729213,2754515864311003,036717546
12390,0000424610,00004246112,0000000036058000,000120097
12400,0000421290,00004212912,0000000035497000,000119159
12410,0000418000,00004180012,0000000034945000,000118228
12420,0000414730,00004147312,0000000034401000,000117304
12430,0000411490,00004114912,0000000033865000,000116388
12440,0000408280,00004082812,0000000033338000,000115479
12450,0000405090,00004050912,0000000032819000,000114576
12460,0000401920,00004019212,0000000032309000,000113681
12470,0000398780,00003987812,0000000031806000,000112793
12480,0000395670,00003956712,0000000031311000,000111912
12490,0000392580,00003925812,0000000030823000,000111038
12500,0000389510,00003895112,0000000030344000,000110170
12510,0000386470,00003864712,0000000029871000,000109309
12520,0000383450,00003834512,0000000029406000,000108455
12530,0000380450,00003804512,0000000028949000,000107608
12540,0000377480,00003774812,0000000028498000,000106767
12550,0000374530,00003745312,0000000028055000,000105933
12560,0000371610,00003716112,0000000027618000,000105106
12570,0000368700,00003687012,0000000027188000,000104285
12580,0000365820,00003658212,0000000026765000,000103470
12590,0000362960,00003629612,0000000026348000,000102662
12600,0000360130,00003601312,0000000025938000,000101860
12610,0000357310,00003573112,0000000025535000,000101064
12620,0000354520,00003545212,0000000025137000,000100274
12630,0000351750,00003517512,0000000024746000,000099491

Таблица 5.12 – Реализация градиентного метода при

Номер итерацииХ1Х2ФункцияПараметр останова
10,9921875000,97656250014,8722483227111005,725771436
20,9721125960,96670099114,7557785614259005,391343315
30,9602526060,94929807514,6474534571582005,170831157
40,9441204790,93714339414,5458088271694004,999364954
50,9312507040,92245524514,4500157556303004,851038521
60,9170526690,90990556714,3595224191039004,715343849
70,9042653410,89664829414,2738949399639004,588117156
80,8912104990,88436899814,1927681121372004,467486611
90,8788695370,87203035014,1158178434957004,352565782
100,8666286260,86023055214,0427530347540004,242801681
110,8548316090,84858970013,9733086626862004,137814211
120,8432508970,83731403713,9072429878283004,037283606
130,8320015420,82626120613,8443345058966003,940936337
140,8209955530,81549774313,7843800451890003,848521743
150,8102669790,80496695713,7271928088998003,759812059
160,7997783960,79468635813,6726008530993003,674595835
170,7895358000,78463034513,6204456363624003,592677880
180,7795203660,77479971113,5705807907100003,513876598
190,7697288170,76518041613,5228709928576003,438023378
200,7601494720,75576791813,4771909740798003,364961115
210,7507763520,74655274913,4334246232260003,294543452
220,7416007980,73752898313,3914641877660003,226633778
230,7326163680,72868919813,3512095525295003,161104506
240,7238159110,72002740613,3125675921953003,097836320
250,7151932480,71153729213,2754515864311003,036717546
15320,0000042650,00000426512,0000000000364000,000012064
15330,0000042320,00000423212,0000000000358000,000011970
15340,0000041990,00000419912,0000000000353000,000011877
15350,0000041660,00000416612,0000000000347000,000011784
15360,0000041340,00000413412,0000000000342000,000011692
15370,0000041010,00000410112,0000000000336000,000011600
15380,0000040690,00000406912,0000000000331000,000011510
15390,0000040380,00000403812,0000000000326000,000011420
15400,0000040060,00000400612,0000000000321000,000011331
15410,0000039750,00000397512,0000000000316000,000011242
15420,0000039440,00000394412,0000000000311000,000011154
15430,0000039130,00000391312,0000000000306000,000011067
15440,0000038820,00000388212,0000000000301000,000010981
15450,0000038520,00000385212,0000000000297000,000010895
15460,0000038220,00000382212,0000000000292000,000010810
15470,0000037920,00000379212,0000000000288000,000010725
15480,0000037620,00000376212,0000000000283000,000010641
15490,0000037330,00000373312,0000000000279000,000010558
15500,0000037040,00000370412,0000000000274000,000010476
15510,0000036750,00000367512,0000000000270000,000010394
15520,0000036460,00000364612,0000000000266000,000010313
15530,0000036180,00000361812,0000000000262000,000010232
15540,0000035890,00000358912,0000000000258000,000010152
15550,0000035610,00000356112,0000000000254000,000010073
15560,0000035340,00000353412,0000000000250000,000009994

Таблица 5.13– Реализация градиентного метода при

Номер итерацииХ1Х2ФункцияПараметр останова
10,9921875000,97656250014,8722483227111005,725771436
20,9721125960,96670099114,7557785614259005,391343315
30,9602526060,94929807514,6474534571582005,170831157
40,9441204790,93714339414,5458088271694004,999364954
50,9312507040,92245524514,4500157556303004,851038521
60,9170526690,90990556714,3595224191039004,715343849
70,9042653410,89664829414,2738949399639004,588117156
80,8912104990,88436899814,1927681121372004,467486611
90,8788695370,87203035014,1158178434957004,352565782
100,8666286260,86023055214,0427530347540004,242801681
110,8548316090,84858970013,9733086626862004,137814211
120,8432508970,83731403713,9072429878283004,037283606
130,8320015420,82626120613,8443345058966003,940936337
140,8209955530,81549774313,7843800451890003,848521743
150,8102669790,80496695713,7271928088998003,759812059
160,7997783960,79468635813,6726008530993003,674595835
170,7895358000,78463034513,6204456363624003,592677880
180,7795203660,77479971113,5705807907100003,513876598
190,7697288170,76518041613,5228709928576003,438023378
200,7601494720,75576791813,4771909740798003,364961115
210,7507763520,74655274913,4334246232260003,294543452
220,7416007980,73752898313,3914641877660003,226633778
230,7326163680,72868919813,3512095525295003,161104506
240,7238159110,72002740613,3125675921953003,097836320
250,7151932480,71153729213,2754515864311003,036717546
18260,0000004250,00000042512,0000000000004000,000001202
18270,0000004220,00000042212,0000000000004000,000001193
18280,0000004190,00000041912,0000000000004000,000001184
18290,0000004150,00000041512,0000000000003000,000001174
18300,0000004120,00000041212,0000000000003000,000001165
18310,0000004090,00000040912,0000000000003000,000001156
18320,0000004060,00000040612,0000000000003000,000001147
18330,0000004020,00000040212,0000000000003000,000001138
18340,0000003990,00000039912,0000000000003000,000001129
18350,0000003960,00000039612,0000000000003000,000001120
18360,0000003930,00000039312,0000000000003000,000001112
18370,0000003900,00000039012,0000000000003000,000001103
18380,0000003870,00000038712,0000000000003000,000001094
18390,0000003840,00000038412,0000000000003000,000001086
18400,0000003810,00000038112,0000000000003000,000001077
18410,0000003780,00000037812,0000000000003000,000001069
18420,0000003750,00000037512,0000000000003000,000001061
18430,0000003720,00000037212,0000000000003000,000001052
18440,0000003690,00000036912,0000000000003000,000001044
18450,0000003660,00000036612,0000000000003000,000001036
18460,0000003630,00000036312,0000000000003000,000001028
18470,0000003610,00000036112,0000000000003000,000001020
18480,0000003580,00000035812,0000000000003000,000001012
18490,0000003550,00000035512,0000000000003000,000001004
18500,0000003520,00000035212,0000000000002000,000000996

Данные по количеству итераций и заданным точностям для градиентного метода сведены в таблицу 5.14

Таблица 5.14 - Зависимость числа итераций от точности

ТочностьКоличество итераций
0,1382
0,01676
0,001969
0,00011263
0,000011556
0,0000011850

Рисунок 5.2 – Графическое представление зависимости количества итераций N от точности E для градиентного метода.


Таким образом, анализируя полученные зависимости можно сделать вывод о том, что метод Нелдера-Мида является более эффективным. Так же следует отметить, что градиентный метод быстро приближается к экстремуму, когда текущая точка находится далеко от него, и резко замедляется вблизи экстремума.

Следует заметить, что эффективность применения методов оптимизации прежде всего обусловлена видом функции.


6. ЗАКЛЮЧЕНИЕ

В курсовой работе произведена минимизации функции с помощью метода оптимизации нулевого порядка – метода Нелдера-Мида и метода оптимизации первого порядка – градиентного метода с дроблением шага.

В результате решения задачи минимизации с помощью метода Нелдера-Мида получено следующее значение функции: . Данный оптимум достигается в точке . Этот метод позволяет найти минимум (при начальной точке Х (1 ; 1)) за 29 итераций при точности решения . При этом параметр останова равен 0,0000921.

В результате реализации градиентного метода минимальное значение функции составляет . Данный оптимум достигнут в точке . Этот метод позволяет найти минимум (при начальной точке Х(1;1)) за 1263 итерации при точности решения . При этом параметр останова равен 0,000099491.

Для каждого из методов была установлена зависимость числа итераций от заданной точности . Анализируя полученные результаты, можно сделать вывод о том, что по числу итераций более эффективным является метод Нелдера-Мида. Однако следует отметить, что эффективность этих методов может изменяться в зависимости от выбора начального приближения и вида функции. Следует также учесть, что градиентный метод может быть непригоден в тех случаях, если расчет производных вызывает затруднение.


7. ПРИЛОЖЕНИЕ

В таблицах представлены координаты точек, образующих линии уровня



В настоящем приложении представлена реализация программного кода для каждого из методов оптимизации. Используемый язык программирования – VisualStudio C# 2005.

Градиентный метод с дроблением шага

namespace GradientL

{public partial class Form1 : Form

{public Form1()

{InitializeComponent();}

public static string[] str = new string[100000];

struct Tk

{public double x1, x2;

public Tk(double X, double Y)

{x1 = X;

x2 = Y;}

public static Tk operator /(Tk v1, double q)

{return new Tk(v1.x1 / q, v1.x2 / q);}

public static Tk operator *(Tk v, double d)

{return new Tk(v.x1 * d, v.x2 * d);}

public static Tk operator *(Tk v1, Tk v2)

{return new Tk(v1.x1 * v2.x1, v1.x2 * v2.x2);}

public static Tk operator -(Tk v1, Tk v2)

{return new Tk(v1.x1 - v2.x1, v1.x2 - v2.x2);}

public static Tk operator +(Tk v1, Tk v2)

{return new Tk(v1.x1 + v2.x1, v1.x2 + v2.x2);}

public static double Dist(Tk v1, Tk v2)

{return Math.Sqrt((v1.x1 - v2.x1) * (v1.x1 - v2.x1) + (v1.x2 - v2.x2) * (v1.x2 - v2.x2));}

public override string ToString()

{return "(" + this.x1.ToString("f5") + ";" + this.x2.ToString("f5") + ")";}}

class Pr

{public static double f(Tk c)

{return 12 + c.x1 * c.x1 + (1 + c.x2 * c.x2) * c.x2 * c.x2 + (c.x1 * c.x1 * c.x2 * c.x2 + 100) * (c.x1 - c.x2) * (c.x1 - c.x2);}

static Tk gradient(Tk c)

{Tk N = new Tk(2 * c.x1 + 2 * c.x1 * c.x2 * c.x2 *

( c.x1 - c.x2)*(c.x1 - c.x2) + 2 * (c.x1 * c.x1 * c.x2 * c.x2 + 100) * (c.x1 - c.x2),

2 * c.x2*c.x2*c.x2+2*c.x2*(1+c.x2*c.x2)+

2*c.x2*c.x1*c.x1*(c.x1-c.x2)*(c.x1-c.x2)-2*(c.x1-c.x2)*

(c.x1*c.x1*c.x2*c.x2+100));

return N;}

public static double Dl(Tk c)

{return Math.Sqrt(c.x1 * c.x1 + c.x2 * c.x2);}

public static void Tr(double eps, ref Tk ca, out double fn, out int i)

{Tk cb = new Tk(1, 1), st = new Tk(0.5, 0.5);

Tk step = new Tk(1, 1), eq; i = 0;

do

{while (true)

{cb = ca - step * gradient(ca);

eq = st * step * gradient(cb) * gradient(cb);

if (f(cb - step * gradient(cb)) >= (f(cb) - Dl(eq)))

{ step.x1 /= 2;

step.x2 /= 2;}

else break;}

fn = f(ca);

i++;

str[i] = String.Format("{0}" + ") " + "{1}" + "; " +

"{2}" + "; " + "{3}" + ".", i.ToString(), ca.ToString(), fn.ToString("f6"), Dl(gradient(cb)).ToString("f6"));

ca = cb;}

while (Dl(gradient(cb)) >= eps);

fn = f(cb);}}

private void button1_Click(object sender, EventArgs e)

{listBox1.Items.Clear();

double Et = Convert.ToDouble(textBox3.Text);

double fn;

int j;

Tk mas = new Tk(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text));

Pr.Tr(Et, ref mas, out fn, out j);

Min.Visible = true;

Min.Text = String.Format("{0}" + "; " + "{1}" + "; " +

"{2}", mas.ToString(), fn.ToString(), j.ToString());

for (int i = 1; i < j; i++)

listBox1.Items.Add(str[i]);}

private void Form1_Load(object sender, EventArgs e){}}}

Метод Нелдера-Мида

namespace Nelder_Method

{public partial class Form1 : Form

{public Form1()

{InitializeComponent();}

static double Al = 1.0;

static double Bt = 0.5;

static double Gm = 2.0;

static int n=0;

static string[] op = new string[1000];

const int cap = 2;

struct Tk

{public double x1, x2;

public Tk(double X, double Y)

{x1 = X;

x2 = Y;}

public static Tk operator /(Tk v1, double q)

{return new Tk(v1.x1 / q, v1.x2 / q);}

public static Tk operator *(Tk v, double d)

{return new Tk(v.x1 * d, v.x2 * d);}

public static Tk operator *(Tk v1, Tk v2)

{return new Tk(v1.x1 * v2.x1, v1.x2 * v2.x2);}

public static Tk operator -(Tk v1, Tk v2)

{return new Tk(v1.x1 - v2.x1, v1.x2 - v2.x2);}

public static Tk operator +(Tk v1, Tk v2)

{return new Tk(v1.x1 + v2.x1, v1.x2 + v2.x2);}

public static double Dist(Tk v1, Tk v2)

{return Math.Sqrt((v1.x1 - v2.x1) * (v1.x1 - v2.x1) + (v1.x2 - v2.x2) * (v1.x2 - v2.x2));}

public override string ToString()

{return "(" + this.x1.ToString("f5") + ";" + this.x2.ToString("f5") + ")";}}

class Cnt

{public static double function(Tk c)

{return 12 + c.x1*c.x1 + (1+c.x2*c.x2)*c.x2*c.x2 + (c.x1*c.x1*c.x2*c.x2+100)*(c.x1-c.x2)*(c.x1-c.x2);}

public static void Pr(ref Tk[] c, ref double[] ot)

{double fir; Tk tk;

for (int k = 1; k <= cap; k++)

for (int l = k; l >= 1; l--)

if (ot[l - 1] > ot[l])

{fir = ot[l];

tk = c[l];

ot[l] = ot[l - 1];

c[l] = c[l - 1];

ot[l - 1] = fir;

c[l - 1] = tk;}

else break;}

public static bool Ostanov(Tk[] w, double E, double n, Tk c, out double Ost)

{double Lp;

double d = 0.5;

double p1 = 0;

Tk p2 = new Tk(0, 0);

for (int i = 0; i <= cap; i++)

{p1 += (function(w[i]) - function(c)) * (function(w[i]) - function(c));

p2 += (w[i] - c) * (w[i] - c);}

Lp = Math.Sqrt(p2.x1 * p2.x1 + p2.x2 * p2.x2);

Ost = d * (Math.Sqrt((1 / (n + 1)) * p1)) + (1 - d) * (Math.Sqrt((1 / (n + 1)) * Lp));

if (Ost < E)

return true;

else return false;}

public static double Met(Tk[] c, double tchn)

{double[] f = new double[cap + 1];

double val1=0, val2=0, val3 = 0, val4, val5, val6, val7;

Tk sim1, sim2, sim3, sim4, sim5, sim6, sim_cen, sim7;

sim_cen.x1 = sim_cen.x2 = 0;

int i;

double J1;

bool flag;

for (i = 0; i <= cap; i++) // Вычисление значений функции на начальном симплексе

f[i] = function(c[i]);

while (!Ostanov(c, tchn, n, sim_cen, out J1))// Проверка на условие выхода

{n++;

// Шаг 1. Сортировка

Pr(ref c, ref f);

sim1 = c[cap]; val1 = f[cap];

sim2 = c[cap - 1]; val2 = f[cap - 1];

sim3 = c[0]; val3 = f[0];

// Шаг 2. Вычисление центра тяжести симплекса

sim_cen.x1 = sim_cen.x2 = 0;

for (i = 0; i < cap; i++)

sim_cen = sim_cen + c[i];

sim_cen = sim_cen / cap;

// 3Шаг . Отражение

sim4 = sim_cen * (1 + Al) - sim1 * Al; val4 = function(sim4);

// Шаг 4.

if (val4 <= val3)

{ // Шаг 4a.

sim5 = sim_cen * (1 - Gm) + sim4 * Gm;

val5 = function(sim5);

if (val5 < val3)

{c[cap] = sim5;

f[cap] = val5;}

else

{c[cap] = sim4;

f[cap] = val4;}}

if ((val3 < val4) && (val4 <= val2))

{ // Шаг 4.b

c[cap] = sim4;

f[cap] = val4;}

flag = false;

if ((val1 >= val4) && (val4 > val2))

{ // Шаг 4c.

flag = true;

val7 = val1;

sim7 = sim1;

c[cap] = sim4;

f[cap] = val4;

sim4 = sim7;

val4 = val7;}

// Шаг 4d.

if (val4 > val1) flag = true;

if (flag)

{// Шаг 5. Сжатие

sim6 = sim1 * Bt + sim_cen * (1 - Bt);

val6 = function(sim6);

if (val6 < val1)

{ // Шаг 6.

val7 = val1;

sim7 = sim1;

c[cap] = sim6;

f[cap] = val6;

sim6 = sim7;

val6 = val7;}

else

{ // Шаг 7. Глобальноесжатие

for (i = 0; i <= cap; i++)

c[i] = sim3 + (c[i] - sim3) / 2;}}

op[n - 1] = Convert.ToString(n) + "; " + sim1.ToString() +

"; " + sim2.ToString() + "; " + sim3.ToString();}

return (val3 + val1 + val2) / 3;}}

private void button1_Click(object sender, EventArgs e)

{Tk ta = new Tk(0, 0);

Tk tb = new Tk(0.26, 0.96);

Tk tc = new Tk(0.96, 0.26);

Tk[] t = new Tk[3] { ta, tb, tc };

listBox1.Items.Clear();

n = 0;

op = new string[200];

double eps1 = Convert.ToDouble(textBox2.Text);

label4.Text = Cnt.Met(t, eps1).ToString("f5") + "; " + Convert.ToString(n) + ".";

for (int i = 0; i < n; i++)

listBox1.Items.Add(op[i]);}

private void Form1_Load(object sender, EventArgs e){}}


8. СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

1. Агуров П.В. C# в подлиннике (программирование на языке С#) – Петербург, 2006

2. Агуров П.В. Сборник рецептов по C# - Петербург,2006

3. Банди Б. Методы оптимизации – Москва, 1988

4. Базара М, Шетти К. Нелинейное программироваине. Теория и алгоритмы – М.:Мир, 1988

5. Поляк Б.Т. Введение в оптимизацию. - М.: Наука, 1983

6. Раскин Л.Г. Математическое программирование: Учебное пособие – Харьков: НТУ «ХПИ» , 2002

7. Рихтер Д. Программирование на платформе Microsoft. NET Freamework для профессионалов – М.Microsoft Press, 2003

8. Серая О.В. Методические указания для проведения лабораторных работ по курсу «Математическое программирование» - Харьков: НТУ «ХПИ» , 2003

9. Сухарев А.Г., Тимохов А.В Курс методов оптимизации – М.: Наука, 1986

10. Химмельблау Д. Прикладное нелинейное программирование М.:Мир, 1989


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Тгу им. Г. Р. Державина
Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
star star star star star
РЭУ им.Плеханово
Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
star star star star star
ФЭК
Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Подогнать готовую курсовую под СТО

Курсовая, не знаю

Срок сдачи к 7 дек.

только что
только что

Выполнить задания

Другое, Товароведение

Срок сдачи к 6 дек.

1 минуту назад

Архитектура и организация конфигурации памяти вычислительной системы

Лабораторная, Архитектура средств вычислительной техники

Срок сдачи к 12 дек.

1 минуту назад

Организации профилактики травматизма в спортивных секциях в общеобразовательной школе

Курсовая, профилактики травматизма, медицина

Срок сдачи к 5 дек.

2 минуты назад

краткая характеристика сбербанка анализ тарифов РКО

Отчет по практике, дистанционное банковское обслуживание

Срок сдачи к 5 дек.

2 минуты назад

Исследование методов получения случайных чисел с заданным законом распределения

Лабораторная, Моделирование, математика

Срок сдачи к 10 дек.

4 минуты назад

Проектирование заготовок, получаемых литьем в песчано-глинистые формы

Лабораторная, основы технологии машиностроения

Срок сдачи к 14 дек.

4 минуты назад

2504

Презентация, ММУ одна

Срок сдачи к 7 дек.

6 минут назад

выполнить 3 задачи

Контрольная, Сопротивление материалов

Срок сдачи к 11 дек.

6 минут назад

Вам необходимо выбрать модель медиастратегии

Другое, Медиапланирование, реклама, маркетинг

Срок сдачи к 7 дек.

7 минут назад

Ответить на задания

Решение задач, Цифровизация процессов управления, информатика, программирование

Срок сдачи к 20 дек.

7 минут назад
8 минут назад

Все на фото

Курсовая, Землеустройство

Срок сдачи к 12 дек.

9 минут назад

Разработка веб-информационной системы для автоматизации складских операций компании Hoff

Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления

Срок сдачи к 1 мар.

10 минут назад
11 минут назад

перевод текста, выполнение упражнений

Перевод с ин. языка, Немецкий язык

Срок сдачи к 7 дек.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно