МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ, МОЛОДЕЖИ И СПОРТА УКРАИНЫ
ГОСУДАРСТВЕННОЕ ВЫСШЕЕ УЧЕБНОЕ ЗАВЕДЕНИЕ
ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра АТ
Лабораторная работа №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 изображение функции