Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №2. Безусловная многомерная оптимизация1.doc
Скачиваний:
52
Добавлен:
02.05.2014
Размер:
287.23 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра ТК

Отчет по лабораторной работе №2

по предмету «Методы оптимизации»

на тему: Безусловная многомерная оптимизация

Выполнил:

Проверил: Хасанов А.Ю.

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

Найти минимум функции f(x1, x2) = 11·x1 - 0.4·x2 + exp(x12 + 0,21·x22).

Начальное приближение (-1,0); точность решения 0,0001.

Для решения задачи использовать методы:

а) градиентный метод с дроблением шага

б) метод Гаусса-Зейделя (в качестве алгоритма одномерного поиска

использован алгоритм золотого сечения)

в) метод симплекса

г) метод поиска по образцу

Блок-схема поиска по образцу

y[0]=fx(x[1][0],x[2][0]), N=1; k=0

да

нет

да

нет

да

нет

да

нет

k=0; l=1

i=1

l=i

да

нет

i++

i=4

нет да

да

h=h/2;

нет

x[1][l-2]=x[1][0];

x[2][l-2]=x[2][0];

y[l-2]=y[0]; k=l-2;

x[1][l+2]=x[1][0];

x[2][l+2]=x[2][0];

y[l+2]=y[0]; k=l+2;

нет

да

minx1=x[1][0]; minx2=x[2][0]; minf=y[0];

x[1][0]=x[1][l];

x[2][0]=x[2][l];

y[0]=y[l];

Блок-схема симплекс метода

x[1][1]=x[1][0]+r; x[2][1]=x[2][0]; x[1][2]=x[1][0]; x[2][2]=x[2][0]+r;

y[0]=fx(x[1][0],x[2][0]);

y[1]=fx(x[1][1],x[2][1]);

y[2]=fx(x[1][2],x[2][2]); N=3;

l1=0,l2=0;

i=0

да

нет

l2=i

i++

i=2

i=0

да

нет

i=2

да

нет

c1=0,c2=0

minx1=x[1][l1]; minx2=x[2][l1]; minf=y[l1];

i=0

c1+=x[1][i]; c2+=x[2][i];

да

нет

i++

i=2

c1/=2; c2/=2;

u1=2*c1-x[1][l2]; u2=2*c2-x[2][l2]; y[3]=fx(u1,u2); N++;

да нет

i=0

x[1][l2]=u1;

x[2][l2]=u2;

y[l2]=y[3];

x[1][i]=(x[1][i]+x[1][l1])/2; x[2][i]=(x[2][i]+x[2][l1])/2; y[i]=fx(x[1][i],x[2][i]); N++

да

нет

i++

i=2

r=r/2; N=N+2

Блок-схема градиентного метода с дроблением шага

gradf1=11+2*x1*exp(x1*x1+0.21*x2*x2);

gradf2=-0.4+0.42*x2*exp(x1*x1+0.21*x2*x2);

k=0; N=0; t=0

grad[1]=gradf1(x1[k],x2[k],1);

grad[2]=gradf2(x1[k],x2[k],2); t=t+2;

D=pow(grad[1],2)+pow(grad[2],2)

y=fx(x1[k],x2[k])

z1=fx(x1[k]-alfa*grad[1],x2[k]-alfa*grad[2])

z1-y>-alfa*delta*D

нет

да

x1[k+1]=x1[k]-alfa*grad[1];

x2[k+1]=x2[k]-alfa*grad[2];

grad[1]=gradfx(x1[k+1],x2[k+1],1);

grad[1]=gradfx(x1[k+1],x2[k+1],2);

D=pow(grad[1],2)+pow(grad[2],2)

k++; t=t+2

alfa=alfa/2

minx1=x1[k];

minx2=x2[k];

minf=fx(minx1,minx2);

нет да