signed

QiShunwang

“诚信为本、客户至上”

15.非线性规划(下)

2020/8/19 22:49:01   来源:

非线性规划(下)

1.二次规划问题

在这里插入图片描述
在这里插入图片描述

2.例题9

在这里插入图片描述
求解代码

clear
clc
h=[4,-4;-4,8];
f=[-6;-3];
a=[1,1;4,1];
b=[3;9];
[x,value]=quadprog(h,f,a,b,[],[],zeros(2,1))

3.罚函数法

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.例题10

在这里插入图片描述
test1.m(定义增广目标函数)

function g=test1(x);
M=50000;
f=x(1)^2+x(2)^2+8;
g=f-M*min(x(1),0)-M*min(x(2),0)-M*min(x(1)^2-x(2),0)+M*abs(-x(1)-x(2)^2+2);

test2.m(使用求极小值极大值函数)

function g=test2(x);
M=50000;
f=x(1)^2+x(2)^2+8;
g=f-M*sum(min([x';zeros(1,2)]))-M*min(x(1)^2-x(2),0)+M*abs(-x(1)-x(2)^2+2);

test3.m(修改增广目标函数定义)

function g=test3(x);
M=50000;
f=x(1)^2+x(2)^2+8;
g=f-M*min(min(x),0)-M*min(x(1)^2-x(2),0)+M*(-x(1)-x(2)^2+2)^2;

主程序(可以使用test1,2,3中任意一个)

[x,y]=fminsearch('test3',rand(2,1))

5.例题11

在这里插入图片描述
fminbad函数介绍
在这里插入图片描述
fun6.m

function f=fun6(x);
f=(x-3)^2-1;

主程序

[x,y]=fminbnd('fun6',0,5)

6.例题12

在这里插入图片描述
fseminf函数介绍
在这里插入图片描述
在这里插入图片描述
fun7.m

function f=fun7(x,s);
f=sum((x-0.5).^2);

fun8.m

function [c,ceq,k1,k2,s]=fun8(x,s);
c=[];ceq=[];
if isnan(s(1,1))
    s=[0.2,0;0.2 0];
end
%取样值
w1=1:s(1,1):100;
w2=1:s(2,1):100;
%半无穷约束
k1=sin(w1*x(1)).*cos(w1*x(2))-1/1000*(w1-50).^2-sin(w1*x(3))-x(3)-1;
k2=sin(w2*x(2)).*cos(w2*x(1))-1/1000*(w2-50).^2-sin(w2*x(3))-x(3)-1;
%画出半无穷约束的图形
plot(w1,k1,'-',w2,k2,'+');

主程序

clear clc
x0 = [0.5; 0.2; 0.3]; %如果初始值取的不合适,可能就得不到可行解
[x,y]=fseminf(@fun7,x0,2,@fun8)

7.例题13

在这里插入图片描述
fminimax函数介绍
在这里插入图片描述
fun9.m

function f=fun9(x);
f=[2*x(1)^2+x(2)^2-48*x(1)-40*x(2)+304
    -x(1)^2-3*x(2)^2
    x(1)+3*x(2)-18
    -x(1)-x(2)
    x(1)+x(2)-8];

主程序

clear clc
[x,y]=fminimax(@fun9,rand(2,1))

8.优化工具

matlab工具箱里有个这个,可以点开它(APP那里)或在命令窗口用命令optimtool打开
在这里插入图片描述
在这里插入图片描述

返回目录

下一篇:15.非线性规划(下)