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

Архив1 / doc200 / 4 лаба

.doc
Скачиваний:
19
Добавлен:
01.08.2013
Размер:
105.47 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ, МОЛОДЕЖИ И СПОРТА УКРАИНЫ

ГОСУДАРСТВЕННОЕ ВЫСШЕЕ УЧЕБНОЕ ЗАВЕДЕНИЕ

ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра АТ

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

Выполнил

ст. гр. ТКС-12ас

Пахомов С.С.

Приняли:

Зайцева Э.Е.

Поцепаев В.В.

Донецк

2012

Цель работы : Произвести минимизацию заданной функции методом Хука-Дживса, построить траекторию движения точки и линии уровня целевой ф-ии

Заданная ф-я имеет следующий вид

f(x1,x2)=A*(x1+b)^2+C(x2+D)^2+Ex1*x2

Минимум найден

fb = 6.6971e-024

x = -50.0000 -20.0000

kz = 345

Kit = 55

рис.1 Линии уровня целевой ф-ии и траектория движения точки из начальной в точку минимума.

Листинг программы в Матлаб

clear all;

clc;

n=2

h=0.1

x = [-10 10];

z(x(1),x(2)); % наша заданная функция

for i=1:n

y(i)=x(i);

b(i)=x(i);

end;

kz=0;

flag=0;

kz=kz+1;

f=z(x(1),x(2));

fb=f;

Kit=1;

while h>1.0e-8

t(1,Kit)=x(1);

t(2,Kit)=x(2);

Kit=Kit+1;

for j=1:n

x(j)=y(j)+h;

kz=kz+1;

z(x(1),x(2));

if z(x(1),x(2))<f

y(j)=x(j);

else

x(j)=y(j)-h;

kz=kz+1;

z(x(1),x(2));

if z(x(1),x(2))<f

y(j)=x(j);

else

x(j)=y(j);

z(x(1),x(2));

end;

end;

f=z(x(1),x(2));

kz=kz+1;

end;

if f<fb-1.0e-8

for i=1:n

p(i)=2*y(i)-b(i);

b(i)=y(i);

x(i)=p(i);

y(i)=x(i);

z(x(1),x(2));

end;

fb=f;

flag=1;

f=z(x(1),x(2));

kz=kz+1;

else

if flag==1

for i=1:n

y(i)=b(i);

x(i)=b(i);

z(x(1),x(2));

end;

flag=0;

f=z(x(1),x(2));

kz=kz+1;

fb=f;

else

h=h/10;

end;

end;

end;

disp(['Минимум найден'])

fb, x, kz, Kit

plot(t(1,:),t(2,:),'r')

hold on

[x1 x2]=meshgrid(-90:0.1:10,-40:0.1:10);

figure(1)

contour (x1, x2, z(x1,x2), 10)

figure(2)

mesh(z(x1,x2))

ЗD изображение функции

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