【数学建模笔记】1.线性规划

1.线性规划的Matlab标准形式

min\, c^{^{T}}x

s.t.\left\{\begin{matrix} Ax\leqslant b\\ Aeq\cdot x=beq\\ lb\leqslant x\leq \leqslant ub \end{matrix}\right.

Matlab 中求解线性规划的命令为

[x,fval]=linprog(c,A,b)
[x,fval]=linprog(c,A,b,Aeq,beq)
[x,fval]=linprog(c,A,b,Aeq,beq,lb,ub)

求解下列线性规划问题

例1:max\, z=2x_{1}+3x_{2}-5x_{3}

s.t.\, \, \left\{\begin{matrix} x_{1}+x_{2}+x_{3}=7\\ 2x_{1}-5x_{2}+x_{3}\geqslant 10\\ x_{1}+3x_{2}+x_{3}\leqslant 12\\ x_{1},x_{2},x_{3}\geqslant 0 \end{matrix}\right.      

(求最大值在前面加负号)

matlab程序如下:

f=[-2;-3;5];
a=[-2,5,-1;1,3,1];
b=[-10,12];
aeq=[1,1,1];
beq=7;
[x,y]=linprog(f,a,b,aeq,beq,zeros(3,1));%无上界
x,y=-y

答案:

x1 = 6.4286, x2 = 0.5714, x3 = 0 ;
y = 14.5714

例2: minz=2x_{1}+3x_{2}+x_{3}

\left\{\begin{matrix} x_{1}+4x_{2}+x_{3}\geqslant 8\\ 3x_{1}+2x_{2}\geqslant 6\\ x_{1},x_{2},x_{3}\geqslant 0 \end{matrix}\right.

c=[2;3;1]; 
a=[1,4,2;3,2,0]; 
b=[8;6]; 
[x,y]=linprog(c,-a,-b,[],[],zeros(3,1))

2. 投资的收益和风险

2.1 问题提出

市场上有 n 种资产 s_{i}i =1,2,L,n )可以选择,现用数额为 M 的相当大的资金作一个时期的投资。这 n 种资产在这一时期内购买 s_{i} 的平均收益率为 r_{i},风险损失率为q_{i},投资越分散,总的风险越少,总体风险可用投资的 s_{i} 中最大的一个风险来度量。购买s_{i} 时要付交易费,(费率 p_{i}),当购买额不超过给定值u_{i} 时,交易费按购买u_{i}计算。另外,假定同期银行存款利率是 r_{0},既无交易费又无风险。(r_{0} = 5%)

已知 n = 4 时相关数据如表 1

试给该公司设计一种投资组合方案,即用给定资金 M ,有选择地购买若干种资产
或存银行生息,使净收益尽可能大,使总体风险尽可能小

2.2 符号规定和基本假设

2.3 模型的建立和分析

2.4 模型一求解

 符号规定:

由于 a 是任意给定的风险度,到底怎样没有一个准则,不同的投资者有不同的风险度。从 a = 0 开始,以步长 Δ a = 0.001 进行循环搜索,编制程序如下:
clc,clear
a=0;
hold on
while a<0.05
 c=[-0.05,-0.27,-0.19,-0.185,-0.185];
 A=[zeros(4,1),diag([0.025,0.015,0.055,0.026])];
 b=a*ones(4,1);
 Aeq=[1,1.01,1.02,1.045,1.065];
 beq=1;
 LB=zeros(5,1);
 [x,Q]=linprog(c,A,b,Aeq,beq,LB);
 Q=-Q;
 plot(a,Q,'*r');
 a=a+0.001;
end
xlabel('a'),ylabel('Q')

2.5 结果分析

1. 风险大,收益也大。
2 .当投资越分散时,投资者承担的风险越小,这与题意一致。即:
冒险的投资者会出现集中投资的情况,保守的投资者则尽量分散投资。
3 .在 a = 0.006 附近有一个转折点,在这一点左边,风险增加很少时,利润增长很快。在这一点右边,风险增加很大时,利润增长很缓慢,所以对于风险和收益没有特殊偏好的投资者来说,应该选择曲线的拐点作为最优投资组合,
(保守?):大约是 a = 0.6% Q = 20% ,所对应投资方案为: 风险度 a = 0.006 ,收益 Q = 0.2019 x 0 = 0 x 1 = 0.24 x 2 = 0.4 x 3 = 0.1091 x 4 = 0.2212

(冒险?):大约是 a = 2.5% Q = 27%,所对应投资方案为: 风险度 a = 0.025 ,收益Q = 0.2673,x0 =0x1 = 0.9901 x2 = 0x3 = 0x4 = 0

作业1

某厂生产三种产品 I,II,III。每种产品要经过 A、B两道工序加工。设该厂 有两种规格的设备能完成 A 工序,它们以A 1 、A 2 表示;有三种规格的设备能完 成 B 工序,它们以B 1 、B 2 、B 3 表示。产品 I 可在 A、B任何一种规格设备上加 工。产品 II 可在任何规格的 A 设备上加工,但完成 B 工序时,只能在B 1 备上加工;产品 III 只能在A 2 与B 2 设备上加工。已知在各种机床设备的单件工 时,原材料费,产品销售价格,各种设备有效台时以及满负荷操作时机床设备 的费用如表 2,求安排最优的生产计划,使该厂利润最大。

解:对产品I来说,设以A_{1}A_{2}完成A工序的产品分别为x_{1}x_{2}件,转入B工序时以B_{1},B_{2},B_{3}完成B工序的产品分别为x_{3},x_{4},x_{5}件;对产品II来说,设以A_{1}A_{2}完成A工序的产品分别为x_{6},x_{7}件,转入B工序时;以B_{1}完成B工序的产品为x_{8}件;对产品III来说,设以A_{2}完成A工序的产品为x_{9}件,则以B_{2}完成B工序的产品也为x_{9}件。由上述条件得:

线性规划的典型例题:生产决策问题(思考+程序代码)_Jayna Su的博客-优快云博客_线性规划问题例题

(看了这个博主的解释才算明白,解释的很详细,也有带程序)

 

 

作业2

有四个工人,要指派他们分别完成 4 项工作,每人做各项工作所消耗的时间如下表。问指派哪个人去完成哪项工作,可使总的消耗时间为最小?

 

 代码可以参考

matlab 0-1规划求解指派问题_zero-优快云博客_matlab指派问题

答案:

 甲A乙D丙C丁B,最小时间=70

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值