实验三 线性规划
实验目的
1、了解线性规划的基本内容。
2、掌握用数学软件包求解线性规划问题。
例1 max
s.t.
程序: linprog
z0.4x10.28x20.32x30.72x40.x50.6x6 0.01x10.01x20.01x30.03x40.03x50.03x6850 0.02x10.05x4700 0.02x20.05x5100 0.03x30.08x6900 xj0j1,2,6 c=[-0.4 -0.28 -0.32 -0.72 -0. -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
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)
书 求下列非线性规划
minx12x22x328x12x2x32022x1x2x320 2s..tx1x2202x2x323x1,x2,x30在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)
就可以求得当x10.5522,x21.2033,x30.9478时,最小值y =10.6511。
4. 选修课的策略
决策目标为选修的课程总数最少,即 minx1x2x9
约束条件:
(1) 满足课程要求:(至少2门数学课程,3门运筹学课程和2门计算机课程)
x1x2x3x4x52 x3x5x6x8x93
x4x6x7x92(2) 先修课程要求:
(a) 数据结构的先修课程为计算机编程:x41x71转换为:x4x7 (b) 计算机模拟的先修课程为计算机编程:x6x7 (c) 预测理论的先修课程为应用统计:x8x5
(d) 最优化方法的先修课程为微积分和线性代数:x3x1,x3x2,或者转化为:
x1x22x30
(e) 应用统计的先修课程为微积分和线性代数:x5x1,x5x2,或者转化为:
x1x22x50
(f) 数学实验的先修课程为微积分和线性代数:x9x1,x9x2,或者转化为:
x1x22x90
(3) 0-1:xi0,1(可以转化为整数规划,0xi1)
四、模型求解:
在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.
max72x1x2x1x25012x8x480 12s..t3x1100x10,x20
2.
书 解线性规划问题
minf2x1x2
x1x2x35xxx0124s.t.
6x2xx21251xi0,i1,2,3,4,53. 书 某市有甲、乙、丙、丁四个居民区,自来水由A、B、C由三个水库供应。四个区每天必须的基本生活用水分别为30、70、10、10千吨,但三个水库每天最多只能分别供应50、60、50千吨自来水。由于地理位置的差别,自来水公司从各水库向各区送水所付出的引水 管理费不同(如表4-1,其中C水库与丁区间无输水管道),其它管理费均为450元/千吨。各区用户每千吨收费900元。此外,各区用户都向公司申请了额外用水量,分别为每天50、70、20、40千吨。问公司应如何分配供水量,才能获利最多?
表4-1 引水管理费(元/千吨) A B C 甲 160 140 190 乙 130 130 230 丙 220 190 200 丁 170 150 / 问题假设
输送到各区的自来水只要在基本用水与额外用水量以内,各区即全额付费。 模型建立 设A、B、C各水库向甲、乙、丙、丁四个居民区的供水量如下,
表4-2 供水量(千吨) A B C 则公司从A水库的获利为:
u1900(x1x2x3x4)(160450)x1(130450)x2(220450)x3(170450)x4甲 x1 y1 z1 乙 x2 y2 z2 丙 x3 y3 z3 丁 x4 y4 /
公司从B水库的获利为:
u2900(y1y2y3y4)(140450)y1(130450)y2(190450)y3(150450)y4
公司从C水库的获利为:
u3900(z1z2z3)(190450)z1(200450)z2(220450)z3
公司的总获利为:
uu11u2u3
各区每天的供水量: 甲区供水量为:
30x1y1z13050
乙区供水量为:
70x2y2z27070
丙区供水量为:
10x3y3z31020
丁区供水量为:
10x4y41040
水库每天供水量的限定: A水库:
443xi1i50; B水库:yi60; C水库:zi50
i1i1于是建立数学模型如下:
Max290x1320x2230x3280x4310y1320y2260y3300y4260z1250z2220z330xyz305011170x2y2z2707010xyz1020333s..t10x4y410404xi50i14yi60i13z50ii12