收藏 分销(赏)

用MATLAB优化工具包解非线性规划.doc

上传人:pc****0 文档编号:7188877 上传时间:2024-12-27 格式:DOC 页数:3 大小:38.50KB 下载积分:10 金币
下载 相关 举报
用MATLAB优化工具包解非线性规划.doc_第1页
第1页 / 共3页
用MATLAB优化工具包解非线性规划.doc_第2页
第2页 / 共3页


点击查看更多>>
资源描述
2.8 用MATLAB优化工具包解非线性规划 用MATLAB优化工具包求解非线性规划时必须先化为如下形式:          (NLP) 求解程序名为fmincon,其最简单的调用格式为: x = fmincon('fun',x0,A1,b1) (用于不含有等式约束和上下解约束的问题)其最复杂的调用格式为: [x,fval,exitflag,output,lambda,grad,hessian] = fmincon('fun',x0,A1,b1,A2,b2,v1,v2,'nlcon',options,P1,P2, ...) 2.8.1 程序fmincon输出变量 其中输出变量的含义为: 1) x : 最优解 2) fval : 最优解处的函数值 3) exitflag : 程序结束时的状态指示: · >0:收敛 ·  0:函数调用次数或迭代次数达到最大值(该值在options中指定) · <0:不收敛 4) Output: 包含以下数据的一个结构变量 · funcCount        函数调用次数 · iterations       实际迭代次数 · cgiterations     实际PCG迭代次数(大规模计算用) · algorithm        实际使用的算法 · stepsize         最后迭代步长(中等规模计算用) · firstorderopt    一阶最优条件满足的情况(目标函数梯度的范数) 5) lambda: 包含以下数据(LAGRANGE乘子)的一个结构变量,总维数等于约束条件的个数,其非零分量对应于起作用的约束条件: · ineqlin   不等式约束的LAGRANGE乘子 · eqlin     等式约束的LAGRANGE乘子 · upper     上界约束的LAGRANGE乘子 · lower     下界约束的LAGRANGE乘子 6) grad: 目标函数梯度 7) hessian: 目标函数的hessian矩阵 2.8.2 程序fmincon输入参数 其中输入变量的含义为: · x0为初始解(缺省时程序自动取x0=0) · A1,b1,A2,b2,v1,v2:含义见模型(NLP) · Fun.m给出目标函数,当GradObj='on'时必须给出其梯度,当Hessian='on'时还必须给出其Jacobi矩阵,一般形式为 · function [f,g,H] = fun(x) · f = ... % objective function value · if nargout > 1 · g = ... % gradient of the function · if nargout > 2 · H = ... % Hessian of the function · end · nlcon.m给出非线性约束,GradConstr='on'时还给出梯度,一般形式为 · function [c1,c2,GC1,GC2] = nlcon(x) · c1 = ... % nonlinear inequalities at x · c2 = ... % nonlinear equalities at x · if nargout > 2 · GC1 = ... % gradients of c1 · GC2 = ... % gradients of c2 · end · options:包含算法控制参数的结构 设定(或显示)控制参数的命令为Optimset,有以下一些用法: Optimset //显示控制参数 optimset optfun //显示程序'optfun'的控制参数 opt=optimset //控制参数设为[](即缺省值 opt=optimset(optfun)// 设定为程序'optfun'的控制参数缺省值 Opt=optimset('par1',val1,'par2',val2,...) Opt=optimset(oldopts,'par1',val1,...) opt=optimset(oldopts,newopts) 可以设定的参数比较多,对fmincon,常用的有以下一些参数: Diagnostics    是否显示诊断信息( 'on' 或'off') Display        显示信息的级别('off' , 'iter' , 'final','notify') LargeScale     是否采用大规模算法( 'on' 或'off') MaxIter        最大迭代次数 TolCon         约束的误差限 TolFun         函数计算的误差限 TolX           决策变量的误差限 GradObj        目标函数是否采用分析梯度('on' ,'off') Jacobian       目标函数是否采用分析Jacob矩阵('on' ,'off') MaxFunEvals    目标函数最大调用次数 GradConstr     非线性约束函数是否采用分析梯度('on' ,'off') 2.8.3 注意事项 · fmincon中输出变量、输入参数不一定写全,可以缺省。 · 当中间某个输入参数缺省时,需用[]占据其位置。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服