close

Вход

Забыли?

вход по аккаунту

?

Лаба 3. Отчет

код для вставкиСкачать
Московский государственный технический университет им. Н.Э. Баумана
Калужский филиал
Отчет по лабораторной работе №3
«Поиск минимума функции многих переменных
при наличии ограничений»
Вариант 2
Выполнил: студент группы ЭВМ-71
Салтыков В.С.
Проверил: Корнюшин Ю.П.
Калуга, 2012
№ варианта
1. Условие варианта
f(x)
f  x1, x2   (ax1  bx2  x1 x2 ) 
2
 cos( x2  cx1)2;
2
ограничения:
x1  1, x2  2 и x1  x2  4
2. Листинг программы
a = 2.7; b = 1.2; c = 0.4;
e = 0.000001; % ТОЧНОСТЬ
x11 = 6; x12 = 7; % НАЧАЛЬНЫЕ ЗНАЧЕНИЯ
h1 = 0.1; h2 = 0.1; % ШАГ
while ((h1 > e)&&(h2 > e))
f1 = fun(a, b, c, x11, x12);
f2 = fun(a, b, c, x11+h1, x12);
if(f2 >= f1)
if((x11-h1 > 1)&&(x11-h1+x12 > 4))
f2 = fun(a, b, c, x11-h1, x12);
else
f2 = fun(a, b, c, x11, x12);
end
if (f2 >= f1)
if((x12+h2 > 2)&&(x11+h2+x12 > 4))
f2 = fun(a, b, c, x11, x12+h2);
else
f2 = fun(a, b, c, x11, x12);
end
if(f2 >= f1)
if((x12-h2 > 2)&&(x11-h2+x12 > 4))
f2 = fun(a, b, c, x11, x12-h2);
else
f2 = fun(a, b, c, x11, x12);
end
if (f2 >=
x21 =
x22 =
else
x21 =
x22 =
end
f1)
x11;
x12;
x11;
x12 - h2;
else
x21 = x11;
x22 = x12 + h2;
end
else
x21 = x11 - h1;
x22 = x12;
end
else
x21 = x11 + h1;
x22 = x12;
end
if((x21 ~= x11)&&(x22 ~= x12))
if((x12 > 2)&&(x11+x12 > 4))
p1 = x11 + 2*(x21-x11);
p2 = x12 + 2*(x22-x12);
else
p1 = x11;
2
a
b
c
2,7
1,2
0,4
2
d
p2 = x12;
end
fp = fun(p1, p2);
f3 = fun(x21, x22);
if(fp < f3)
x11 = p1;
x12 = p2;
end
else
x11 = x21;
x12 = x22;
end
h1 = h1/1.01;
h2 = h2/1.01;
end
xmin1 = x11 % МИНИМАЛЬНОЕ ЗНАЧЕНИЕ
xmin2 = x12 % МИНИМЛЬНОЕ ЗНАЧЕНИЕ
fmin = (a*xmin1+b*xmin2+xmin2*xmin1^2)^2 + cos((xmin2+c*xmin1)^2) % МИНИМУМ ФУНКЦИИ
% ВЫЧИСЛЕНИЕ ФУНКЦИИ
function f = fun(a, b, c, x1, x2)
f = (a*x1+b*x2+x2*x1^2)^2 + cos((x2+c*x1)^2);
3. Результаты вычислений
xmin1 = 1.0000
xmin2 = 3.0000
fmin = 87.0250
4. Структурная схема алгоритма
3
Начало
a; b; c;
e;
x11; x12;
h1; h2
f(x1, x2)
f1 = f(x11, x12)
f2 = f(x11+h1, x12)
f2 >= f1
нет
да
x21 = x11 + h1
x22 = x12
(x11-h1 > 1)
and
(x11-h1+x12 > 4)
нет
f2 = f(x11, x12)
да
f2 = f(x11-h1, x12)
f2 >= f1
нет
да
x21 = x11 - h1
x22 = x12
(x12+h2 > 2)
and
(x11+h2+x12 > 4)
нет
f2 = f(x11, x12)
да
f2 = f(x11, x12+h2)
f2 >= f1
нет
да
x21 = x11
x22 = x12 + h2
(x12-h2 > 2)
and
(x11-h2+x12 > 4)
нет
да
нет
f2 = f(x11, x12)
нет
x21 = x11
x22 = x12 - h2
нет
(x21<>x11)and(x22<>x12)
x11 = x21
x12 = x22
нет
да
(x12 > 2)
and
(x11+x12 > 4)
да
p1 = x11
p2 = x12
p1 = x11 + 2*(x21-x11)
p2 = x12 + 2*(x22-x12)
fp = f(p1, p2)
f3 = f(x21, x22)
fp < f3
да
x11 = p1
x12 = p2
нет
h1 = h1/1.01
h2 = h2/1.01
(h1 > e)and(h2 > e)
да
xmin1
xmin2
fmin
Конец
4
f2 = f(x11, x12-h2)
f2 >= f1
да
x21 = x11
x22 = x12
Документ
Категория
Программирование, Базы данных
Просмотров
8
Размер файла
326 Кб
Теги
лаба, отчет
1/--страниц
Пожаловаться на содержимое документа