MATLAB在线性规划中的应用文档格式.docx
- 文档编号:13525354
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:4
- 大小:21.02KB
MATLAB在线性规划中的应用文档格式.docx
《MATLAB在线性规划中的应用文档格式.docx》由会员分享,可在线阅读,更多相关《MATLAB在线性规划中的应用文档格式.docx(4页珍藏版)》请在冰豆网上搜索。
常规的手工解法解决线性规划问题是复杂和耗时的,而MATLAB功能的强大,能够很好地处理线性规划问题,可以快速进行数值的求解,并绘制出相关线性图形,这样可以避免手工的繁琐计算,减少工作量,提高工作效率和结果的准确性,同样可以培养应用能力,非常方便实用。
第2章线性规划简介
2.1线性规划研究的背景和意义
线性规划(LinearProgramming)概念是在1947年的军事行动计划相关实践中产生的,但是在1823年Fourier和1911年Poussin就已经提出过相关问题[7],发展至今已有近100年的历史了。
简单来说,线性规划就是在满足所有的线性约束条件下,求出目标函数的极大值或极小值。
线性规划是运筹学最基本、研究较早也最为深入、发展较快、运用最广泛、理论较成熟、方法较完善的一个重要分支,是运筹学其他众多问题研究的基础,它又与数学方法紧密结合,成为应用数学的一个重要分支。
线性规划是帮助人们进行科学管理的一种数学方法。
其他科学领域的很多问题也因为线性规划的研究发展迅速也得到了发展研究。
数学中的其他问题的研究例如非线性规划、整数规划等也因为线性规划的研究成果得到了很大的推进。
。
线性规划的数学模型及其特点
线性规划是数学的一个极其重要的分支,其研究的主要问题[8]是对“资源”的合理分配,即如何利用有限的“资源”去完成更多的任务;
或者确定一个任务的标准,如何统筹安排,做到利用尽可能少的“资源”去完成任务。
其主要方法是对目标问题建立合理的线性规划模型,以数学方法为工具求出所建模型的最优结果。
通俗地说线性规划所研究的主要问题是研究怎么从多个可能的方案中选出最合理的、能实现预定最优目标的方案,也就是我们常说的最优方案。
线性规划(LinearProgramming)问题简称为LP问题,它首先必须得是个数学问题,然后还必须同时具备以下特点[9-11]:
①决策变量是一组用来表示某一方案的未知数,不同设计方案的决策变量取值也不同。
在实际应用中,通常对决策变量的取值要求为非负值。
②约束条件是一组线性的等式或线性不等式,它是用来描述决策变量在取值时必须同时满足的一些互不矛盾的限制条件。
③目标函数是用来表示满足目标要求的一组未知数的线性函数,根据实际所求问题的不同,要求目标函数实现最大化或最小化。
而线性规划(LP)其实就是一种理论和方法,它是对研究和解决LP问题的所有工作的总称。
线性规划模型首先必须是个数学模型,同时它还必须满足上述所有特点。
它的一般形式的数学模型为:
()
其中,xj(j=1,2,…,n)是问题的决策变量,记为。
即是所寻求的目标函数,记为为价值向量,其中cj(j=1,2,…,n)称作价值系数。
由所有aij构成的
被称为系数约束矩阵,Pj,j=1,2,…,n为其中的列向量。
向量称为右端向量,bi,i=1,2,…,m为右端顶。
cj、bi、aij是LP问题的参数,通常情况下它的值可以被预测估计。
xj(j=1,2,…,n)≥0是LP问题所限制的非负约束。
与相互等价。
所以,在这里我们规定LP问题的常用形式为求最大值,并且m<
n。
在实际应用中,很多时候人们为了方便就只研究问题的特殊情况,然后就会把一般复杂的情况转变为特殊情况来求解。
比如LP,经常被研究的情况如下:
()这里的bi≥0(i=1,2,…,m),()即为LP的规范表达式。
当决策变量所受到的限制约束都可以由线性等式来表述时,即有如下表达式:
()这里的bi≥0(i=1,2,…,m),()规定了LP的标准形式。
以上三种形式是LP问题的所有典范表达形式。
三种形式之间不仅可以进行相互的转化,而且所求出的解也是相同的。
所以,这三种形式在本质上是相互等价的。
综上所述,我们可以看出,决策变量、约束条件和目标函数是LP模型必不可少的重要模块[12]。
所以,在实际的操作中,想要建立出它的数学模型,就必须有以下三个关键步骤[13]:
首先,必须找出问题的决策变量,可以通过观察对所求目的产生作用的有关因素来寻找。
其次,明确问题的约束条件,这个可以通过限制决策变量的全部情况来确定。
最后,确定问题的目标函数,这个可以通过决策变量与问题的目标要求之间的线性关系来确定。
在实际工作与生活当中,线性规划问题普遍存在也有着广泛的应用,企业在经营管理中运用线性规划方法,可以方便快捷地解决问题例如在生产计划安排中,选择什么样的生产计划才能提高产值和利润等。
生活中还有许多问题诸如生产调度、运输与物质调配、人员安排、投资组合、交通调度、配料、管道设计、背包负荷装载、电子线路设计中的连线问题、食物营养调配问题等都可以用线性规划的数学模型来描述,因此线性规划在实际生活中具有很强的实用性,它可以提供在日常生产生活中的配置问题的最优化方案。
2.3求解线性规划问题一般常用的方法 求解线性规划问题一般常用的方法主要有以下三种:
①图解法图解法是指利用几何特征来求出线性规划问题中最优解的方法。
图解法简单直观,但是它只适用于求解线性规划问题中含两个变量、最多三个变量的问题。
由于大多数线性规划问题的变量个数n≥3,因此图解法应用不多。
②单纯形法单纯形法是求解线性规划求解的主要方法,在实际中也得到最广泛的应用。
单纯形法求解线性规划问题的思路:
在一般线性规划问题具有的方程个数小于线性方程组的变量数时,方程有不定的解。
单纯形法求解线性规划的基本思想是依据问题,从一个基本可行解出发,然后判断该解使目标函数值是增大还是变小,从而改进目标函数的取值,直到目标函数求得最优基本可行解。
③大M法当线性规划的变量及约束方程比较多时,不容易求得初始基本可行解,而且还可能存在基本可行解不存在的情况。
这时的解决方法是加入人造基变量,即采用大M法。
这里所谓的人造基变量是指为了能应用单纯形法来迭代并求极值而引进的变量。
第3章基于MATLAB的线性规划问题求解MATLAB简介MATLAB的全称是MatrixLaboratory(矩阵实验室)。
诞生于20世纪70年代,最初的MATLAB软件包是1967年由穆勒()用Fortran语言编写的[14]。
在1984年,美国Mathworks公司正式推出的MATLAB是一种集数值计算、符号运算、可视化建模、仿真和图形化处理等多功能于一体的杰出的图形化语言。
MATLAB由于其内容丰富、使用上的方便、功能强大以及良好的用户界面,自推出以来,就被广泛应用在数学、建筑、商业、信息科学等领域,深受工程技术人员和科学研究人员的喜爱,现已被国际公认为最优秀的科技应用软件之一,被誉为“巨人肩上的工具”[15]。
用MATLAB编写程序就像在纸上写出求解问题与用到的公式,所以它也被称为演算纸式科学算法语言,用户只需要列出数学表达式,它的结果就会以数值或图形的方式显示出来[16]。
MATLAB的特点是:
①强大的科学计算功能,附带的30多种面向不同领域的工具箱支持,以及图形图像处理功能等。
②界面友好,运算符灵活,用户使用方便,具有较高的编程效率。
③程序可移植性和开放性好,跨平台兼容。
④语言简单,代码灵活,扩充能力强。
⑤拥有广泛解决多学科专业领域内复杂问题的能力[17]。
MATLAB包含有30多个工具箱,其中优化工具箱(OptimizationToolbox)是应用最广泛,同时影响也是最大的,可以解决的实际工程问题很多。
它的主要功能如下[18]:
①求解线性规划和二次规划问题。
②求解函数的最大、最小值。
③求解大规模优化问题。
④求解多目标优化问题。
⑤求解非线性规划问题。
⑥求解非线性的最小二乘。
⑦其他问题。
MATLAB在线性规划中的应用用于线性规划的MATLAB主要函数是Linprog。
假设线性规划问题的数学模型为式中,f、x、b、beq、lb和ub为向量,A和Aeq为矩阵。
需要注意的是,MATLAB中都是逐行给向量和矩阵赋值,行之间用分号“;
”分隔开,每行元素之间可用“,”也可以用空格分隔开,矩阵右上角用符号“'”表示转置运算。
Linprog函数的调用格式如下。
①[x,fval]=linprog(f,A,b),求解线性规划问题的minfTx,约束条件为,同时返回解x处的目标函数值fval。
②[x,fval]=linprog(f,A,b,Aeq,beq),求解线性规划问题的minfTx,约束条件为,但增加等式约束的条件,即;
若不等式不存在,则令A=[]、b=[],同时返回解x处的目标函数值fval。
③[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub),求解线性规划问题的minfTx,约束条件为及,并定义变量x的下界lb和上界ub,使得x始终在该范围之内;
若等式不存在,则令Aeq=[]、beq=[],同时返回解x处的目标函数值fval。
④[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub,x0),求解线性规划问题的minfTx,约束条件为及,定义变量x的下界lb和上界ub,设x0为初值,同时返回解x处的目标函数值fval。
⑤[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub,x0,options),求解线性规划问题的minfTx,约束条件为及,定义变量x的下界lb和上界ub,设x0为初值,用options指定的优化参数进行最小化,同时返回解x处的目标函数值fval。
⑥x=linprog(…),只是输出解x的值,不输出目标函数值fval。
第4章范例分析简单的线性规划问题例1、求解下面的线性规划问题解:
MATLAB求解程序清单为≫f=[2,1,3,5]';
A=[1,2,41;
2,3,1,1;
1,0,1,1];
b=[6,12,4]';
lb=[0,0,0,0]';
[x,fval]=linprog(f,A,b,[],[],lb)结果输出为x=0.00002.66670.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 线性规划 中的 应用