Сланбекова А.Е., Фазылова Л.С.

Карагандинский государственный университет им. Е.А. Букетова, Казахстан

Применение системы MATLAB при решении задач на условный экстремум функции многих переменных

 

Постановка задачи. Будем рассматривать задачу

 ,

где  - выпуклое замкнутое множество пространства  - пространства векторов длины n, а функция - выпуклая дифференцируемая функция на  и  

Пусть  - некоторое начальное приближение к точке минимума  функции . По методу проекции градиента последовательность приближений  к точке  строится по следующему правилу [1]:

 ,                           (1)

где  - положительная величина, а  - проекция точки  на множество .

Величина  из (1) в различных вариантах метода проекции градиента вычисляется по-разному. Укажем способ, который применялся в данной работе. Выбирают какую-либо постоянную  и в методе (1) на каждой итерации полагают , а затем проверяют условие монотонного убывания функции

.                                            (2)

И, при необходимости, дробят величину , добиваясь выполнения условия (2).

Условием окончания вычислений по методу проекции градиента является выполнение неравенства  где  - заданная точность.

Далее представлена численная реализация метода проекции градиента в системе MATLAB 7 на примере двумерной выпуклой квадратичной функции. При решении задачи применялись графические возможности системы MATLAB 7 [2].

Пример. Решить задачу выпуклого программирования

,

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

Решение. 1) Приведем графический способ решения задачи. Построим графики функций , . Для этого в системе MATLAB введем следующие процедуры:

>> [X,Y]=meshgrid(-3:0.1:3);

>> Z=1/2*X.^2+1/6*Y.^2; surf(X,Y,Z)

>> [X,Y]=meshgrid(-3:0.1:3);

>> Z=X+Y-1;

>> hold on

>> mesh(X,Y,Z)

>> hidden off

Результат представлен на рисунках 1, 2.

2) Построим в системе MATLAB итерационный процесс (1) для данной задачи. Сначала для наглядности выполним один шаг итерации метода проекции градиента. В качестве начального приближения выберем, например, точку . Затем вычислим градиент функции : . Применим формулу (1) для вычисления первого приближения к точке минимума  функции : , где , а параметр метода  выбираем из условия (2): . Например, .

Рисунок 1

Рисунок 2

1 шаг. Так как  и , то по формуле (1) при  получим

Полученная точка , так как не выполняется условие , т.е. . Поэтому найдем проекцию полученной точки на множество : .

Заданная точность не достигнута: .

Результаты вычислений на следующих шагах метода проекции градиента приведены в следующей таблице:

k

0

(0,5000; 0,5000)

 

(0,5000; 0,3333)

(0,2500; 0,5833)

1

(0,4167; 0,5833)

0,1179

(0,4167; 0,1944)

(0,2083; 0,4861)

2

(0,3611; 0,8889)

0,0786

(0,3217; 0,1533)

(0,1633; 0,3415)

3

(0,3299; 0,8232)

0,0517

(0,2333; 0,0476)

(0,1465; 0,1415)

4

(0,2798; 0,7879)

0,0313

(0,1233; 0,0136)

(0,4998; 0,0339)

5

(0,2566; 0,7633)

0,0117

(0,0733; 0,0036)

(0,2198; 0,6339)

6

(0,2477; 0,7478)

0,0023

Точность достигнута

Окончательно имеем

, .

 

Литература:

1.       Васильев Ф.П. Численные методы решения экстремальных задач. М.: Наука, 1981. - 400 с.

2.       Кетков Ю.Л., Кетков А.Ю., Шульц М.М. MATLAB 7: программирование, численные методы. СПб.: БХВ-Петербург, 2005. - 752 c.