精华内容
下载资源
问答
  • matlab线性规划案例代码
  • 线性规划MATLAB的实现
  • Matlab线性规划实例

    万次阅读 多人点赞 2017-08-05 23:06:39
    线性规划习题 对之前的线性规划总结的一些练习题

    线性规划习题

    之前的线性规划的练习题


    1. 题目

      1. 这里写图片描述

      2. 这里写图片描述

      3. 这里写图片描述

      4. 这里写图片描述
    2. 解答

      1. f = [3 -1 -1];
        A = [1 -2 1;4 -1 -2];
        b = [11,-3]';
        Aeq = [-2 0 1];
        beq = [1];
        [x,y] = linprog(-f,A,b,Aeq,beq,zeros(3,1));
        z = y

      2. 这里是一个到线性规划的转换,要做一个变量的变换,把每一个绝对值x都替换成一个u和v的表示变量
        如: u = (x + |x|) / 2 v = (|x| - x) / 2
        代码:
        clc,clear
        c = 1:4;
        c = [c,c];
        aeq = [1 -1 -1 1;1 -1 1 -3;1 -1 -2 3];
        Aeq = [aeq,-aeq];
        beq = [0 1 -1/2];
        [x,y] = linprog(c,[],[],Aeq,beq,zeros(8,1))
        x = x(1:4)-x(5:8)

        这里可以看到:
        将|x|转换为u和v之后,进行一个8个向量的线性规划,修改Aeq和f的值,但是这里的beq不需要8个向量

      3. 这里根据三种产品对应的六种工序之间可以分类。原因在于每一种工序的价格和约束不同,基于此,可以发现,第一种产品有5个参数,第二种产品3个参数,但是对于第三种产品而言,题目中要求必须完成A、B这2道工序,因此第三个只有一个参数。
        a = [0.25 0.35 0.50];
        b = [1.25 2.00 2.80];
        c = [6000 10000 4000 7000 4000];
        d = [300 321 250 783 200];
        f = [b(1)-a(1)-d(1)/c(1)*5,b(1)-a(1)-d(2)/c(2)*7,-d(3)/c(3)*6,-d(4)/c(4)*4,-d(5)/c(5)*7,-d(1)/c(1)*10,-d(2)/c(2)*9,b(2)-a(2)-d(3)/c(3)*8,b(3)-a(3)-d(2)/c(2)*12-d(4)/c(4)*11];
        Aeq = [5 0 0 0 0 10 0 0 0;0 7 0 0 0 0 9 0 12;0 0 6 0 0 0 0 8 0;0 0 0 4 0 0 0 0 11;0 0 0 0 7 0 0 0 0];
        beq = c;
        A = [1 1 -1 -1 -1 0 0 0 0;0 0 0 0 0 1 1 -1 0];
        b = [0 0];
        ub = zeros(9,1);
        [x,y] = intlinprog(-f,ones(9,1),Aeq,beq,A,b,ub);
        z = -y
        x

      4. 这里的和第三题类似,分成了3×4=12种情况
        c = [3100;3800;3500;2850];
        c = c*ones(1,3);
        c = c(:);
        a1 = zeros(4,12);
        for i = 1:4
        a1(i,i:4:12) = 1;
        end
        b1 = [18;15;23;12];
        a2 = zeros(3,12);
        for i = 1:3
        a2(i,4*i-3:4*i) = 1;
        end
        b2 = [10 16 8]';
        bb = [480;650;580;390];
        a3 = zeros(3,12);
        for j = 1:3
        a3(j,4*j-3:4*j) = bb;
        end
        b3 = [6800 8700 5300]';
        a = [a1;a2;a3];
        b = [b1;b2;b3];
        aeq = zeros(2,12);
        aeq(1,1:4) = 1/10;
        aeq(1,5:8) = -1/16;
        aeq(2,5:8) = 1/16;
        aeq(2,9:12) = -1/8;
        beq = zeros(2,1);
        [x,y] = linprog(-c,a,b,aeq,beq,zeros(12,1));
        y = -y

    3. 总结
      对于单纯的线性规划问题来说的话,lingo其实更加好用,而且对于一些数据量较为大的情况,比如超过lingo默认的32M内存的情况,这个时候可以修改lingo的设置,但是Matlab无法进行求解。

    原文地址:http://blog.csdn.net/qq_34861102/article/details/76736599

    展开全文
  • Matlab 线性规划问题模型代码

    千次阅读 2019-09-28 01:32:35
    线性规划问题的基本内容 线性规划解决的是自变量在一定的线性约束条件下,使得线性目标函数求得最大值或者最小值的问题。 \[ \min z=\sum_{j=1}^{n} f_{j} x_{j} \] \[ \text { s.t. }\left\{\begin{array}{ll}{\...

    1489774-20190917102015014-515418142.png

    线性规划问题的基本内容

    线性规划解决的是自变量在一定的线性约束条件下,使得线性目标函数求得最大值或者最小值的问题。

    \[ \min z=\sum_{j=1}^{n} f_{j} x_{j} \]

    \[ \text { s.t. }\left\{\begin{array}{ll}{\sum_{j=1}^{n} a_{i j} x_{j} \leqslant b_{i}} & {(i=1,2, \cdots, m)} \\ {\sum_{j=1}^{n} a_{k j}^{\mathrm{eq}} x_{j} \leqslant b_{k}^{\mathrm{eq}}} & {(k=1,2, \cdots, h)} \\ {\mathrm{lb}_{j} \leqslant x_{j} \leqslant \mathrm{ub}_{j}} & {(j=1,2, \cdots, n)}\end{array}\right. \]

    其中

    价值系数向量为
    \[ \mathbf{F}=\left(f_{1}, f_{2}, \cdots, f_{n}\right)^{\mathrm{T}} \]

    决策变量向量为
    \[\mathbf{X}=\left(x_{1}, x_{2}, \cdots, x_{n}\right)^{\mathrm{T}}\]

    不等式约束系数矩阵为
    \[\mathbf{A}=\left(\begin{array}{ccc}{a_{11}} & {\cdots} & {a_{1 n}} \\ {\vdots} & {\ddots} & {\vdots} \\ {a_{m 1}} & {\cdots} & {a_{m n}}\end{array}\right)\]

    不等式右端常数向量为
    \[\mathbf{B}=\left(b_{1}, b_{2}, \cdots, b_{n}\right)^{\mathrm{T}}\]

    等式约束系数矩阵为
    \[\mathbf{A}_{eq} = \left(\begin{array}{ccc}{a_{11}^{\mathrm{cq}}} & {\cdots} & {a_{1 n}^{\mathrm{cq}}} \\ {\vdots} & {\ddots} & {\vdots} \\ {a_{\mathrm{h1}}^{\mathrm{eq}}} & {\cdots} & {a_{\mathrm{hn}}^{\mathrm{eq}}}\end{array}\right)\]

    等式右端常数向量为
    \[\mathbf{B}_{\mathrm{eq}}=\left(b_{1}^{\mathrm{eq}}, b_{2}^{\mathrm{eq}}, \cdots, b_{\mathrm{h}}^{\mathrm{eq}}\right)^{\mathrm{T}}\]

    决策变量下界向量为
    \[\mathbf{L B}=\left(\mathrm{lb}_{1}, \mathrm{lb}_{2}, \cdots, \mathrm{lb}_{n}\right)^{\mathrm{T}}\]

    决策变量上界变量为
    \[\mathbf{UB}=\left(\mathrm{ub}_{1}, \mathrm{ub}_{2}, \cdots, \mathrm{ub}_{n}\right)^{\mathrm{T}}\]

    当目标函数为最小值时,上述问题可以写成如下形式:

    \[ \min z=\boldsymbol{F}^{\mathrm{T}} \boldsymbol{X} \]

    \[ \text { s.t. }\left\{\begin{array}{l}{\mathbf{A}\mathbf{X} \leqslant \mathbf{B}} \\ {\mathbf{A}_{\mathrm{eq}} \mathbf{X}=\mathbf{B}_{\mathrm{eq}}} \\ {\mathbf{LB} \leqslant \mathbf{X} \leqslant \mathbf{UB}}\end{array}\right. \]

    当目标函数为最大值时,上述问题可以写成如下形式:
    \[ \max z=\boldsymbol{-F}^{\mathrm{T}} \boldsymbol{X} \]

    \[ \text { s.t. }\left\{\begin{array}{l}{\mathbf{A}\mathbf{X} \leqslant \mathbf{B}} \\ {\mathbf{A}_{\mathrm{eq}} \mathbf{X}=\mathbf{B}_{\mathrm{eq}}} \\ {\mathbf{LB} \leqslant \mathbf{X} \leqslant \mathbf{UB}}\end{array}\right. \]


    Matlab模型代码

    调用形式

        [X,FVAL,EXITFLAG,OUTPUT,LAMBDA] = linprog(F,A,B,Aeq,Beq,LB,UB) % 目标函数为最小值
        [X,FVAL,EXITFLAG,OUTPUT,LAMBDA] = linprog(-F,A,B,Aeq,Beq,LB,UB) % 目标函数为最大值

    输入变量

    • F 为目标函数中的价值系数向量

    • A 为不等式约束系数矩阵(注意默认不等式方向为小于等于,若为大于等于,需要将其取相反数)

    • B 为不等式右端常数向量(注意默认不等式方向为小于等于,若为大于等于,需要将其取相反数)

    • Aeq 为等式约束系数矩阵

    • Beq 为等式右端常数向量

    • LB 为决策变量下界向量

    • UB为决策变量上界向量

    在调用时,输入参数不存在时,可以将其输入用 [] 空矩阵表示。

    输出变量

    • X 为最优解
    • FVAL 为最优目标值
    • EXITFLAG 为运行结束标志,当等于1时,表示程序收敛于解 X;当等于0时,表示程序运行次数到达最大;当小于0时,说明情况较多
    • OUTPUT 为程序迭代次数
    • LAMBDA 为解X相关的Largrange乘子和影子价格


    案例演示

    目标函数与约束条件

    \[ \min z=2 x_{1}+3 x_{2}+x_{3} \]

    \[ \left\{\begin{array}{l}{x_{1}+4 x_{2}+2 x_{3} \geq 8} \\ {3 x_{1}+2 x_{2} \geq 6} \\ {x_{1}, x_{2}, x_{3} \geq 0}\end{array}\right. \]

    Matlab程序

    F= [2;3;1];
    A = [1,4,2;3,2,0];
    B = [8;6];
    LB = zeros(3,1);
    [X,FVAL] = linprog(F,-A,-B,[],[],LB,[])

    运行结果

    Optimization terminated.
    
    X =
    
        0.8066
        1.7900
        0.0166
    
    
    FVAL =
    
        7.0000
    

    转载于:https://www.cnblogs.com/gshang/p/11486534.html

    展开全文
  • matlab求解非线性0-1规划案例

    千次阅读 2021-01-13 12:59:40
    %非线性等式约束 end fmincon函数详解 在matlab中,fmincon函数可以求解带约束的非线性多变量函数(Constrained nonlinear multivariable function)的最小值,即可以用来求解非线性规划问题 matlab中,非线性规划模型...

    题目

    华安机械厂的厂长正考虑将该厂的一部分在市区的生产车间搬至该市的卫星城镇,好处是土地、房租费及排污处理费用等都较便宜,但这样做会增加车间之间的交通运输费用。
    该厂原在市区车间有A、B、C、D、E 五个,计划搬迁去的卫星城镇有甲、乙两处。规定无论留在市区或甲、乙两卫星城镇均不得多于3 个车间。

    在这里插入图片描述
    但搬迁后带来运输费用增加由 C i k C_{ik} Cik D j k D_{jk} Djk 值决定, C i k C_{ik} Cik i i i k k k车间之间的年运量, D j k D_{jk} Djk 为市区同卫星城镇
    间单位运量的运费,具体数据分别见下表

    在这里插入图片描述
    请为厂长提供一个决策建议方案,哪几个车间搬至卫星城镇及搬至甲还是乙,能带来最大的经济上的好处。

    问题简化

    该问题其实本质上为:非线性0-1规划问题,可以参考小黄书中的0-1整数规划和非线性规划内容。

    首先,设置决策变量 X i j X_{ij} Xij为第 i i i个车间的第 j j j种状态,其中 i = 1 , 2 , 3 , 4 , 5 i = 1,2,3,4,5 i=12345分别表示车间 A 、 B 、 C 、 D 、 E A、B、C、D、E ABCDE ,而 j j j i = 1 , 2 , 3 i = 1,2,3 i=123表示为搬去甲地,搬乙地,留在市区,且xij 为0,1 变量,表示不搬、搬。如下所示:

    搬甲地搬乙地留在市区
    AX11X12X13
    BX21X22X23
    CX31X32X33
    DX41X42X43
    EX51X52X53

    约束条件

    各车间最终处于3 种状态之一,有 ∑ j = 1 3 X i j = 1 , i = 1 , 2 , 3 , 4 , 5 \sum_{j=1}^3X_{ij}=1,i=1,2,3,4,5 j=13Xij=1,i=1,2,3,4,5
    即:
    X 11 + X 12 + X 13 = 1 ; X11+X12+X13=1; X11+X12+X13=1;
    X 21 + X 22 + X 23 = 1 ; X21+X22+X23=1; X21+X22+X23=1;
    X 31 + X 32 + X 33 = 1 ; X31+X32+X33=1; X31+X32+X33=1;
    X 41 + X 42 + X 43 = 1 ; X41+X42+X43=1; X41+X42+X43=1;
    X 51 + X 52 + X 53 = 1 ; X51+X52+X53=1; X51+X52+X53=1;
    同理,又由于规定无论留在市区或甲、乙两卫星城镇均不得多于3 个车间,有 ∑ i = 1 5 X i j = 1 , j = 1 , 2 , 3 \sum_{i=1}^5X_{ij}=1,j=1,2,3 i=15Xij=1,j=1,2,3
    即:

    X 11 + X 21 + X 31 + X 41 + X 51 < = 3 ; X11+X21+X31+X41+X51<=3; X11+X21+X31+X41+X51<=3;
    X 12 + X 22 + X 32 + X 42 + X 52 < = 3 ; X12+X22+X32+X42+X52<=3; X12+X22+X32+X42+X52<=3;
    X 13 + X 23 + X 33 + X 43 + X 53 < = 3 ; X13+X23+X33+X43+X53<=3; X13+X23+X33+X43+X53<=3;

    目标函数

    最大经济效益 : 节 约 费 用 ∗ 10000 − 运 输 费 用 节约费用*10000-运输费用 10000
    节约费用: 100 ∗ x 11 + 100 ∗ x 12 + 150 ∗ x 21 + 200 ∗ x 22 + 100 ∗ x 31 + 150 ∗ x 32 + 200 ∗ x 41 + 150 ∗ x 42 + 50 ∗ x 51 + 150 ∗ x 52 100*x11+100*x12+150*x21+200*x22+100*x31+150*x32+200*x41+150*x42+50*x51+150*x52 100x11+100x12+150x21+200x22+100x31+150x32+200x41+150x42+50x51+150x52
    运输费用: 1000 ∗ b 13 + 1500 ∗ b 14 + 1400 ∗ b 23 + 1200 ∗ b 24 + 2000 ∗ b 35 + 700 ∗ b 45 1000*b13+1500*b14+1400*b23+1200*b24+2000*b35+700*b45 1000b13+1500b14+1400b23+1200b24+2000b35+700b45

    为了得到最大经济效益,需要使节约费用最大以及搬迁后的运输费用最小。故可建立相应模型,模型这里结合表格以及上述约束条件便可,我这里就不再写一次了。下面是matlab代码:

    主函数

    X0 = zeros(15, 1);
    A = [];
    B = [];
    Aeq = [];
    Beq = [];
    LB = zeros(15, 1);
    UB = ones(15,1);
    
    [x, fval] = fmincon('objfun', X0, A, B, Aeq, Beq, LB, UB, 'NONLCON')   % fmincon函数文后有详解。
    

    目标函数

    function f=objfun(x)
    f=-10000*(100*x(1)+100*x(2)+150*x(4)+200*x(5)+100*x(7)+150*x(8)+200*x(10)+150*x(11)+50*x(13)+150*x(14))+...
        (1000*(50*x(1)*x(7)+140*x(1)*x(8)+130*x(1)*x(9)+50*x(2)*x(8)+90*x(2)*x(9)+50*x(3)*x(9))+...
        1500*(50*x(1)*x(10)+140*x(1)*x(11)+130*x(1)*x(12)+50*x(2)*x(11)+90*x(2)*x(12)+50*x(3)*x(12))+...
        1400*(50*x(4)*x(7)+140*x(4)*x(8)+130*x(4)*x(9)+50*x(5)*x(8)+90*x(5)*x(9)+50*x(6)*x(9))+...
        1200*(50*x(4)*x(10)+140*x(4)*x(11)+130*x(4)*x(12)+50*x(5)*x(11)+90*x(5)*x(12)+50*x(6)*x(12))+...
        2000*(50*x(7)*x(13)+140*x(7)*x(14)+130*x(7)*x(15)+50*x(8)*x(14)+90*x(8)*x(15)+50*x(9)*x(15))+...
        700*(50*x(10)*x(13)+140*x(10)*x(14)+130*x(10)*x(15)+50*x(11)*x(14)+90*x(11)*x(15)+50*x(12)*x(15)));
    end
    

    约束条件

    function [g, ceq] = NONLCON(x)
     g = [x(1)+x(4)+x(7)+x(10)+x(13)-3
         x(2)+x(5)+x(8)+x(11)+x(14)-3
         x(3)+x(6)+x(9)+x(12)+x(15)-3];   %非线性不等式约束
     ceq = [x(1)+x(2)+x(3)-1
            x(4)+x(5)+x(6)-1
            x(7)+x(8)+x(9)-1
            x(10)+x(11)+x(12)-1
            x(13)+x(14)+x(15)-1];        %非线性等式约束
    end
    

    fmincon函数详解

    在matlab中,fmincon函数可以求解带约束的非线性多变量函数(Constrained nonlinear multivariable function)的最小值,即可以用来求解非线性规划问题

    matlab中,非线性规划模型的写法如下
    [x,fval]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)

    • x的返回值是决策向量x的取值,fval的返回值是目标函数f(x)的取值

    • fun是用M文件定义的函数f(x),代表了(非)线性目标函数

    • x0是x的初始值

    • A,b,Aeq,beq定义了线性约束 ,如果没有线性约束,则A=[],b=[],Aeq=[],beq=[]

    • lb和ub是变量x的下界和上界,如果下界和上界没有约束,则lb=[],ub=[],也可以写成lb的各分量都为 -inf,ub的各分量都为inf

    • nonlcon是用M文件定义的非线性向量函数约束

    • options定义了优化参数,不填写表示使用Matlab默认的参数设置

    展开全文
  • MATLAB 线性规划实例应用

    千次阅读 2018-08-13 11:34:00
    MATLAB 线性规划实例应用 线性规划 线性规划函数 功能:求解线性规划问题 语法 x = linprog(f,A,b):求解问题 min fx,约束条件为 Ax &lt;= b x = linprog(f,A,b,Aeq,beq):求解...

    MATLAB 线性规划实例应用

    • 线性规划
    1. 线性规划函数
    2. 功能:求解线性规划问题
    3. 语法
      • x = linprog(f,A,b):求解问题 min fx,约束条件为 Ax <= b
      • x = linprog(f,A,b,Aeq,beq):求解上面的问题,但增加等式约束,即 Aeqx = beq,若没有不等式存在,则令 A= []、b = []
      • x = linprog(f,A,b,Aeq,beq,lb,ub):定义设计变量 x 的下届 lb 和 上届 ub,使得 x 始终在该范围内,若没有等式约束,令 Aeq = []、beq = []
      • x = linprog(f,A,b,Aeq,beq,lb,ub,x0):设置初值为 x0。该选项只适用于中型问题,默认大型算法将忽略初值
      • x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options):用 options 指定的优化参数进行最小化
      • [x,fval] = linprog(...):返回解 x 处的目标函数值 fval
      • [x,lambda,exitflag] = linprog(...):返回 exitflag 值,描述函数计算的退出条件
      • [x,lambda,exitflag,output] = linprog(...):返回包含优化信息的输出变量 output
      • [x,fval,lambda,exitflag,output] = linprog(...):将解 x 处的拉格朗日乘子返回到 lambda 参数中
    4. 变量及算法:lambda 参数介绍
      • lambda 是解 x 处的拉格朗日乘子,它的属性如下
      • lambda.lower:lambda 的下届
      • lambda.upper:lambda 的上届
      • lambda.ineqlin:lambda 的线性不等式
      • lambda.eqlin:lambda 的线性等式
      • 大型优化算法:采用 LIPSOL 法,该法在进行迭代计算之前首先要进行一系列的预处理
      • 中型优化算法:linprog 函数使用的是投影法,就像 quadprog 函数的算法一样,linprog 函数使用的是一种活动集方法,是线性规划中单纯形法的变种,他通过求解另一个线性规划问题来找到初始可行解
    • 线性规划问题的应用
    1. 生产决策问题
      • 某厂生产甲、乙两种产品,已知制成一吨产品甲需用资源A 3 吨,资源B 4 $m^3$,制成每吨产品乙需用资源A 2 吨,资源B 6 $m^3$,资源C 7 个单位。若每吨产品和乙的经济价值分别为 7 万元和 5 万元,3 种资源的限制量分别为 80 吨、220 $m^3$ 和 230 个单位,试分析应生产这两种产品各多少吨才能使创造的总经济价值最高?
      • 这里可以令生产产品甲的数量为 $x_1$,生产产品乙的数量为 $x_2$。根据题意,代码设置如下:
        clc
        clear
        f = [-7;-5];
        A = [3 2
             4 6
            0 7];
        b = [80;220;230];
        lb = zeros(2,1);

        然后调用 linprog 函数:

        [x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb)

        最优化结果如下:

     

     

      • 由上可知,生产甲种产品 4.7619 吨、乙种产品 32.8571 吨可使创造的总经济价值最高,最高经济价值为 197.6190 万元。exitflag = 1 表示过程正常收敛于解 x 处。

    2.工作人员计划安排问题

      •  某昼夜服务的公共交通系统每天各时间段(每 4 小时为一个时间段)所需的值班人数如表所示,这些值班人员在某一时段开始上班后要连续工作 8 小时(包括轮流用餐时间),请问该公共交通系统至少需要多少名工作人员才能满足值班的需要?

      • 这里可设 $x_i$ 为第 i 个时段开始上班的人员数
        clc
        clear
        f = [1;1;1;1;1;1];
        A = [-1 0 0 0 0 -1
             -1 -1 0 0 0 0
             0 -1 -1 0 0 0
             0 0 -1 -1 0 0
             0 0 0 -1 -1 0
             0 0 0 0 -1 -1];
        b = [-50;-30;-70;-60;-40;-20];
        lb = zeros(6,1);    
      • 然后调用 linprog 函数
        [x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb)
      • 最优化结果如下:

           可见只要 6 个时段分别安排 26 人、25 人、45 人、26 人、14 人和 24 人就可以满足值班的需要,共计 160 人,并且计算结果 exitflag = 1 是收敛的

     3. 投资问题

      • 某单位有一批资金用于 4 个工程项目的投资,用于各工程项目时所得的净收益(投入资金的百分比)如表所示

      • 由于某种原因,决定用于项目 A 的投资不大于其他各投资之和,而用于项目 B 和 C 的投资要大于项目 D 的投资,试确定使该单位收益最大的投资分配方案。
      • 这里可以用 $x_1、x_2、x_3 和 x_4$ 分别代表用于项目 A、B、C 和 D 的投资百分数,由于各项目的投资百分数之和必须等于 100%,所以 $x_1+x_2+x_3+x_4 = 1$,代码设置如下:
        f = [-0.18;-0.1;-0.09;-0.12];
        A = [1 -1 -1 -1
             0 -1 -1 1];
        b = [0;0];
        Aeq = [1 1 1 1];
        beq = [1];
        lb = zeros(4,1); 
      • 调用函数:
        [x,fval,exitflag,output,lambda] = linprog(f,A,b,Aeq,beq,lb)
      • 结果如下:

    说明 A、B、C、D 投入资金的百分比分别为 50%、25%、0%、25% 时,该单位收益最大

    4. 工件加工任务分配问题

      •  某车间有两台机床甲和乙,可用于加工 3 种工件。假定这两台机床的可用台时数分别为 600 和 900,3 种工件的数量分别为 400、600 和 500,且已知用两台不同机床加工单位数量的不同工件所需的台时数和加工费用(如表所示),问怎样分配机床的加工任务,才能既满足加工工件的需求,又使总加工费用最低?

      • 这里可设在甲机床上加工工件1、2 和 3 的数量分别为 $x_1、x_2、x_3$,在乙机床上加工工件1、2 和 3 的数量分别为 $x_4、x_5、x_6$,根据 3 种工种的数量限制,则有:$x_1+x_4 = 400(对工件 1) ,x_2+x_5 = 600(对工件 2),x_3+x_6=500(对工件 3)$,根据题意:
        clc
        clear
        f = [13;9;10;11;12;8];
        A = [0.6 1.2 1.1 0 0 0
             0 0 0 0.4 1.2 1.0];
        b = [600;900];
        Aeq = [1 0 0 1 0 0
               0 1 0 0 1 0
               0 0 1 0 0 1];
        beq = [400 600 500];
        lb = zeros(6,1);

        然后调用 linprog 函数:

        [x,fval,exitflag,output,lambda] = linprog(f,A,b,Aeq,beq,lb)

        结果如下:

    在甲机床上加工 500 个工件 2,在乙机床上加工 400 个工件 1、加工 100 个工件 2、加工 500 个工件 3,可在满足条件的情况下使总加工费用最小,最小费用为 14100 元。

     

     5. 厂址选择问题

      •  A、B、C 三地,每地都出产一定数量的产品,也消耗一定数量的原料(如表所示),已知制成每吨产品需 3 吨原料,各地之间的距离为:A-B,150km;A-C,100km,B-C,200km。假定每万吨原料运输 1lm 的运价是 5000 元,每万吨产品运输 1lm 的运价是 6000 元。由于地区条件的差异,在不同地点设厂的生产费用也不同。问究竟在哪些地方设厂,规模多大,才能使总费用最小?另外,由于其他条件限制,在 B 处建厂的规模(生产的产品数量)不能超过 6 万吨

      • 这里可令 $x_{ij}$ 为由 i 地运到 j 地的原料数量(万吨),$y_{ij}$ 为由 i 地运往 j 地的产品数量(万吨),i,j = 1,2,3(分别对应A、B、C三地),根据题意:
        clc
        clear
        f = [75;75;50;50;100;100;150;240;210;120;160;220];
        A = [1 -1 1 -1 0 0 3 3 0 0 0 0
             -1 1 0 0 1 -1 0 0 3 3 0 0
             0 0 -1 1 -1 1 0 0 0 0 3 3
             0 0 0 0 0 0 0 0 1 1 0 0];
        b = [21;17;22;6];
        Aeq = [0 0 0 0 0 0 1 0 1 0 1 0
                    0 0 0 0 0 0 0 1 0 1 0 1];
        beq = [6;12];
        lb = zeros(12,1);
        [x,fval,exitflag,output,lambda] = linprog(f,A,b,Aeq,beq,lb);

        可见要使总费用最小,A、B、C 三地的建厂规模分别为 6 万吨、5.667 万吨和 6.333 万吨,最小总费用为 2.9733e+03 万元

     6. 确定职工编制问题

      • 某工厂每日 8小时的产量不低于 1800 件。为了进行质量控制,计划聘请两个不同水平的检验员。一级检验员的速度为 25件/小时,正确率 98%,计时工资 4元/小时,二级检验员的速度为 15件/小时,正确率 95%,计时工资 3元/小时,检验员每错一次,工厂要损失 2 元。现有可供厂方聘请的检验员人数为一级 7人和二级 8人。为使总检验费用最省,该工厂应聘请一级、二级检验员各多少名?
      • 可设需要一级和二级检验员的人数分别为 $x_1$ 和 $x_2$ 名,根据题意:
        clc
        clear
        f = [40;36];
        A = [1 0
             0 1
             -5 -3];
        b = [7;8;-45];
        lb = zeros(2,1);
        [x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb);

    可见,招聘一级检验员 7名,二级检验员 3名可使总检验费用最少,约为400.00元

    7. 生产计划的最优化问题

      • 某工厂生产 A 和 B 两种产品,它们需要经过 3 种设备的加工,其加工如表所示,设备一、二和三每天可使用的时间分别不超过 11、9 和 12小时。产品 A 和 B 的利润随市场的需求有所波动,如果预测未来某个时期内 A 和 B 的利润分别为 5000元/吨和 3000元/吨,问在那个时期内,每天应生产A、B各多少吨,才能使工厂获利最大?

      • 这里可设每天应安排生产 A 和 B 分别为 $x_1$ 和 $x_2$ 吨,根据题意:
        clc
        clear
        f = [-5;-3];
        A = [4 3
             5 4
             6 3];
        b = [11;9;12];
        lb = zeros(2,1);
        [x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb)

        每天生产 A 产品 1.80吨、B产品 0 吨可使工厂获得最大利益 9000元/吨。

     

        

     

    posted @ 2018-08-13 11:34 Nikki_o3o 阅读( ...) 评论( ...) 编辑 收藏
    展开全文
  • 三、线性规划问题中的Matlab求解 四、案例分析 问题分析 分析结果 整理出表达式 代码实现 可以把下面代码,先存到M文件,然后运行,也可以逐行粘贴至命令行运行 f=[-2.85,-3.05,-2.9,3.1,3.25,2.95]; f=f';f...
  • NUMPAGES 4 PAGE 3 基于MATLAB的非线性0-1规划的求解 学 生易棉生 指导教师宋来忠 三峡大学理学院 摘要本文主要研究非线性0-1整数规划的解法首先通过对传统求解方法的研究提出从0-1整数规划的变量只取值0和1这个特点...
  • MATLAB教学视频,数学建模与数值计算类:本期视频时长约75...然后通过三个具体的应用案例,详细演示了非线性规划问题的数学建模过程,以及MATLAB求解的具体方法和步骤;最后还详细讲解了fmincon函数的高级调用格式。
  • matlab初学者提供一份很好的学习教程,对matlab的学习有很大帮助。本人也是通过学习这个来学习matlab的。
  • 线性规划:实例与matlab应用

    千次阅读 2020-03-27 12:27:47
    一般非线性规划 标准型为: ...matlab中非线性规划求解的函数是fmincon,命令的基本格式如下:  x=fmincon(‘fun’,X0,A,b)  x=fmincon(‘fun’,X0,A,b,Aeq,beq)  x=fmincon(‘fun’,X0,A,b, Aeq,b...
  • 线性整数规划是一个具有指数复杂度的NP问题,如果约束较为复杂,Matlab优化工具箱和一些优化软件比如lingo等,常常无法应用,即使能应用也不能给出一个较为令人满意的解。这时就需要针对问题设计专门的优化算法。...
  • 数学建模线性规划实例及详细解答(MATLAB代码)

    万次阅读 多人点赞 2019-11-27 21:50:38
     最近在学习数学建模的算法与应用,以一本较好的书籍为指导(《数学建模算法与应用》),不过对于我来说,我主要去攻MATLAB代码及建模方法,当然书里还有lingo代码解析。对于这本书,我感觉还是蛮难啃的,就像今天我写...
  • MATLAB线性规划工具箱介绍及设计案例说明。
  • 【数学建模】线性规划模型MATLAB求解(最优化)

    千次阅读 多人点赞 2020-08-05 11:34:49
    例1.2:五、MATLAB操作六、实际案例七、论文案例片段(待完善) 线性规划模型主要针对数学建模问题中的一些小的子问题进行求解,如果想直接使用请跳转至——四、五 视频回顾 一、算法介绍  在人们的生产实践中,...
  • Matlab遗传算法与非线性规划问题的结合 目录Matlab遗传算法与非线性规划问题的结合准备遗传算法+非线性规划问题种群初始化计算适应度个体选择交叉变异插入子代记录最优解算法计算结果代码地址参考文章 准备 在编写...
  • matlab求解线性规划问题
  • 大家都知道,线性规划问题的解有三种情况:(1)惟 一最优解;(2)无穷多个最优解;(3)无最优解。至于(1)和 (3)此文不做细谈,这里针对无穷多个最优解作一些浅 析。
  • 精通matlab线性函数拟合案例初级教程
  • MATLAB教学视频,数学建模与数值计算类:本期视频时长约75...然后通过三个具体的应用案例,详细演示了非线性规划问题的数学建模过程,以及MATLAB求解的具体方法和步骤;最后还详细讲解了fmincon函数的高级调用格式。
  • 1 线性规划   在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济效益的问题。此类问题构成了运筹学的一个重要分支—数学规划,而线性规划(Linear Programming 简记 LP)则是数学规划的一...
  • MatLab建模学习笔记8——非线性规划问题求解

    万次阅读 多人点赞 2016-08-16 23:04:23
    如果目标函数或者约束函数中包含非线性函数,就称这种规划问题为非线性规划问题。非线性规划是具有非线性约束条件或目标函数的数学规划...在Matlab中求解非线性函数最优解的命令是:X=FMINCON(FUN,X0,A,B,Aeq,Be
  • SDPT3版本4.0:MATLAB/Octave软件,用于半定积分二次线性规划。SDPT3是一个Matlab程序包,用于求解包含线性方程和不等式、二阶锥约束和半定约束(线性矩阵不等式)的凸优化问题。
  • matlab解决规划问题的一般格式与案例求解
  • 1. matlab线性规划问题---------基于问题求解函数optimproblem 文章目录 系列文章目录 前言 一、线性规划是什么? 二、上手实际问题 2.1 分类问题 2.2 找对应三点 2.3 代码实例 前言 这里将展示...
  • matlab开发-加权和加权线性。对不同标准差的数据点进行加权拟合。
  • MINP混合整数非线性规划问题求解(MATLAB OPTI toolbox)

    万次阅读 多人点赞 2018-12-18 19:49:44
    MINP(mixed integer nolinear programming)问题,是运筹学中的...比如ipsolve cplex, Matlab官方提供的GMATLAB使用智能仿生算法求解的。 本文介绍 OPTI toolbox 安装方法见:https://github.com/jonathancurrie/OP...
  • clear;clc a=[1.25 8.75 0.5 5.75 3 7.25]; b=[1.25 0.75 4.75 5 6.5 7.75]; d=[3 5 4 7 6 11]; x=[5 2]; y=[1 7]; e=[20 20]; for i=1:6 for j=1:2 aa(i,j)=sqrt((x(j)-a(i))^2+(y(j)-b(i))^2);... %要转化成...
  • 运筹学上机实验,用Matlab实现分支定界法求解整数线性规划问题。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,987
精华内容 1,594
关键字:

matlab线性规划案例

matlab 订阅