Matlab之规划问题求解教程

Matlab之规划问题求解教程,第1张

1.求最小值

%minz = 2x1+3x2+x3
%x1+4x2+2x3>= 8
%3x1+2x2>=6
%x1,x2,x3>=0
c= [2;3;1];
a =[1,4,2;3,2,0]
b =[8;6];
[x,y] = linprog(-00c,-a,-b,[],[],zeros(3,1))

2.非线性规划

%minf(x) = x1^2 + x2^2 +8
%x1^2 -x2>=0
%-x1-x2^2=2=0
%x1,x2>=0
function f = fun1(x)
f = x(1)^2+x(2)+8;
end
function [g,h] = fun2(x);
g = -x(1)^2+x(2); %不等式约束 g(1) g(2) g(3)...
h = -x(1)-x(2)+2;%等式约束 h(1) h(2) ...
end
[x,y] = fmincon('fun1',rand(2,1),[],[],[],[],zeros(2,1),[], ...
'fun2',options)

函数fmincon

X = fmincon(fun,x0,A,B,aeq,beq,LB,UB,NONLCON,OPTIONS)

返回回值是向量x,其中FUN是M文件定义的目标函数

X0 是x的初始值

A,B,Aeq,Beq定义了线性约束的条件,如果没有线性约束,A = [],B = [],Aeq = [],Beq = []

LB和UB是变量X的下界和上界,无上界和无下界用inf表示

NONCON是定义的非线性向量函数C(X) 和Ceq(X)

OPTIONS定义了MATLAB的默认参数设置

3.二次规划

非线性目标函数是自变量的二次函数,约束条件又全部都是线性的,则称这种规划为二次规划

二次规划的命令

[X,FAVL] = quadprog(h,f,A,B,Aeq,Beq,LB,UB,X0,OPTIONS)

h 设矩阵H第i行第j列的元素H(i,j)二次项系数为a(i,j)

那么H(i,j) = 2a(i,j) i=j H(i,j) = a(i,j) i≠j

f ,一次项系数

A,B不等式系数

Aeq,Beq等式系数

LB,自变量的最小值

UB,自变量的最大值

X0,自变量的起始值

4.整数规划

当自变量的取值是整数的时候,称为整数规划,并且,自变量的约束都是线性的时候称为线性规划

(1)0-1整数规划

自变量的取值是0-1时称为0-1规划,约束条件时0≤x≤1,x(1-x) = 0;

隐枚举法解0-1规划

(2)随机取样计算法

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/541239.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019-08-15
下一篇 2019-08-15

发表评论

登录后才能评论

评论列表(0条)

保存