АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

ЗАДАНИЕ К РАБОТЕ

Читайте также:
  1. IV. Далее в этой лабораторной работе необходимо создать и сохранить запрос для отображения средних цен на все товары по таблице «Товары».
  2. Window(x1, y1, x2, y2); Задание окна на экране.
  3. Автоматизация функций в социальной работе
  4. Адаптивные процессы и адаптационные технологии в социальной работе.
  5. Б) Задание на проверку и коррекцию исходного уровня.
  6. Билет32Лазеры – это источники когерентного света, в работе которых использовано явление индуцированного излучения.
  7. БЛАНК ОТЧЁТА О ЛАБОРАТОРНОЙ РАБОТЕ № 15
  8. БЛАНК ОТЧЁТА О ЛАБОРАТОРНОЙ РАБОТЕ № 6
  9. Бригады к работе по наряду и распоряжению
  10. Буду на работе с драконом примерно до 21:00.
  11. В основной части решается практическое задание.
  12. Виды и методы защиты информации при работе с компьютером

ОТЧЕТ

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

 

по дисциплине

 

«МЕТОДЫ ОПТИМИЗАЦИИ

(ОСНОВЫ ДИСКРЕТНОЙ МАТЕМАТИКИ)»

Реализация метода Гаусса-Зейделя в программной среде Matlab.

 

 

Выполнили студенты гр. РИБ-223:

Войнов А

Емельянцев А

Бородина Е

 

Проверил:

Титов Д.А.

 

Омск-2015

ЦЕЛЬ РАБОТЫ

 

Целью работы является изучение возможности реализации методов покоординатного спуска в программной среде Matlab.

 

ЗАДАНИЕ К РАБОТЕ

 

1. Изучить метод Гаусса-Зейделя.

2. Выполнить реализацию алгоритма Гаусса-Зейделя в программной среде Matlab.

 

Функция: Z = c1∙x2 + c2∙y2 + c12∙x∙y;

 

в области:

x: от -20 до 20;

y: от -20 до 20;

 

ХОД РАБОТЫ:

 

1.Открыли файл с исходным кодом программы «gaus_zeidel»:

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

 

clear all

c1 = -2;

c2 = -1;

c12 = 1;

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

d = 0.01; % дельта

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

x1 = 16;

x2 = 18;

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

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

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

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

x1trace = [x1];

x2trace = [x2];

i = 2;

while k < kmax

% Спуск по первой координате

gr1 = 2*c1*x1 + c12*x2;

x1 = x1 + g*gr1;

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

x1trace(i) = x1;

x2trace(i) = x2;

i = i + 1;

% Спуск по второй координате

gr2 = 2*c2*x2 + c12*x1;

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

% Построение графика

x = -20:0.1:20;

y = -20:0.1:20;

[X, Y] = meshgrid(x, y);

Z = c1*X.^2 + c2*Y.^2 + c12*X.*Y;

[C, h] = contour(X, Y, Z);

clabel(C, h);

% Отображение меток на линиях уровня

hold on;

plot(x1trace, x2trace, '-');

% Вывод начальной точки на график

text(x1trace(1) + 0.2, x2trace(1) + 0.5, 'M0');

% Вывод решения на график

text(x1 + 2, x2,...

strvcat(['x1 = ' num2str(x1)],...

['x2 = ' num2str(x2)],...

['k = ' num2str(k)]));

 

 

ZZ = c1*x1.^2 + c2*x2.^2 + c12*x1.*x2;

disp(ZZ);

 

%hold off

 

 

2.Запустили программу, нажав клавишу «Run» в редакторе, получили график:

 

 

Значение максимума: -2.0289e+59

 

3. Отрицательное значение переменной «g», в исходном коде программы, изменили на положительное. Получили график:

 


Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)