运筹学实验Matlab和LINDO安装和使用.docx
《运筹学实验Matlab和LINDO安装和使用.docx》由会员分享,可在线阅读,更多相关《运筹学实验Matlab和LINDO安装和使用.docx(18页珍藏版)》请在冰豆网上搜索。
运筹学实验Matlab和LINDO安装和使用
线性规划------Matlab软件
一、软件简介:
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。
是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
二、软件安装:
(1)工具/原料:
Windows1064位
MATLAB2015B64位镜像:
R2015b_win64.iso
破解包:
MW_2015B64_Full.rar
(2)方法/步骤:
下载完成之后,解压镜像文件“R2015b_win64.iso”(不能用虚拟光驱加载安装,因为里面有一个文件需要用破解包替换才能安装)
解压破解包:
MW_2015B64_Full.rar
将解压后的MW_2015B64_Full文件夹下面的“install.jar”替换镜像解压后“R2015b_win64\java\jar\install.jar”的文件
进入镜像解压后的文件夹,双击“setup.exe”,开始安装,选择“使用文件安装密钥”,点击下一步,进入下一界面,点击接受许可协议的条款。
在下一个界面,点击“我已有我的许可证的文件安装密钥”,输入安装密钥“52965-57859-04135-19462”
选择安装文件夹
再点击下一步,进入“产品选择界面”,选择我们所需要的产品,如果不清楚、硬盘空间足够大,就全选吧
点击下一步,再点击下一步,再点击安装,就开始安装了,安装时间根据机器配置不同而不同。
完成后,点击下一步,进入激活界面,选择“在不选择Internet情况下手动激活”。
点击下一步,浏览找到解压后的“MW_2015B64_Full”文件夹下的“Matlab_R2015b.lic”文件。
点击下一步,完成激活
将“MW_2015B64_Full/bin”文件夹下面的破解动态库文件“libmwservices.dll”替换MATLAB2015b安装目录下面的“R2015b\bin\win64\libmwservices.dll”文件。
至此,就完成了Matlab2015b的安装与破解工作!
三、基本规则:
(1)输入时,标点必须是英文状态下的
(2)大多数情况下,matlab对空格不予处理
(3)小括号代表运算级别,中括号用于生成矩阵,大括号用于构成单元数组
(4)分号;的作用:
不显示运算结果,但对图形窗口不起作用。
分号也用于区分行,
(5)逗号,的作用:
函数参数分隔符,也用于区分行,显示运算结果,当然不加标点也显示运算结果
(6)冒号:
多用于数组
(7)续行号...不能放在等号后面使用,不能放在变量名中间使用,起作用时默认显蓝色
(8)双引号'string'是字符串的标识符
(9)感叹号!
用于调用操作系统运算
(10)百分号%是注释号,百分号后面直到行末的语句matlab跳过执行.另外还有一个块注释,即对多行一次注释,会使用到,格式为(注意%{和%}都要单独成行)
%{
%}
(11)乘号*总是不能省略的,除了表示复数,比如2+3i时可以省略
(12)除号/或\,它两个的关系是:
a除以b表示为a/b,或b\a
(13)等号=用于赋值
(14)双等号==表示数学意义上的等号
(15)主窗口里面,输入时,换行用Shift+Enter
(16)主窗口里面,运行程序,执行命令用Enter
(17)矩阵中用圆括号表示下标,单元数组用大括号表示下标
(18)对变量名的基本要求:
区分大小写,不超过63个字符,以字母开头,只能是字母,数字和下划线
(19)clc即clearcommand(清屏),
clf即clearfigure(清理图形窗口)
clear清理内存所有变量,
clear+变量名清理内存指定变量
edit+函数名查看或编辑源文件
who显示当前变量名列表
whos显示变量详细列表
which+函数名证实该函数是否在当前路径
what列出当前路径的所有matlab文件
load加载外部文件
save保存文件到外部
(20)matlab的帮助函数:
help
help+函数名或help+函数类名精确查询
helpwin打开帮助窗口
helpwin+函数名精确查询
helpdesk打开帮助窗口
doc打开帮助窗口
doc+函数名打开帮助窗口,精确查询
lookfor+关键字这个是matlab中的谷歌,模糊查询
(21)有时候程序会陷入死循环,这时把操作切换到运行窗口,按Ctrl+C结束运行
(22)函数式M文件的文件名,在matlab主窗口下不区分大小写,
函数式M文件中,变量都是局部变量
脚本式M文件中,变量都是全局变量
(23)主窗口中,几个有用的快捷键:
在命令提示符后,可以用键盘上的上箭头和下箭头调用历史命令行
Esc清除当前输入行
Ctrl+左箭头,光标左移一个单词
Ctrl+右箭头,光标右移一个单词
Del删除光标后一个字符
Alt+Backspace恢复上次删除
(24)编辑器(Editor)中的几个有用的快捷键:
Tab或Ctrl+]增加缩进,对多行有效
Ctrl+[减少缩进,对多行有效
Ctrl+I自动缩进,对多行有效
Ctrl+R注释,对多行有效
Ctrl+T去掉注释,对多行有效
Ctrl+B括号配对检测,未配对会有红色波浪线标出
F12设置或取消断点
F5运行程序
容易犯错的一个地方是:
矩阵中运算,除了+和-,其它的都要加上点号,如:
./,.*,.^表示矩阵中每个元素运算
四、用MatLab求解线性规划问题:
现有线性规划问题:
求最优解。
解:
由于linprog函数只解决形如:
的问题,所以要先将上面的问题变形为:
打开matlab,分别输入价值系数向量c=[-3;1;1],系数矩阵A=[1-21;4-1-2],资源向量b=[11;-3],等式左端系数向量aeq=[20-1],等式右端资源向量beq=-1,变量的约束条件vlb=[0;0;0],最后输入[x,fval]=linprog(c,A,b,aeq,beq,vlb)调用linprog函数,并将结果保存到x向量和fval中。
运行结果如下图所示:
运行结果表明最优解是
,
此时目标函数
。
线性规划------LinDo软件
一、软件简介:
LINDO(Linear,INteractive,andDiscreteOptimizer)是一个解决二次线性整数规划问题的方便而强大的工具。
这些问题主要出现在商业、工业、研究和政府等领域。
应用运筹学去处理问题有两个重要特征:
一是从全局的观点出发;二是通过建立模型如数学模型或模拟模型,对于要求解的问题得到最合理的决策。
好了,说到这里,LINDO该出场了,它的作用就是负责把问题的最优决策求出来,省去大量难以想象的人工计算。
如果你是运筹学的学习者,你就必须拥有LINDO。
已被证实LINDO能在商业、工业、研究和政府等领域发挥巨大作用的具体事务包括:
产品分销、成分混合、生产与个人事务安排、存货管理……在这里不一一列举,但可以肯定的是,LINDO可以大展拳脚的领域是多不胜数的。
LINDO的主要设计原则是,如果一个用户只是想解决一个简单的问题,就不应该在学习LINDO的基本特性上花费太多的准备成本。
而另一方面,LINDO也可以用来解决一些复杂的二次线性整数规划方面的实际问题。
如在大型的机器上,LINDO被用来解决一些拥有超过50,000个约束条件和200,000万个变量的大规模复杂问题。
二、软件安装:
(1)工具/原料:
安装包:
lnd61.zip
(2)方法/步骤:
解压lnd61.zip,得到lnd61.exe安装程序。
打开安装程序,进入安装界面点击“Next”,进入下一界面
点击接受许可协议的条款,点击Next进入下一界面
选择安装路径,点击Next进入下一界面
点击Install,即开始安装
点击finish退出安装程序
三、基本规则:
(1)Lindo中的变量名由数字和字母组成,但必须以字母开头,且长度不能超过8个字符,Lindo中不区分大小写。
包括LINDO中的关键字也不区分大小写。
(2)目标函数以“max”或“min”开头,max(或min)与目标函数表达式之间不能有“=”。
(3)目标函数与约束条件之间必须用“st”分开,并且“st”单独一行。
(4)目标函数,各约束条件都必须以“回车”键结束,并且都应该是经过简化后的表达式,所有字符必须是英文状态下输入的。
(5)lindo已规定所有的决策变量均为非负数。
(6)变量与其系数之间可以有空格,称号必须省略,式中不能有括号;约束条件的右端不能有决策变量,左端不能有常数项;没有下标,式中不能有分母,始终不能有逗号,句号等(说明语句除外)。
(7)约束条件中的符号“
”用“>=”表示,“
”用“<=”表示,并且可以分别用“>”和“<”表示。
(8)输入文件中的第一行默认为目标函数,可以用2),3)等标明各约束条件,便于从输出结果中查找信息。
以感叹号“!
”开始的是说明语句。
(9)程序最后以end结束,对于小型的规划问题,end可以省略。
整型变量(例如:
ginx1)和0-1变量(例如intx3)的约束放在end之后,此时end不能省略,如果省略,整数变量,0-1变量等限制将不起作用。
(10)如果所有的决策变量都是整型变量(例如有6个变量),则可以在end之后写命令:
gin6,如果不是所有的决策变量都是整型变量,则不能采用此方法。
(11)如果x1是整型变量,则应该在end之后写上命令ginx1,如果x1是0-1变量,则应该在end之后写上命令:
intx1.如果所有的决策变量共有6个,并且所有的决策变量都是整数,则可以在end之后写上命令gin6,如果x1,x2都是整型变量,但并不是所有的变量都是整型变量,则要写成
ginx1ginx2,不能写成ginx1,x2或ginx1;x2。
四、用LinDo求解线性规划问题:
现有线性规划问题:
求最优解。
打开matlab,输入:
min
-3x1+x2+x3
st
x1-2x2+x3<=11
-4x1+x2+2x3>=3
-2x1+x3=1
x1>=0
x2>=0
x3>=0
点击solve,弹出是否进行敏感性分析对话框,点击“否”,显示结果如下:
运行结果表明最优解是
,
此时目标函数
。