- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
应用MATLAB优化工具箱求解计划问题
现在,计划类问题是常见数学建模问题,离散系统优化问题通常全部能够经过计划模型来求解。用MATLAB求解计划问题,能够避免手工烦琐计算,大大提升工作效率和结果正确性。MATLAB是一个应用于数学计算及计算结果可视化处理面向对象高性能计算机语言,它以矩阵和向量为基础数据单位,从而提升程序向量化程度,提升计算效率,尤其适合于线性计划、整数计划、多元计划、二元计划类问题算法编写,和数据拟合、参数估量、插值等数据处理法。利用MATLAB提供强大计划模型求解命令,能够简单快速地得到所要结果。本文关键对线性计划、非线性计划、整数计划、单目标约束计划和多目标计划等计划问题在MATLAB中实现做比较具体讲解.
线性计划问题
线性计划是一个优化方法,MATLAB优化工具箱中有现成函数linprog对标准型LP问题求解。
线性计划问题是目标函数和约束条件均为线性函数问题,MATLAB中线性计划标准型为:
Min f’x
其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵。
其它形式线性计划问题全部可经过合适改变化为以上标准型。线性计划是一个优化方法,MATLAB优化工具箱中有现成函数linprog对标准型LP问题求解。在MATLAB指令窗口运行help linprog能够看到全部函数调用形式,
以下:
x = linprog(f,A,b) %求min f’x ;s.t. 线性计划最优解
x = linprog(f,A,b,Aeq,beq) %等式约束,若没有不等式约束,则A=[],b=[]。若没有等式约束,则Aeq=[],beq=[]
x = linprog(f,A,b,Aeq,beq,lb,ub) %指定x范围
x = linprog(f,A,b,Aeq,beq,lb,ub,x0) %设置初值x0
x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options) % options为指定优化参数进行最小化
[x,fval] = linprog(...) %返回目标函数最优值,即fval= f’x
[x,lambda,exitflag] = linprog(...) % lambda为解xLagrange乘子
[x,lambda,exitflag,output] = linprog(...) % exitflag为终止迭代条件
[x,fval,exitflag,output,lambda] = linprog(...) % output为输出优化信息
exitflag描述函数计算退出条件:若exitflag0表示函数收敛于解x,exitflag=0表示目标达成函数估值或迭代最大次数,exitflag0表示函数不收敛于解x;
lambda返回x处拉个朗日乘子:lambda.lower 表示下界lb,lambda.upper表示上界ub,lambda.ineqlin表示线性不等式约束,lambda.eqlin表示线性等式约束,lambda中非0元素表示对应约束是有效约束;
output返回优化信息:output.iterations表示迭代次数,output.algorithm表示使用运算规则,output.cgiterations表示PCG迭代次数。
非线性计划
假如目标函数或约束条件中包含非线性函数,就称这种计划问题为非线性计划问题。简记为(NP),NP问题及其相关问题分为两类:无约束计划和约束计划.可概括为通常形式是:
其中,.在MATLAB中非线性计划数学模型可写成以下形式:
其中:x、b、beq、lb、ub是向量,A、Aeq为矩阵,C(x)、Ceq(x)是返回向量函数,f(x)为目标函数,f(x)、C(x)、Ceq(x)是非线性函数。
无约束计划
无约束NLP方法是确定下列函数式表示无约束变量函数极小值一个方法:
这里, f(x)为一标量目标函数.处理这个问题可由两个函数实现,即fminunc函数和fminsearch函数,其中fminunc函数基于梯度搜索法实现,而fminsearch函数基于直接搜索法实现。
调用fminunc格式以下:
x = fminunc(fun,x0) %参数x0表示x起始值
x = fminunc(fun,x0,options) %options为optimset定义参数赋值,options参数带有空矩阵
原创力文档


文档评论(0)