司守奎<数学建模算法应用>第二版

您所在的位置:网站首页 数学建模例题和答案解析大全 司守奎<数学建模算法应用>第二版

司守奎<数学建模算法应用>第二版

#司守奎<数学建模算法应用>第二版| 来源: 网络整理| 查看: 265

司守奎第二版----第一章习题解答 1.1题目代码 1.2题目 1.3题目代码 1.4题目分析代码

1.1 题目

在这里插入图片描述 这道题就是简单的一个线性规划模型,不要求我们自行建立,所以就按照书本上的例题去写就行

代码 % 例题1 %使用matlab解决线性规划问题 %目标函数:z=3x1-x2-x3 % 要求x1,x2,x3都是下限大于0 c=[-3,1,1]'; A=[1,-2,1; 4,-1,-2]; b=[11,-3]'; Aeq=[-2,0,1]; beq=1; lb=zeros(3,1); ub=[];%对上限没有要求 [x,fval]=linprog(c,A,b,Aeq,beq,lb,ub)

运行结果如图所示 在这里插入图片描述

1.2 题目

分别用 M a t l a b 和 L i n g o 求解下列规划问题 : 分别用 Matlab 和 Lingo 求解下列规划问题: 分别用Matlab和Lingo求解下列规划问题: min ⁡ z = ∣ x 1 ∣ + 2 ∣ x 2 ∣ + 3 ∣ x 3 ∣ + 4 ∣ x 4 ∣ , \min z=\left|x_{1}\right|+2\left|x_{2}\right|+3\left|x_{3}\right|+4\left|x_{4}\right|, minz=∣x1​∣+2∣x2​∣+3∣x3​∣+4∣x4​∣,  s. t.  { x 1 − x 2 − x 3 + x 4 = 0 x 1 − x 2 + x 3 − 3 x 4 = 1 , x 1 − x 2 − 2 x 3 + 3 x 4 = − 1 2 \text { s. t. }\left\{\begin{array}{l} x_{1}-x_{2}-x_{3}+x_{4}=0 \\ x_{1}-x_{2}+x_{3}-3 x_{4}=1, \\ x_{1}-x_{2}-2 x_{3}+3 x_{4}=-\frac{1}{2} \end{array}\right.  s. t. ⎩ ⎨ ⎧​x1​−x2​−x3​+x4​=0x1​−x2​+x3​−3x4​=1,x1​−x2​−2x3​+3x4​=−21​​ 书上例题的解释 在这里插入图片描述

% 例题2 clear;clc % 由于有绝对值的问题,所以需要将变量进行代换 c=[1:4,1:4]'; %令ui=(xi+|xi|)/2,vi=(|xi|-xi)/2 Aeq=[1,-1,-1,1; 1,-1,1,-3; 1,-1,-2,3]; Aeq=[Aeq,-Aeq] beq=[0,1,-0.5]; [y,z]=linprog(c,[],[],Aeq,beq,zeros(8,1)); x=y(1:4)-y(5:end) z

运行结果如下: 在这里插入图片描述

1.3 题目

在这里插入图片描述 根据题目要求建立以下规划方程 对于完成产品 I I I来说,设以 A 1 , A 2 A_1,A_2 A1​,A2​完成 A A A工序的产品分别为 x 1 , x 2 x_1,x_2 x1​,x2​件,完成 A A A转入 B B B的三道工序 B 1 B 2 B 3 B_1B_2B_3 B1​B2​B3​分别为 x 3 , x 4 , x 5 x_3,x_4,x_5 x3​,x4​,x5​ 以此类推,然后建立如下方程 max ⁡ z = ( 1.25 − 0.25 ) ( x 1 + x 2 ) + ( 2 − 0.35 ) x 8 + ( 2.8 − 0.5 ) x 9 − 300 6000 ( 5 x 1 + 10 x 6 ) − 321 10000 ( 7 x 2 + 9 x 7 + 12 x 9 ) − 250 4000 ( 6 x 3 + 8 x 3 ) − 783 7000 ( 4 x 4 + 11 x 9 ) − 200 4000 ∗ 7 x 5 \max z=(1.25-0.25)(x_1+x_2)+(2-0.35)x_8+(2.8-0.5)x_9-\frac{300}{6000}(5x_1+10x_6)\\-\frac{321}{10000}(7x_2+9x_7+12x_9)-\frac{250}{4000}(6x_3+8x_3)-\frac{783}{7000}(4x_4+11x_9)-\frac{200}{4000}*7x_5\\ maxz=(1.25−0.25)(x1​+x2​)+(2−0.35)x8​+(2.8−0.5)x9​−6000300​(5x1​+10x6​)−10000321​(7x2​+9x7​+12x9​)−4000250​(6x3​+8x3​)−7000783​(4x4​+11x9​)−4000200​∗7x5​  s. t.  { 5 x 1 + 10 x 6 ≤ 6000 , 7 x 2 + 9 x 7 + 12 x 9 ≤ 10000 , 6 x 3 + 8 x 8 ≤ 4000 4 x 4 + 11 x 9 ≤ 7000 7 x 5 ≤ 4000 , x 1 + x 2 = x 3 + x 4 + x 5 , x 6 + x 7 = x 8 , x i ≥ 0 , i = 1 , 2 , … , 9. \text { s. t. }\left\{\begin{array}{l} 5x_{1}+10x_{6}\le6000, \\ 7x_{2}+9x_{7}+12x_{9}\le10000, \\ 6x_{3}+8x_{8}\le 4000\\ 4x_{4}+11x_{9}\le 7000\\ 7x_5\le 4000,\\ x_1+x_2=x_3+x_4+x_5,\\ x_6+x_7=x_8,\\ x_i\ge0,i=1,2,\dots,9. \end{array}\right.  s. t. ⎩ ⎨ ⎧​5x1​+10x6​≤6000,7x2​+9x7​+12x9​≤10000,6x3​+8x8​≤40004x4​+11x9​≤70007x5​≤4000,x1​+x2​=x3​+x4​+x5​,x6​+x7​=x8​,xi​≥0,i=1,2,…,9.​

代码 % 例3 %这道题是实际应用题 %完成工序一共为8个 clear;clc c = zeros(9,1); % 初始化目标函数的系数向量全为0 c(1) = 1.25 -0.25 -300/6000*5; % x1前面的系数是c1 c(2) = 1.25 -0.25 -321/10000*7; c(3) = -250 / 4000 * 6; c(4) = -783/7000*4; c(5) = -200/4000 * 7; c(6) = -300/6000*10; c(7) = -321 / 10000 * 9; c(8) = 2-0.35-250/4000*8; c(9) = 2.8-0.5-321/10000*12-783/7000*11;% 我们求的是最大值,所以这里需要改变符号 A=[5,zeros(1,4),10,zeros(1,3); 0,7,zeros(1,4),9,0,12; zeros(1,2),6,zeros(1,4),8,0; zeros(1,3),4,zeros(1,4),11; zeros(1,4),7,zeros(1,4)]; b=[6000,10000,4000,7000,4000]'; aeq=ones(2,9); aeq(1,3:5)=-aeq(1,3:5); aeq(2,8)=-aeq(2,8); aeq(1,6:8)=0; aeq(2,1:5)=0; %aeq(6:9)=zeros(1,4) %aeq=[aeq;aeq]; aeq(:,9)=0 beq=zeros(1,2); beq=beq'; lb=zeros(9,1); [x,z]=linprog(-c,A,b,aeq,beq,lb,[]); %整数规划 intcon=1:9; [x2,z2]=intlinprog(-c,intcon,A,b,aeq,beq,lb,[]) z2=-z2

在这里插入图片描述

1.4 题目

一架货机有三个货舱:前舱、中舱和后舱。三个货舱所能装载的

货物的最大重量和体积有限制(如表 3 所示)。现有四类货物用该货机进行装运,

货物的规格以及装运后获得的利润如表 4 所示。并且为了飞机的平衡,三个货

舱装载的货物重量必须与其最大的容许量成比例。问应如何装运,使货机飞行利

润最大? 在这里插入图片描述 在这里插入图片描述

假设:

每种货物可以无限细分;

每种货物可以分布在一个或者多个货舱内;

不同的货物可以放在同一个货舱内,并且可以保证不留空隙。

分析

这道题的目标函数还是比较好写的,包括其约束条件也是比较好写,但是货物重量必须与其最大的容许量成比例这个约束条件还是要好好琢磨的

代码 %例题1.4 %本题要求使得飞机利润最大,则目标函数与利润挂钩 clear;clc; c=zeros(12,1); c(1)=3100; c(5)=3100; c(9)=3100; c(2)=3800; c(6)=3800; c(10)=3800; c(3)=3500; c(7)=3500; c(11)=3500; c(4)=2850; c(8)=2850; c(12)=2850; A=zeros(10,12); A(1,1:4)=1;A(2,5:8)=1;A(3,9:12)=1; A(4,1:4:9)=1; A(5,2:4:10)=1; A(6,3:4:11)=1; A(7,4:4:12)=1; value=[480,650,580,390]; for i=1:length(value) A(8,i)=value(i); A(9,i+4)=value(i); a(10,i+8)=value(i); end A b=[10,16,8,18,15,23,12,6800,8700,5300]'; Aeq=zeros(3,12); Aeq(1,1:4)=16; Aeq(1,4:8)=-10; Aeq(2,1:4)=8; Aeq(2,9:12)=-10; Aeq(3,5:8)=8; Aeq(3,9:12)=-16; Aeq beq=zeros(3,1); lb=zeros(12,1); [x,z]=linprog(-c,A,b,Aeq,beq,lb,[]); x z=-z

运行结果如下: 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3