Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Архив1 / docx57 / Otchet5

.docx
Скачиваний:
22
Добавлен:
01.08.2013
Размер:
32.91 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Пензенская государственная технологическая академия»

(ПГТА)

Факультет «Институт образовательных технологий»

Кафедра «Прикладная математике и исследование операций в экономике»

Дисциплина «Дискретная математика. Методы оптимизации. Численные методы»

ОТЧЕТ

о лабораторной работе № 5

на тему «Безусловная минимизация функций нескольких переменных»

Выполнил: студент гр.11

Приходько Р.

Принял:

Пенза 2012г.

Цель работы: приобретение навыков решения задач безусловной минимизации функций нескольких переменных численными методами в Matlab.

Задание: Составить программу в системе Matlab (расширение файла *.m), реализующую заданный метод оптимизации.

варианта

Функция

Погрешность

Метод оптимизации

18

Метод градиентного спуска с постоянным шагом

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

  1. Текст программы.

clc

clear;

e=2.718;

%c помощью встроенной функции

ff=@(x) sqrt(2.*x(1).^2+x(2).^2)-e.^(x(1).^2 + (2.*x(2).^2))-x(1);

[Min1,Min2]=fminunc(ff,[0.1 0.1]);

disp('Минимум, найденный по встроенной функции: ')

disp(Min1(1))

%Метод градиентного спуска с постоянным шагом

% Значения коэффициентов

g = 0.097; % постоянная шага

d = 0.01; % дельта

% Начальная точка

x1 = 0.1;

x2 = 0.1;

k = 1; % Счетчик шагов

kmax = 100; % Предельное число шагов,

% задается для предотвращения зацикливания

% Массивы для хранения промежуточных координат

x1trace = [x1];

x2trace = [x2];

i = 2;

while k < kmax

% Спуск по обеим координатам сразу

gr1 = (-2*x1*eps^(x1^2+2*x2^2))+((2*x1)/sqrt(2*x1^2+x2^2))-1; %f'(x1)

gr2 = 2*x2*((1/sqrt(x2^2+2*x1^2))-4*eps^(2*x2^2+x1^2)); %f'(x2)

x1 = x1 + g*gr1;

x2 = x2 + g*gr2;

% Сохранение координат

x1trace(i) = x1;

x2trace(i) = x2;

i = i + 1;

% Проверка условия останова

if sqrt(gr1^2 + gr2^2) <= d;

break; % Выход из цикла в случае выполнения условия

end

k = k + 1;

end

disp('Минимум, найденный методом градиентного спуска с постоянным шагом:')

disp(x1)

xlswrite('lab5',x1,1,'A1')

  1. Вывод результата, который совпадает с проверкой.

  1. Просмотр результата в файле:

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

Соседние файлы в папке docx57