1.1、线性规划问题

在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济效益的问题。此类问题构成了运筹学的一个重要分支—数学规划,而线性规划(Linear Programming 简记LP)则是数学规划的一个重要分支。自从1947年G.B.Dantzig提出求解线性规划的单纯形方法以来,线性规划在理论上趋向成熟,在实用中日益广泛与深入。特别是在计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性规划的适用领域更为广泛了,已成为现代管理中经常采用的基本方法之一。

1.1.1 线性规划的实例与定义

例1.1 某机床厂生产甲、乙两种机床,每台销售后的利润分别为4千元与3千元。生产甲机床需用A、B机器加工,加工时间分别为每台2小时和1小时;生产乙机床需用A、B、C三种机器加工,加工时间为每台各一小时。若每天
可用于加工的机器时数分别为A机器10小时、B机器8小时和C机器7小时,问该厂应生产甲、乙机床各几台,才能使总利润最大?

上述问题的数学模型:设该厂生产x1台甲机床和x2台乙机床时总利润z最大,则x1 ,x2应满足:

变量x1,x2称之为决策变量,(1.1) 式被称为问题的目标函数,(1.2)中的几个不等式是问题的约束条件,记为s.t.(即subject to)。

目标函数及约束条件均为线性函数,故被称为线性规划问题。线性规划问题是在-一组线性约束条件的限制下,求一线性目标函数最大或最小的问题。在解决实际问题时,把问题归结成-一个线性规划数学模型是很重要的一步,往往也是很困难的一步,模型建立得是否恰当,直接影响到求解。而选适当的决策变量,是我们建立有效模型的关键之一。

1.1.2 线性规划问题的解的概念

其中c和x为n维列向量,A、Aeq为适当维数的矩阵,b、beq为适当维数的列向量。【注意:matlab是求的min

可行解满足约束条件(1.4) 的解x= [x,L,x,I,称为线性规划问题的可行解,而使目标函数(1.3) 达到最大值的可行解叫最优解。
可行域所有可行解构成的集合称为问题的可行域,记为R。

1.1.3 线性规划的Matlab标准形式及软件求解

其中c和x为n维列向量,A、Aeq 为适当维数的矩阵,b、beq 为适当维数的列向量。

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)

注意:这是三种不同的写法,对于标准形式,有哪个参数,就写哪个

其中x返回的是决策向量的取值,fval返回的是目标函数的最优值,c为价值向量,A,b对应的是线性不等式约束,Aeq,beq对应的是线性等式约束,lb和ub分别对应的是决策向量的下界向量和上界向量。

例1.2 求解下列线性规划问题

求解的matlab程序如下。

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

1.1.4 可以转化为线性规划的问题


1.2 投资的收益和风险

1.2.1 问题提出

1.2.2 符号规定和基本假设

符号规定
si表示第i种投资项目,如股票,债券等,i= 0,1,L ,n,其中s0指存入银行;
ri,Pi,qi分别表示si的平均收益率,交易费率,风险损失率,i= 0,L ,n,其中p0= 0, q0= 0;
ui表示si的交易定额,i= 1,L ,n;
xi表示投资项目si的资金,i= 0,1,L ,n;
a表示投资风险度;
Q表示总体收益;

基本假设
(1) 投资数额M相当大,为了便于计算,假设M= 1;
(2)投资越分散,总的风险越小;
(3)总体风险用投资项目s;中最大的一一个风险来度量;
(4) n+ 1种资产s;之间是相互独立的;
(5)在投资的这一时期内,r;,P;,q;为定值, 不受意外因素影响;
(6)净收益和总体风险只受r;,P;,9;影响,不受其它因素干扰。

1.2.3 模型的分析与建立


模型一:固定风险水平, 优化收益

也就是风险的水平不超过a

模型二:固定盈利水平,极小化风险

也就是最小受益为k

c)投资者在权衡资产风险和预期收益两方面时,希望选择一个令自己满意的投资组合。因此对风险、收益分别赋予权重s (0<s≤1 )和(1-s),s称为投资偏好系数。

1.2.4 模型一的求解

