Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_praktikum_TPR.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.2 Mб
Скачать

45

Лабораторный практикум

По курсу «Теория принятия решений» (36 часов)

Специальность 220200

Лабораторная работа №1

«Методы одномерной оптимизации» (2-4 часа).

Теоретическое введение

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

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

Метод прямого перебора

Алгоритм поиска экстремума методом прямого перебора заключается в сравнении значений функции y1, y2 и y3 в трех соседних точках x1, x2 и x3 в пределах отрезка [a, b] с шагом изменения h (Рис.1.1).

Рис.1.1. Поиск экстремума методом прямого перебора

Значение в точке x2 сравнивают со значениями в точках x1 и x3. Если y2 меньше y1 и y3, то значение y2 является минимумом ymin. В случае если y2 больше y1 и y3,, то имеет место максимум функции ymax. Далее делается очередной шаг внутрь отрезка [a,b] с повторением процедуры сравнения до границы отрезка.

Метод половинного деления

Метод половинного деления используется для поиска экстремума унимодальной функции, т.е. функции, имеющей на интервале [a, b] один экстремум. Заданный отрезок [a, b] делится пополам (точка c = (a+b)/2 ) и далее в середине одного из полученных отрезков, например, (Рис.1.2 а) отрезка [a,c] определяется точка x1 = (a+c)/2. Затем сравниваются значения целевой функции f(c) и f(x1), соответственно в точках c и x и если f(x1) < f(c), то b = c; c = x, иначе определяется точка справа (Рис.1.2 б)

и если f(x2) < f(с), то а = с; с = х2 иначе а = х1; b = x2.

а) б)

Рис. 1.2. Поиск экстремума методом половинного деления

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

b - a  , где  - малая величина. Блок-схема алгоритма приведена на рис.1.3.

Метод дробного шага

Поиск экстремума методом дробного шага показан на рис.1.4. Сначала задается величина шага h и начальное приближение, например, левая граница отрезка (x = a). В точке начального приближения рассчитывается значение функции

ym = f(x) и делается шаг в точку x = x + h. Если x > b, то значение xm = b считается искомым экстремумом и выводится на печать. При x  b проверяется условие h <. и если h  , то при ym < f(x) шаг уменьшается в 2 раза с изменением направления поиска на противоположное (т.е. h = - h/2). В противном случае ym = f(x), xm = x и процедура поиска повторяется.

При h <  вычисленное значение выводится на печать как искомый экстремум.

Рис.1.3. Блок-схема алгоритма метода половинного деления

Рис. 1.4. Поиск экстремума методом дробного шага

Блок-схема алгоритма метода дробного шага при отыскании минимума приведена на рис.1.5.

Рис. 1.5. Блок-схема метода дробного шага

Задание и порядок выполнения работы

  1. Для заданной целевой функции f(x) составить и реализовать программу табулирования на произвольном отрезке с заданным шагом h.

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

  1. Объединить отдельные программные модули в головную программу EXTR и выдать на экран таблицу результатов по каждому методу.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]