Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Оптимизация на Excel.doc
Скачиваний:
23
Добавлен:
20.11.2019
Размер:
410.62 Кб
Скачать

2.Примеры реализации алгоритмов в среде Excel. Задача 1.

Постановка задачи. Cоставить алгоритм нахождения в заданном интервале [a, b] с требуемой точностью  экстремума функции f(x) одной переменной методом половинного деления.

Алгоритм метода.

Начальный этап. Выбрать константу  > 0, допустимую конечную длину интервала l > 0, начальный интервал [a0, b0]. Задать = 0 и перейти к основному этапу.

Основной этап. Шаг 1. Если b- al то остановиться. Точка минимума принадлежит интервалу [akbk]. Иначе вычислить

и перейти к шагу 2.

Шаг 2. Если f(xk) < f(yk), то ak+1 ak и bk+1 yk. В противном случае положить ak+1 yk и k+1bk. Заменить + 1 и перейти к шагу 1.

Реализация метода. На рис. 2.1 приведено содержание ячеек рабочего листа, используемых для осуществления первых двух итераций при нахождении данным методом минимума функции f(x) = (x - 2)2 + 7 при начальном интервале [‑20, 20], конечной длине интервала 0,005 и константе различимости 0,001.

Рис. 2.1. Содержание ячеек при реализация метода половинного деления

Результаты решения задачи для условий, описанных выше, приведены на рис. 2.2.

Рис. 2.2. Результаты поиска минимума функции методом половинного деления

Задача 2.

Постановка задачи. Cоставить алгоритм нахождения с требуемой точностью  экстремума функции f(X) двух переменной симплекс-методом с изменяемой длиной ребра. Начальное расположение симплекса – одна из вершин в начале координат.

Алгоритм метода.

1. Начальный этап. Расчет координат симплекса в соответствии с таблицей

№ вершины

x1

x2

1

0

0

2

P

Q

3

Q

P

где , .

Задать k = 0.

2. Определение вершин с максимальным и минимальным значением функции. Определяют те вектора X многогранника, которые дают максимальное и минимальное значение f(X), а именно

f(Xh(k)) = maxf(X1(k)), ..., f(Xn+1(k))};

f(Xl(k)) = minf(X1(k)), ..., f(Xn+1(k))}.

3. Расчет координат центра тяжести. Координаты центра тяжести рассчитываются по формуле

, j =1, …, n,

где индекс j обозначает координатное направление.

Если на k-1 этапе произошла редукция, то перейти к шагу 5, иначе к шагу 4.

4. Определение зацикливания. Зацикливание происходит в случае, если номера вершин с максимальным значением f(X) совпадают на k-ом и (k-1)-ом шагах, т.е.

h(k) = h(k-1).

Если зацикливание не обнаружено, то переход к этапу 5, в противном случае происходит проверка условия окончания поиска

В случае выполнения условия переход к этапу 7, иначе к этапу 6.

5. Отражение. Представляет проектирование Xh(k) через центр тяжести в соответствии с соотношением

.

Установить k = k + 1 и перейти к этапу 2.

6. Редукция. Расчет координат вершин симплекса осуществляется в соответствии с формулой

Xi(k+1) = Xl(k) + 0,5(Xi(k) - Xl(k)), i = 1, …, + 1.

Установить k = k + 1 и перейти к шагу 2.

7. Выдача полученных результатов. В качестве решения задачи взять вершину с минимальным значением f(X).

Реализация метода. На рис. 2.3 приведено содержание ячеек рабочего листа, используемых для осуществления первых двух итераций при нахождении данным методом минимума функции f(X) = (x1 - 2)2 + (x2 - 3)2 при начальной длине ребра, равной 1, и точности поиска 0,01

Результаты решения задачи для условий, описанных выше, приведены на рис. 2.4.