clc,clear
a=0;hold on
while a<0.05c=[-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,Ql=linprog(c,A,b,Aeq,beq,LB);Q=-Q; plot(a,Q,'*k'); .a=a+0.001;
end
xlabel('a'),ylabel('Q')

1.2.5 结果分析

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

学习来源:

https://www.bilibili.com/video/BV1kC4y1a7Ee?p=3

https://www.bilibili.com/video/BV1kC4y1a7Ee?p=4

【数学建模】线性规划模型基本原理与案例分享相关推荐

  1. 数学建模 线性规划模型基本原理

    线性规划问题 例1.1 可行解&可行域 matlab标准形式及软件求解 标准形式: C称为价值向量 如果是求max,加一个负号-c^T 如果是求Ax>=b,加一个负号-Ax<=b ...

  2. 数学建模——线性规划模型详解Python代码

    数学建模--线性规划模型详解Python代码 标准形式为: min z=2X1+3X2+x s.t x1+4x2+2x3>=8 3x1+2x2>=6 x1,x2,x3>=0 上述线性 ...

  3. Python数学建模—线性规划

    我是猿童学,本文是根据司守奎老师<数学建模算法与程序>的书本内容编写,使用其书中案例,书中的编程语言是MATLAB.Lingo,我将使用Python来解决问题.接下来的一个月我将学习使用P ...

  4. 关于美国大学生数学建模竞赛的一点点经验分享

    关于美国大学生数学建模竞赛的一点点经验分享 一:说明 二:竞赛开始前的准备 1.找队友 2.前期准备 3.做往年的题 三:比赛中 四:结语 一:说明 本人参加2018年的美赛,并获得Meritorio ...

  5. 数学建模常见模型总结

    数学建模常见模型总结 一.插值 当已有数据量不够,需要补充,且认定已有数据可信时,通常利用函数插值方法. 常用插值方法 拉格朗日插值 分段线性插值 Hermite 三次样条插值 克里金法 matlab ...

  6. 数学建模——支持向量机模型详解Python代码

    数学建模--支持向量机模型详解Python代码 from numpy import * import random import matplotlib.pyplot as plt import num ...

  7. 数学建模传染病模型_数学建模| 时间序列模型

    1 数学建模 时间序列模型 1.与实践有关系的一组数据,叫做时间序列: 2.得到时间序列的数据后,要构建模型,其中平稳时间序列的模型,是本节课重点介绍的: 3.y=at+季节性+周期性 一.     ...

  8. 数学建模常用模型04:灰色关联分析法

    数学建模常用模型04:灰色关联分析法 灰色关联分析法 本文所用的资料参考来源:美赛资料网:美赛资料网 与灰色预测模型一样,比赛不能优先使用,灰色关联往往可以与层次分析结合使用.层次分析用在确定权重上面 ...

  9. 数学建模常用模型(一):灰色预测法

    数学建模常用模型(一):灰色预测法 灰色预测法是一种用于处理少量数据.数据质量较差或者缺乏历史数据的预测方法.它适用于一些非线性.非平稳的系统,尤其在短期预测和趋势分析方面有着广泛的应用.灰色预测法作 ...

最新文章

  1. llist对象两个属性相乘在相加_Java8使用stream实现list中对象属性的合并(去重并求和)...
  2. android socket 收不到数据,android Socket服务端接收客户端数据问题
  3. 使用URLConnection获取网页信息的基本流程
  4. 漫步数学分析二十一——逐点收敛与一致收敛
  5. 高斯积分公式matlab_数值微分与数值积分(一)
  6. Attribute in C#
  7. ICPC程序设计题解书籍系列之一:刘汝佳:《算法竞赛入门经典》(第2版)
  8. python os模块创建文件_Python使用os模块和fileinput模块来操作文件目录
  9. winform 显示控件层级关系
  10. Django中的templates(你的HTML页面放哪里)
  11. 计算机网络基础问题总结
  12. 计算机英语词典 txt,9种Txt格式朗文英语词典免费分享
  13. [OOAD]面向对象分析与设计之人机交互界面设计学习总结
  14. c语言1000万位圆周率,如何设计C语言程序输出圆周率小数点后的1000位?请大侠出手啊。...
  15. 切线空间(Tangent Space)法线映射(Normal Mapping)
  16. 关于后台应用进程被杀的相关知识
  17. xm-select的简单使用
  18. 简单定制统信UOS镜像的方法
  19. 物联网应用之现代档案馆环境智能化监控系统解决方案
  20. Halcon+C#显示一张图片

热门文章

  1. 光学三维测量技术综述
  2. JavaCV实现年龄 | 性别 识别(优化版)
  3. 玩转 Scrapy 框架 (二):Scrapy 架构、Request和Response介绍
  4. s3c2410 NandFlash K9F1208U0A/K9F1208U0B的读取操作
  5. SAP ABAP 业务对象 BUS2072 ControllingDocument 统驭凭证 BAPI 清单和相关 TCODE
  6. 【FPGA基础】关于FPGA的IP核概念
  7. 成长经历html代码,我的成长经历
  8. Fiddler 模拟网络限速
  9. 编译mono-unity-2019.3-mbe生成so
  10. php页面计数器,php写的网页计数器代码