Кочура_lab1 / Богомазов_лб1
.doc
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«Юго-Западный государственный университет»
(ЮЗГУ)
Кафедра конструирования и технологии электронно- вычислительных средств
Лабораторная работа: «МЕТОДЫ БЕЗУСЛОВНОЙ ОПТИМИЗАЦИИ»
Выполнил: Богомазов Р.Ю.
Принял: Кочура А.В.
Курск 2013
-
ЦЕЛЬ РАБОТЫ
Цель лабораторной работы - закрепление навыков исследования функций на выпуклость, решение задач на нахождение безусловного экстремума выпуклой функции аналитически и численными методами, изучение способов визуализации функций двух переменных в различных вычислительных пакетах.
-
Выполнение работы
Исследуемая функция:
График функции приведен на рисунке 1.
Рисунок 1. График исследуемой функции
Аналитический метод.
Находим первые производные:
Приравниваем производные нулю и решаем систему уравнений:
Находим вторые производные и составляем матрицу Гессе
Матрица Гессе положительно определена, следовательно в точке (1,1) глобальный минимум.
Метод Ньютона.
Этот метод реализован средствами MATLAB текст программы приведен ниже
% Значения коэффициентов
g = 0.1; % дельта
% Начальная точка
x = [-0.1;1.5];
k = 1; % Счетчик шагов
kmax = 100; % Предельное число шагов,
% задается для предотвращения зацикливания
% Массивы для хранения промежуточных координат
x1trace = [x(1,1)];
x2trace = [x(2,1)];
i = 2;
while k < kmax;
% Вычисление коэффициента шага
%градиент
gr = [2*x(1,1) - 400*x(1,1)*(x(2,1)-x(1,1).^2)-2; 200*(x(2,1)- x(1,1).^2)];
%матрица Гессе
H=[1200*x(1,1).^2-400*x(2,1)+2,-400*x(1,1);-400*x(1,1),200];
d = -inv(H)*gr; % шаг
x = x + d; % модификация точки
% Сохранение координат
x1trace(i) = x(1,1);
x2trace(i) = x(2,1);
i = i + 1;
% Проверка условия останова
if sqrt(gr(1,1)^2 + gr(2,1)^2) <= g;
break;
% Выход из цикла в случае выполнения условия
end
k = k + 1;
end
% Построение графика
X = -2:0.1:2;
Y = -2:0.1:2;
[X, Y] = meshgrid(X, Y);
Z = 100*(Y-X.^2).^2 + (1-X).^2; % функция
[C, h] = contour(X, Y, Z);
clabel(C, h)
% Отображение меток на линиях уровня
hold on;
plot(x1trace, x2trace, '-+');
% Вывод начальной точки на график
text(x1trace(1) + 0.1, x2trace(1) + 0.1, 'M0');
%x1trace
%x2trace
% Вывод решения на график
text(-1.5, 1.5, char(['x1 = ' num2str(x(1,1))], ['x2 = ' num2str(x(2,1))], ['k = ' num2str(k)]));
Результат выполнения программы приведен на рисунке 2.
Рисунок 2. Результат выполнения прогаммы.
Выводы: функция была исследована на выпуклость. Была найдена точка глобального минимума (1,1) аналитическим и численным методом Ньютона. Численный метод реализован средствами MATLAB.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
-
Методы оптимизации функций многих переменных. Лабораторный практикум. Екатеринбург 2007, 42 с.
-
Применение пакета “MATLAB” для решения нелинейных задач оптимизации градиентными методами. Методические указания для семинаров по дисциплине «Оптимизация и оптимальное управление технологическими процессами» Москва 2009, 32 с.
-
Гилл Ф., Мюррей У., Райт М. Практическая оптимизация: пер.с англ. – М.: Мир, 1985 – 509 с., ил.
-
Методы Оптимизации Систем Автоматизированного Проектирования. Метод Ньютона – электронный ресурс. http://optimizaciya-sapr.narod.ru/bez_mnogomer/nuton.html