- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
207-208
第6章 优化系统
由于优化运算不是所有工科大学生的必修课,所以对于优化运算我们着重从应用上讲起,避免涉及复杂的优化算法理论,力求浅显易懂。有关优化运算的理论问题请读者自己查阅有关书籍。
本章首先介绍了优化运算问题及其数学模型,然后介绍了MATLAB的优化工具箱、线性规划、求非线性一元函数的最小值、无约束非线性多元优化和有约束非线性多元优化问题。虽然本章的例子都非常简单,但是optim工具箱的功能非常大,可以解决很多复杂的优化问题。
6-1优化问题及其数学模型
什么是优化问题呢?
假设有一个问题,它由几个因素决定,当这些因素处于某个状态上时,可以使问题得到我们最想要的结果;优化运算就是寻求这个状态的过程。我们举一个简单的例子:
某工厂生产A,B两种产品,所用原料均为甲、乙、丙三种;生产一件产品所需原料和所获得利润以及库存原料情况如下所示:
原料甲 原料乙 原料丙 利润 产品A 8 4 4 7000元 产品B 6 8 6 10000元 库存原料量 380 300 220 在该厂只有库存原料甲380单位,原料乙300单位,原料丙220单位的情况下如何安排A、B两种种产品的生产数量可以获得最大的利润呢?
设生产A产品件,生产B产品件,z为所获得的利润,于是有关系式:
z=7000+10000
我们称它为目标函数。生产的条件我们可以表示为:
8+6380
4+8330
4+6220
我们把上面的不等式称为约束条件。
而A产品的产和B的产量是优化问题的变量。在满足约束条件的前提下使目标函数得到最优的值称为最优解。根据以上的定义,也可以说优化运算是通过某种计算寻求最优解的过程。
以上这个用等式或不等式来表达我们要解决的问题的过程就是优化运算的建模过程。我们平时遇到的问题常常不是上面的这几个数学表达式就能表达的清清楚楚的,但是建立像上面类似的数学模型却是优化求解的第一步。优化问题常常表现为在多约束条件下求某一函数的极值问题,例如上面这个例子。Matlab有一个优化工具箱(Optimization Toolbox),功能很强大,可以帮助我们方便的解决好多这类问题。
6-2优化工具箱
Matlab的优化工具箱是由一些对普通非线性规划等标准矩阵问题的函数。所有的优化函数都是用Matlab语言编写的M文件,我们可以通过在命令窗口里输入type function_name来查看这些函数。
优化工具箱的优化功能包括:
⑴求无约束非线性最小化;
⑵求有约束线性最小化(包括目标获取问题;最小最大化问题和半无限最小化问题);
⑶二次和线性规划问题;
⑷非线性最小二乘法和曲线拟合问题;
⑸非线性等式的求解;
⑹约束线性最小二乘法;
⑺稀疏和结构化大尺度问题。
另外我们还可以通过加入我们自己编写的m文件或者把本工具箱与Simulink和其他的工具箱结合来扩展优化工具箱的功能。
工具箱中求非线性函数极小值和指令函数如表6-2所示:
表6-2 非线性函数极小值的指令函数
问题类型 函数用法 含义 线性规划问题 x=linprog(f,A,b) 在条件Ax≤b下求min 无限定标量问题 x=fminunc(‘f’,x) min,x为标量 无限定条件矩阵问题 x=fminunc(‘f’,)x min,X为矩阵 有限定条件 x=fmincon(‘fg’,x) min,条件为G(X)≤0 目标条件 x=fgoalattain(‘f’,x,goal,w) ,条件为F(X)-≤goal 最小最大极值 x=fminmax(‘fg’,x) 条件为G(X)≤0 非线性二次平方极值 x=lsqnonneg(‘f’,x) min 非线性方程 x=fsolve(‘f’,x) F(X)=0 半无穷条件 x=fsen\minf(‘ft’,nx) min,条件为任意给定w值, 上面表中函数可以对标量、向量和矩阵进行运算;我们着重介绍几个常用的优化函数。一般矩阵用大写字母表示,向量、标量用小写字母表示;在Matlab中用符号“*”表示矩阵的元素乘。当然,上述运算是在定义好了一个最小化函数的前提下进行的,也就是说要先建立数学模型。
读者可以看一看Matlab自身提供的优化演示示例。在命令窗口输入optdemo,按回车,命令窗口出现:
选择一个选项,根据给出的说明和解释一步一步的操作,然后你就会为Matlab优化工具箱的简单易学和巨大的优化功能而叹服了!
6-3线性规划问题
什么是线性规划问题呢?
本章5-1节所举的例子就是一个很典型的线性规划问题。从这个例子我们可以总结出线性规划数学模型的特点:在线性不等式或线性等式的约束条件下,求能满足目标函数取得最大值或最小值的一组变量的值,目标函数也要求是线性表达式。
MATLAB解决线性规
原创力文档


文档评论(0)