【MATLAB】MATLAB应用手册-线性与非线性规划

线性与非线性规划

本章收录了最基础的规划算法,包括线性规划,整数规划和非线性规划中最基本的MATLAB算法。

线性规划

其标准形式为
min x f T x A x b A e q x = b e q l b x u b \min_x f^Tx\\ A \cdot x \leq b\\ Aeq \cdot x = beq\\ lb \leq x \leq ub

[x,fval] = linprog(f,A,b);
[x,fval] = linprog(f,A,b,Aeq,beq);
[x,fval] = linprog(f,A,b,Aeq,beq,lb,ub);

整数规划

标准形为
min x f T x x ( i n t c o n ) i s a n i n t e g e r A x b A e q x = b e q l b x u b \min_x f^Tx\\ x(intcon)\:is\:an\: integer\\ A \cdot x \leq b\\ Aeq \cdot x = beq\\ lb \leq x \leq ub

[x,fval] = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub);

非线性规划

标准形式

min x f T x A x b A e q x = b e q c ( x ) 0 c e q ( x ) = 0 l b x u b \min_x f^Tx\\ A \cdot x \leq b\\ Aeq \cdot x = beq\\ c(x)\leq 0\\ ceq(x) = 0\\ lb \leq x \leq ub

[x,fval] = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options);
%x0为初始值,nonlcon为用m文件定义的非线性向量函数,option定义了优化参数

二次规划

min x 1 2 x T H x + f T x A x b A e q x = b e q l b x u b \min_x \frac{1}{2}x^THx+f^Tx\\ A \cdot x \leq b\\ Aeq \cdot x = beq\\ lb \leq x \leq ub

[x,fval] = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options);

其他函数

[x,fval] = fminunc(fun,x0,options);%求无约束极值
[x,fval] = fminbnd(fun,x1,x2,options);%在[x1,x2]上求极小值
[x,fval] = fseminf(fun,x0,ntheta,semifcon,A,b,Aeq,beq,lb,ub);%半无穷约束,ntheta是半无穷约束的个数
[x,fval] = fminmax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options);%最小最大优化

或者使用optimtool工具箱使用GUI求解。

猜你喜欢

转载自blog.csdn.net/weixin_42711949/article/details/107571280