线性规划&&非线性规划以及利用MATLAB的求解

一.线性规划模型(LP)

        目标函数及约束条件均为线性函数,称为线性规划问题。

        可行解:满足约束条件的解

        最优解:使目标函数达到最优值的可行解 

        注:线性方程指图像是直线的方程,非线性方程指图像不是直线的方程。一般来说线性方程就是一次函数,非线性为高次函数。          

       1. 建模的三个主要部分:

                1.1 决策变量(问题的自变量)

                1.2 目标函数

                1.3 约束条件

       2.MATLAB求解:

                2.1 求解一般线性规划问题

                        

                2.2 求解整数线性规划问题

                        

                输入参数:f:目标函数中决策变量x的系数值向量

                                  A:线性不等式约束的系数矩阵

                                  b:线性不等式约束的右端常数向量

                                  Aeq:线性等式约束的系数矩阵

                                  beq:线性等式约束的右端常数向量

                                  lb:决策变量x的上界值向量

                                  ub:决策变量x的下界值向量

                                  xint:取值为整数的决策变量x的下标

                输出参数:x:最优解

                                  fval:最优解代入目标函数中求出的最优值 

3.例题:

  

其中minz为目标函数

x1,x2为决策变量

3.1 伪代码:

f=[-72,-64];

A=[1,1;12,8;3,0];

b=[50;480;100];     

Aeq=[];

beq=[];

lb=[0;0];

ub=[];

①xint=[1,2];(x1,x2均取整数)

②xint(1);(只有x1取整数)

③xint(2); (只有x2取整数)

一般线性规划问题:[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub);

(整数线性规划问题[x,fval]=intlinprog(f,A,b,Aeq,beq,lb,ub));

二. 非线性规划模型(NLP)

        目标函数或约束条件中包含非线性函数,称这种和规划问题为非线性规划问题。

        1.MATLAB求解

                

               传入参数:fun:目标函数句柄(匿名函数)

                                 x0:决策变量的初始值向量

                                 nonlcon:非线性约束函数的句柄

                               (匿名函数,可通过把函数转化为匿名函数)

                                 A,b,Aeq,beq,lb,ub同线性规划

        2.例题:

             

                其中f(x)为非线性目标函数,

                非线性约束函数为:

        ​​​​​​​        

                2.1伪代码

fun=@(x)((4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2))*exp(x(1)))%匿名函数

x0=[0,0]

%非线性约束函数,先用函数表示再转化为匿名函数

A=[2,1;3,5];

b=[4;10];

Aeq=[1,-2];

beq=-1;

lb=[];

ub=[0;0];

[x,fval]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,@nonlcon)%d nonlcon加@转化为匿名函数

function [c,ceq] = nonlcon(x)

        c=[1-x(1)*x(2);x(1)*x(2)-1.5];%d 非线性不等式约束函数

        ceq=x(1)^2+x(2)^2-3;%d 线性不等式约束函数

end

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值