matlab在运筹学中的应用.ppt_第1页
matlab在运筹学中的应用.ppt_第2页
matlab在运筹学中的应用.ppt_第3页
matlab在运筹学中的应用.ppt_第4页
matlab在运筹学中的应用.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB在运筹学中的应用 绪论 优化求解工作中常用的软件 1 Matlab2 Mathematica3 Maple4 SAS5 SPSS6 Lindo Lingo7 GAMS8 WinQSB9 Excel10 其他 如SQP DPS ORS VisualDecision DecisionExplore AIMMS CrystalBall TreeAge等 Matlab MatrixLaboratory 专业级的数值计算和符号计算 强大的绘图功能 可视化建模仿真和实时控制 从事理论研究的数学工作者和其他科学工作者强大的符号计算能力输入格式有严格的规定 SAS StatisticalAnalysisSystem 誉为统计分析的标准软件 统计方法齐 全 新集数据存取 管理 分析和展现于一体政府行政管理 科研 教育 生产和金融等领域 SPSS StatisticalPackagefortheSocialSciences 2000 StatisticalProductandServiceSolutions 最早的统计分析软件类似Execl表格的方式输入和管理数据应用最广泛的专业统计软件 Lindo Lingo求解最优化问题的软件包线性规划 二次规划 整数规划 非线性规划解算器寻最佳模型进行求解 公式表示Lingo优化问题的建模语言 可与文本 Excel 数据库对接 GAMS GeneralAlgebraicModelingSystem 针对大型 复杂系统的建模建模迅速 易修改 丰富的模型求解引擎 WinQSB QuantitativeSystemsforBusiness 基于模块化设计的专业运筹规划和决策辅助软件规划问题 计划编制 抽样分析 MRP 质量控制 马尔可夫过程 决策分析等 通过加载宏功能扩展为一个优化求解的工具 通过加载宏功能扩展为一个优化求解的工具 Matlab简介 概述Matlab是矩阵实验室 MatrixLaboratory 的简称 是美国MathWorks公司出品的商业数学软件 和Mathematica Maple并称为三大数学软件 用于算法开发 数据可视化 数据分析以及数值计算的高级技术计算语言和交互式环境 主要包括Matlab和Simulink两大部分 主要应用于工程计算 控制设计 信号处理与通讯 图像处理 信号检测 金融建模设计与分析等领域 具有广泛应用前景的全新的计算机高级编程语言产生与发展70年代后期 基于特征计算的程序库EISPACK和线性代数程序库LINPACK FORTRAN语言 1984年 MathWorks公司正式推出的商业化版本 C语言 1992年 基于Windows平台的Matlab4 0 6 52004年 7 x2006a 2006b 2011a 2011b 优势强大易用的科学计算语言全面的图形功能独立开放的平台实用的程序接口Simulink动态仿真功能Matlab是一个交互式开发系统 其基本数据单元是矩阵 MathWorks公司的描述 计算 可视化及编程一体常用网址 MATLAB产品族可以用来进行以下各种工作 数值分析 数值和符号计算 工程与科学绘图 控制系统的设计与仿真 数字图像处理技术 数字信号处理技术 通讯系统设计与仿真 财务与金融工程MATLAB的应用范围非常广 包括信号和图像处理 通讯 控制系统设计 测试和测量 财务建模和分析以及计算生物学等众多应用领域 附加的工具箱 单独提供的专用MATLAB函数集 扩展了MATLAB环境 以解决这些应用领域内特定类型的问题 MatlabMainToolbox matlab主工具箱ControlSystemToolbox 控制系统工具箱CommunicationToolbox 通讯工具箱FinancialToolbox 财政金融工具箱SystemIdentificationToolbox 系统辨识工具箱FuzzyLogicToolbox 模糊逻辑工具箱Higher OrderSpectralAnalysisToolbox 高阶谱分析工具箱ImageProcessingToolbox 图象处理工具箱computervisionsystemtoolbox 计算机视觉工具箱LMIControlToolbox 线性矩阵不等式工具箱ModelpredictiveControlToolbox 模型预测控制工具箱 AnalysisandSynthesisToolbox 分析工具箱NeuralNetworkToolbox 神经网络工具箱OptimizationToolbox 优化工具箱PartialDifferentialToolbox 偏微分方程工具箱RobustControlToolbox 鲁棒控制工具箱SignalProcessingToolbox 信号处理工具箱SplineToolbox 样条工具箱StatisticsToolbox 统计工具箱SymbolicMathToolbox 符号数学工具箱SimulinkToolbox 动态仿真工具箱WaveleToolbox 小波工具箱DSPsystemtoolbox DSP处理工具箱 Matlab界面窗口 MATLAB界面窗口 MATLAB中变量区别于其他编程语言的特点MATLAB表达式中可以使用矩阵形式 MATLAB中不需要预先声明变量的类型和维数 MATLAB会根据对新变量的操作创建该变量 确定其类型并为其分配存储空间 对已经存在的变量的赋值操作 MATLAB会以新值代替旧值 如果需要的话 MATLAB可以改变该变量的类型或者为其分配新的存储空间 MATLAB中的变量名是大小写敏感的 即A和a代表不同的变量 矩阵特征值参数运算 一 矩阵的行列式函数 det A 二 矩阵的迹函数 trace A 三 矩阵的秩函数 rank A 四 矩阵的范数函数 norm A 选项 五 矩阵的特征值函数 eig A 六 矩阵的分解 三角形分解 LU或LR分解 函数 L U lu A 七 矩阵的分解 正交分解 QR分解 函数 Q R qr A MATLAB中的控制结构 循环结构for循环while循环选择结构if结构switch结构try catch结构其他流程控制break语句continue语句return语句 try语句组1catch语句组2end 例 解Lorenz方程 大气对流模型 functionxdot lorenzeq t x xdot 8 3 x 1 x 2 x 3 10 x 2 10 x 3 x 1 x 2 28 x 2 x 3 线性规划问题的数学模型 线性规划问题的数学描述或其中C为n维行向量A为m n维矩阵b为m维列向量X为n维列向量 线性规划问题的MATLAB求解 MATLAB中求解线性规划问题的标准形式MATLAB标准型和教科书中讲解有所不同 极小化的目标函数z线性规划问题具有不等式约束m1个 等式约束m2个f x lb和ub均为n维列向量 b为m1维列向量 beq为m2维列向量 A为m1 n维矩阵 Aeq为m2 n维矩阵 注意事项MATLAB标准型是对目标函数求极小 如果遇到是对目标函数求极大的问题 在使用MATLAB求解时 需要在函数前面加一个负号转化为对目标函数求极小的问题 MATLAB标准型中的不等式约束形式为 如果在线性规划问题中出现 形式的不等式约束 则我们需要在两边乘以 1 使其转化为MATLAB中的 形式 如果在线性规划问题中出现了 的约束形式 则我们需要通过添加松弛变量使得不等式约束变为等式约束 将问题转化为MATLAB标准型原问题是对目标函数求极大 故添加负号使目标变为 minz 4x1 2x2 x3原问题中存在 的约束条件 故添加负号使其变为 8x1 2x2 2x3 8将约束整理为矩阵形式用MATLAB表达则为 f 4 2 1 将目标函数转化为求极小A 2 11 8 22 b 12 8 不等式约束系数矩阵Aeq 201 110 beq 3 7 等式约束系数矩阵lb 0 0 0 ub Inf Inf Inf 边界约束 函数调用格式MATLAB优化工具箱中求解线性规划问题的函数为linprog x linprog f A b x linprog f A b Aeq beq x linprog f A b Aeq beq lb ub x linprog f A b Aeq beq lb ub x0 x linprog f A b Aeq beq lb ub x0 options x linprog problem x fval linprog x fval exitflag linprog x fval exitflag output linprog x fval exitflag output lambda linprog 输入参数MATLAB工具箱中的linprog函数在求解线性规划问题时 提供的参数为 模型参数 初始解参数和算法控制参数 模型参数x c lb ub b beq A和Aeq在MATLAB标准型中已经介绍了其具体物理意义和获得方法x0为线性规划问题的初始解 该设置仅在中型规模算法中有效 而在默认的大型规模算法和单纯形算法中 MATLAB将忽略一切初始解 options为包含算法控制参数的结构变量 我们可以通过optimset命令对这些具体的控制参数进行设置 例如下述格式options optimset param1 value1 param2 value2 该命令格式创建一组控制参数结构变量options 将参数的具体值赋给单引号之间的参数 任何未被指定的参数将被赋值为 参数值为 的具体的含义是将该组控制参数传递给优化函数时将使用MATLAB提供的默认值在线性规划问题中可以用到的设置参数如下一页的表所示 输出参数linprog函数返回的输出参数有x fval exitflag lambda和output 输出参数x为线性规划问题的最优解输出参数fval为线性规划问题在最优解x处的函数值输出参数exitflag返回的是优化函数计算终止时的状态指示 说明算法终止的原因 其取值和其代表的具体原因如表所示 输出参数输出参数output是一个返回优化过程中相关信息的结构变量 其属性如表所示输出参数lambda是返回线性规划问题最优解x处的拉格朗日乘子的一个结构变量 其总维数等于约束条件的个数 其非零分量对应于起作用的约束条件 其属性如表所示 函数命令详解x linprog f A b 该函数调用格式求解线性规划问题x linprog f A b Aeq beq 该函数调用格式求解线性规划问题即该函数调用格式解决的是既含有线性等式约束 又含有线性不等式约束的线性规划问题 如果在线性规划问题中无线性不等式约束 则可以设A 以及b 函数命令详解x linprog f A b Aeq beq lb ub 该函数调用格式求解线性规划问题即在线性规划问题的求解过程中进一步考虑了对决策变量的约束 其中lb和ub均是和决策变量维数相同的列向量 如果对决策变量没有上界约束 可以设置ub i Inf 如果没有下界约束则可以设置lb i Inf 和 2 类似 如果问题中没有等式约束 则可以设Aeq 以及beq 命令详解x linprog c A b Aeq beq lb ub x0 在前面调用方法的基础上设置线性规划问题求解的初始解为x0 该参数仅在使用有效集算法时生效 否则当使用默认的内点算法时 将忽略任何初始点 即参数无效 x linprog c A b Aeq beq lb ub x0 options 用options指定的优化参数进行最小化 可以使用optimset来设置这些参数 x fval linprog 在优化计算结束之时返回线性规划问题在解x处的目标函数值fval x fval exitflag linprog 在优化计算结束之时返回exitflag值 描述函数计算的退出条件 x fval exitflag output linprog 在优化计算结束之时返回返回结构变量output x fval exitflag output lambda linprog 在优化计算结束之时返回线性规划问题最优解x处的拉格朗日乘子lambda 例题1 用MATLAB求解线性规划问题 f 1 1 目标函数 为转化为极小 故取目标函数中设计变量的相反数A 1 2 12 线性不等式约束b 4 8 lb 0 0 边界约束 由于无上界 故设置ub Inf Inf ub Inf Inf x fval linprog f A b lb ub Optimizationterminated x 6 00001 0000fval 7 0000 例题2 用MATLAB求解线性规划问题 f 1 3 1 目标函数 为转化为极小 故取目标函数中设计变量的相反数Aeq 112 121 线性等式约束beq 4 4 lb 0 0 0 设计变量的边界约束 由于无上界 故设置ub Inf Inf Inf ub Inf Inf Inf x fval exitflag linprog f Aeq beq lb ub Optimizationterminated x 1 33332 66670 0000fval 9 3333exitflag 1 例题3 用MATLAB求解线性规划问题 f 3 1 1 A 1 21 4 1 2 线性不等式约束b 11 3 Aeq 201 线性等式约束beq 1 lb 0 0 0 变量的边界约束 由于无上界 故设置ub Inf Inf Inf ub Inf Inf Inf x fval exitflag output lambda linprog f A b Aeq beq lb ub Optimizationterminated x 4 00001 00009 0000fval 2 0000output exitflag 1 output iterations 6algorithm large scale interiorpoint cgiterations 0message Optimizationterminated lambda ineqlin 2x1double eqlin 0 6667upper 3x1double lower 3x1double 0 1规划问题 MATLAB中求解0 1规划问题的标准形式bintprog的调用格式x bintprog f x bintprog f A b x bintprog f A b Aeq beq x bintprog f A b Aeq beq x0 x bintprog f A b Aeq beq x0 options x fval bintprog x fval exitflag bintprog x fval exitflag output bintprog 线性二次规划问题 MATLAB中求解线性二次规划问题的标准形式函数调用格式 x quadprog H f A b x quadprog H f A b Aeq beq x quadprog H f A b Aeq beq lb ub x quadprog H f A b Aeq beq lb ub x0 x quadprog H f A b Aeq beq lb ub x0 options x fval quadprog x fval exitflag quadprog x fval exitflag output quadprog x fval exitflag output lambda quadprog 线性目标规划问题 线性目标规划的MATLAB求解 输入输出参数 输入参数中 fun为目标函数 x0是求解的初始值 goal是目标函数的期望值 nonlcon是非线性约束函数 weight是目标权重 fun 最小化的目标函数 fun可以是一个在M函数中定义的函数句柄 Weight 可以控制低于或超过fgoalattain函数指定目标的相对程度 需要注意的是 如果将weight向量中的任一元素设置为0时 则算法将把对应的目标约束当做是硬约束来处理 当设置weight为不同的数值时 fgoalattain将对目标函数采取不同的处理方式 1 当权重weight设置为正时 fgoalattain函数则试图使目标函数值小于期望值 2 当权重weight设置为负时 fgoalattain函数则试图使目标函数值大于期望值 3 当需要目标函数值尽可能等于期望值时 则应设置控制参数GoalsExa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论