第九章 在简约世界里使收益最大----线性规划
§9—1 华尔街公司的投资选择组合投资问题:总金额1000万美圆的资金,用于投资四种债券。已知
---------------------------------------------------------------------
债券 年收益率期望值/% 年收益率最低值/% 持续期/年债券1 13 6 3
债券2 8 8 4
债券3 12 10 7
债券4 14 9 9
---------------------------------------------------------------------
希望年收益率期望值达到最大,并且满足下列要求:
组合投资的年收益率最低值至少为8%;
组合投资的平均持续期至多为6年(各债券的投资百分比乘持续期,之和);
任一债券的投资百分比至多为40%,
怎样投资?
§9—2 组合投资模型
四种债券的投资金额是待定的决策变量,分别记为;目标是年收益率期望值最大;题中的三条要求是约束条件。得下面优化模型:

在这个模型中,决策变量都是线性的,故称为线性规划。
§9—3 §9—4 线性规划的求解
我们要用Matlab求解线性规划,首先必须把线性规划模型写成适用于Matlab命令的标准形式:

(其中,矩阵A,Aeq,向量c,b,beq,xL,xU,均为已知数据,x是未知向量。)
如,§9—2中的模型,其适用于Matlab的标准形式为:

将模型中的数据矩阵A,Aeq,向量c,b,beq,xL,xU输入机器:
c=[-0.13;-0.08;-0.12;-0.14];
A=[2,0,-2,-1;-3,-2,1,3];b=[0;0];
Aeq=[1,1,1,1];beq=1000;
xL=[0;0;0;0];xU=[400;400;400;400];
再执行命令:
[x,fmin]=linprog(c,A,b,Aeq,beq,xL,xU)
输出结果:(x是决策变量的最优解;fmin目标函数的最优值)
x =
400.0000
0.0000
300.0000
300.0000
fmin = -130.0000
答:债券1、债券2、债券3、债券4分别投资400、0、300、300万美圆,可使年收益率期望值达到最大值130万美圆,并且满足题目要求。
题:总运力问题某卡车公司拨款800万元用于购买新的运输工具,有3种运输工具可供选择:
A的载重量10吨,平均时速45千米,价格26万元;
B的载重量20吨,平均时速40千米,价格36万元;
C的载重量18吨,平均时速40千米,价格42万元。
其中,C是B的变种,新设了一个卧铺,所以载重降低了、价格上升了。A需要1名司机,如果每天三班工作,每天可运行18小时,当地法律规定B和C均需要两名司机,如果三班工作,B每天可运行18小时,C可运行21小时,该公司目前每天有150名司机可用,短期内无法招募到其他训练有素的司机。当地工会禁止司机每天工作超过一个班次。此外,受维修保障能力的限制,公司最多能拥有30辆运输工具。请你建立数学模型,确定A、B、C的数量使得公司的总运力最大。
解:设A、B、C的数量分别为x1、x2、x3,则总运力:
经费约束:
司机人数约束:
维修保障约束:
实际背景约束:,且均为整数。
以上为模型。以下为程序:
c=[-450*18;-800*18;-720*21];
A=[26,36,42;3,6,6;1,1,1];b=[800;150;30];
Aeq=[];beq=[];
xL=[0;0;0];xU=[1;1;1]*inf;
[x,fmin]=linprog(c,A,b,Aeq,beq,xL,xU)