- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6讲非线性规划课件.ppt
Matlab与数学建模 计算机科学与信息工程系 软件工程教研室 许晓华 xuxiaohua@tjau.edu.cn 第6讲 非线性规划 6.1 有约束非线性单变量优化问题 fminbnd() 6.2 无约束非线性多变量优化问题 fminsearch()、fminunc() 6.3 有约束非线性多变量优化问题 fmincon() 6.1 有约束非线性单变量优化问题 函数为fminbnd(),其使用格式为: X=fminbnd(fun,x1,x2) [X,fval,exitflag,output]= fminbnd(fun,x1,x2) 其中:fun为目标函数,x1,x2为变量的边界约束,即x1≤x≤x2, X为返回的满足fun取得最小值的x的值 fval为此时的目标函数值。 exitflag0表示计算收敛,exitflag=0表示超过了最大的迭代次数,exitflag0表示计算不收敛 返回值output有3个分量,其中iterations是优化过程中迭代次数,funcCount是代入函数值的次数,algorithm是优化所采用的算法。 例:求函数 在区间[-2,2]的最小值和相应的x值。 解决此问题的Matlab程序为: clear fun=(x^5+x^3+x^2-1)/(exp(x^2)+sin(-x)) ezplot(fun,[-2,2]) [X,fval,exitflag,output]= fminbnd(fun,-2,2) 结果为: X = 0.2176 fval =-1.1312 exitflag = 1 output = iterations: 13 funcCount: 13 algorithm: golden section search, parabolic interpolation 6.2 无约束非线性多变量优化问题 函数 fminsearch 格式 x = fminsearch(fun,x0) %x0为初始点,fun为目标函数的表达式字符串或MATLAB自定义函数的函数柄。 x = fminsearch(fun,x0,options) % options查optimset [x,fval] = fminsearch(…) %最优点的函数值 [x,fval,exitflag] = fminsearch(…) % exitflag与单变量情形一致 [x,fval,exitflag,output] = fminsearch(…) %output与单变量情形一致 注意:fminsearch采用了Nelder-Mead型简单搜寻法。 例 求 的最小值点 解:X=fminsearch(2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2, [0,0]) 结果为 X = 1.0016 0.8335 或在MATLAB编辑器中建立函数文件 function f=myfun(x) f=2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2; 保存为myfun.m,在命令窗口键入 X=fminsearch (myfun, [0,0]) 或 X=fminsearch(@myfun, [0,0]) 函数 fminunc 格式 x = fminunc(fun,x0) %返回给定初始点x0的最小函数值点 x = fminunc(fun,x0,options) % options为指定优化参数 [x,fval] = fminunc(…) %fval为最优点x处的函数值 [x,fval,exitflag] = fminunc(…) % exitflag为终止迭代的条件,与上同。 [x,fval,exitflag,output] = fminunc(…) %output为输出优化信息 [x,fval,exitflag,output,grad] = fminunc(…) % grad为函数在解x处的梯度值 [x,fval,exitflag,output,grad,hessian] = fminunc(…) %目标函数在解x处的海赛(Hessian)值 例:求函数 的最小值。 Matlab程序为 clear fun=exp(x(1))*(2*x(1)^2+3*x(2)^2+2*x(1)*x(2)+3*x(2)+1); x0=[0,0]; options=optimset(largescale,off,display,iter,tolx,1e-8,tolfun,1
文档评论(0)