当前位置:文档之家› 数学建模 matlab求解线性规划实验报告

数学建模 matlab求解线性规划实验报告

实验三 线性规划
程序: linprog
c=[-0.4 -0.28 -0.32 -0.72 -0.64 -0.6];
A=[0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08]; b=[850;700;100;900]; Aeq=[]; beq=[];
vlb=[0;0;0;0;0;0]; vub=[];
[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)
Exam5:
function f=fun3(x);
f=-x(1)-2*x(2)+(1/2)*x(1)^2+(1/2)*x(2)^2
实验目的
2、掌握用数学软件包求解线性规划问题。

1、了解线性规划的基本内容。

例1 max 6543216.064.072.032.028.04.0x x x x x x z +++++= 85003.003.003.001.001.001.0..654321≤+++++x x x x x x t s 70005.002.041≤+x x 10005.002.052≤+x x 90008.003.063≤+x x 6,2,10 =≥j x j
x0=[1;1];
A=[2 3 ;1 4]; b=[6;5]; Aeq=[];beq=[]; VLB=[0;0]; VUB=[];
[x,fval]=fmincon('fun3',x0,A,b,Aeq,beq,VLB,VUB)
书 求下列非线性规划
2221232212322
1232
12223123min 8020
..2023,,0x x x x x x x x x s t x x x x x x x +++⎧-+≥⎪++≤⎪⎪--+=⎨⎪+=⎪
⎪≥⎩
在Matlab 2013软件中输入如下程序: (i )编写M 文件fun1.m 定义目标函数
function f=fun1(x); f=sum(x.^2)+8;
(ii )编写M 文件fun2.m 定义非线性约束条件 function [g,h]=fun2(x); g=[-x(1)^2+x(2)-x(3)^2
x(1)+x(2)^2+x(3)^3-20]; %非线性不等式约束 h=[-x(1)-x(2)^2+2
x(2)+2*x(3)^2-3]; %非线性等式约束 (iii )编写主程序文件example2.m 如下:
options=optimset('largescale','off');
[x,y]=fmincon('fun1',rand(3,1),[],[],[],[],zeros(3,1),[], ... 'fun2', options)
就可以求得当1230.5522 1.2033,,0.9478x x x ===时,最小值y =10.6511。

4. 选修课的策略
决策目标为选修的课程总数最少,即 921min
x x x +++
约束条件:
(1) 满足课程要求:(至少2门数学课程,3门运筹学课程和2门计算机课程)
2
32
97649865354321≥+++≥++++≥++++x x x x x x x x x x x x x x
(2) 先修课程要求:
(a) 数据结构的先修课程为计算机编程:1174=⇒=x x 转换为:74x x ≤ (b) 计算机模拟的先修课程为计算机编程:76x x ≤ (c) 预测理论的先修课程为应用统计:58x x ≤
(d) 最优化方法的先修课程为微积分和线性代数:2313,x x x x ≤≤,或者转化为:
02321≤+--x x x
(e) 应用统计的先修课程为微积分和线性代数:2515,x x x x ≤≤,或者转化为:
02521≤+--x x x
(f) 数学实验的先修课程为微积分和线性代数:2919,x x x x ≤≤,或者转化为:
02921≤+--x x x
(3) 0-1限制:1,0=i x (可以转化为整数规划,10≤≤i x )
四、模型求解:
在Matlab 软件中输入如下程序:
c=[1;1;1;1;1;1;1;1;1]; A=[-1 -1 -1 -1 -1 0 0 0 0; 0 0 -1 0 -1 -1 0 -1 -1; 0 0 0 -1 0 -1 -1 0 -1; 0 0 0 1 0 0 -1 0 0; 0 0 0 0 0 1 -1 0 0; 0 0 0 0 -1 0 0 1 0; -1 -1 2 0 0 0 0 0 0; -1 -1 0 0 2 0 0 0 0; -1 -1 0 0 0 0 0 0 2]; b=[-2;-3;-2;0;0;0;0;0;0]; [x,Fval]=bintprog(c,A,b);
计算得到该问题的解为(1,1,1,0,0,1,1,0,1),即选修的课程为微积分、线性代数、最优化方法、计算机模拟、计算机编程和数学实验,总学分为21。

练习:1.
121212112max 726450
128480..31000,0
x x x x x x s t x x x ++≤⎧⎪+≤⎪⎨
≤⎪⎪≥≥⎩
2.
书 解线性规划问题
212min x x f --=
⎪⎪⎩⎪⎪⎨⎧=≥=++=++-=++5
,4,3,2,1,0212605..521421321i x x x x x x x x x x t s i
3. 书 某市有甲、乙、丙、丁四个居民区,自来水由A 、B 、C 由三个水库供应。

四个区每天必须的基本生活用水分别为30、70、10、10千吨,但三个水库每天最多只能分别供应50、60、50千吨自来水。

由于地理位置的差别,自来水公司从各水库向各区送水所付出的引水 管理费不同(如表4-1,其中C 水库与丁区间无输水管道),其它管理费均为450元/千吨。

各区用户每千吨收费900元。

此外,各区用户都向公司申请了额外用水量,分别为每天50、70、20、40千吨。

问公司应如何分配供水量,才能获利最多?
问题假设
输送到各区的自来水只要在基本用水与额外用水量以内,各区即全额付费。

模型建立 设A 、
B 、
C 各水库向甲、乙、丙、丁四个居民区的供水量如下,
则公司从A 水库的获利为:
112341234
900()(160450)(130450)(220450)(170450)u x x x x x x x x =+++-+-+-+-+
公司从B 水库的获利为:
432143212)450150()450190()450130()450140()(900y y y y y y y y u +-+-+-+-+++=
公司从C 水库的获利为:
3213213)450220()450200()450190()(900z z z z z z u +-+-+-++=
公司的总获利为:
3211u u u u ++=
各区每天的供水量: 甲区供水量为:
503030111+≤++≤z y x
乙区供水量为:
707070222+≤++≤z y x
丙区供水量为:
201010333+≤++≤z y x
丁区供水量为:
40101044+≤+≤y x
水库每天供水量的限定: A 水库:
4
i 1
50i
x
==∑; B 水库:4
i 1
60i y ==∑; C 水库:3
i 1
50i z ==∑
于是建立数学模型如下:
12341234123111
222333444
14
13
1
290320230280310320260300260250220303050
707070101020
..101040506050
i i i i i
i Max x x x x y y y y z z z x y z x y z x y z s t x y x y z ====++++++++++⎧⎪⎪⎪
⎪≤++≤+⎪
≤++≤+⎪⎪≤++≤+⎪⎪
≤+≤+⎨⎪⎪=⎪⎪⎪=⎪⎪⎪=⎪⎩∑∑∑ 2。

相关主题