Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой проект МОТС вар.49, ИТИУТС 2012г, заочное.docx
Скачиваний:
161
Добавлен:
01.04.2014
Размер:
1.78 Mб
Скачать

4.3 Нелинейное программирование

Изображение фигуры

[x1,x2]=meshgrid([-5:0.1:5]);

F=6*x1.^2+6*x2.^2-3*x1.*x2+8*x2;

figure(1)

plot3(x1,x2,F)

grid on

figure(2)

contour(x1,x2,F)

grid on

figure(3)

meshc (x1,x2,F)

grid on

Рисунок 4.1 – Изображения функции цели

Построение линий уровня:

[x1,x2]=meshgrid([-2:0.1:9]);

F=6*x1.^2+6*x2.^2-3*x1.*x2+8*x2;

figure;

cl=[-1 15.5 130 300 500 ];

[c,h]=contour3(x1,x2,F,cl,'r');

clabel(c,h);

view(0,90);

Рисунок 4.2 - Линии уровня

Решение задачи нелинейного программирования без ограничений в Matlab:

F=inline('6*x(1)^2+6*x(2)^2-3*x(1)*x(2)+8*x(2)');

x0=[1 3];

options=optimset('LargeScale','off');

[x,fval,exitflag,output]=fminunc(F,x0,options);

x

fval

Local minimum found.

Optimization completed because the size of the gradient is less than

the default value of the function tolerance.

<stopping criteria details>

x =

-0.1778 -0.7111

fval =

-2.8444

Решение задачи нелинейного программирования с ограничениями в Matlab:

F=6*x1.^2+6*x2.^2-3*x1.*x2+8*x2;

A=[7 -4;1 4];

B=[-4 36];

x0=[1 3];

H=[12 -3;-3 15];

f=[0 8];

vlb=zeros(2,1);

vub=[];

x=quadprog(H,f,A,B,[],[],vlb,vub);

z=f*x+0.5*x'*H*x;

x

z

Warning: Large-scale algorithm does not currently solve this

problem formulation,

using medium-scale algorithm instead.

> In quadprog at 293

Optimization terminated.

x =

0

1.0000

z =

14.0000