matlab最小值优化问题中fminunc、fmincon的应用

matlab最小值优化问题中fminunc、fmincon的应用

ID:5385779

大小:415.29 KB

页数:23页

时间:2017-12-08

matlab最小值优化问题中fminunc、fmincon的应用_第1页
matlab最小值优化问题中fminunc、fmincon的应用_第2页
matlab最小值优化问题中fminunc、fmincon的应用_第3页
matlab最小值优化问题中fminunc、fmincon的应用_第4页
matlab最小值优化问题中fminunc、fmincon的应用_第5页
资源描述:

《matlab最小值优化问题中fminunc、fmincon的应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、工程最优化即最大(小)值问题1、无约束(无条件)的最优化(1)使用fminunc函数(un-condition)(2)可用于任意函数求最小值(3)将最大、最小问题统一为求最小值问题(即只能求最小值)。如求最大值,则要对函数取相反数而变成求最小值问题,最后再把函数值取反即为函数的最大值。(求最大值需两次取反(一前一后))(前后都是函数y两次取反,而自变量X不要取反)(4)使用格式x=fminunc(‘程序名’,x0)左边的结果还可以写成[x,fval]或[x,fval,exitflag]或必须预先把函数存入到一个程序中,(所编的程序一定是只有一个参数,则当为多元函数时,则x(1),x

2、(2),x(3)…分别代表每个自变量)其中fval为函数的最小值,x0为自变量初始向量,一般不影响结果(如有n个变量(即n元函数),则x0中就有n个元素)exitflag为退出标志,当它大于0时表示函数收敛于x,当它等于0时表示迭代次数超过,当它小于0时表示函数不收敛(所以解完题后还必须判断exitflag的值是否>0,以决定结果的正误/有效性)最好返回三个结果函数存在最值的条件:在闭区间连续,存在导数等(说明有很多函数不存在最值:有大、有小、有大小、都无)可以是任意函数、任意n元函数求最小值最后一定要看看exitflag的值(判断结果是否有效)---所以........结果最好返

3、回三个结果函数可以用内联函数inline(‘表达式’)(程序中的.*./.^可要可不要,一般还是不要吧)2(5)y=x+4x+5的最小值(结果-2,1)其函数形式为:---可以@,内联函数inline(‘x2+4x+5’),functionf=a1(x)f=x^2+4*x+5;------最好不要.*.^./因为不是向量(一批数)的运算,初始x0就是变量的个数(调用该程序时,所提供的每个变量的初始值)函数名:’zhc1’或@zhc1或inline(‘…’)>>[x,f,g]=fminunc(inline('x^2+4*x+5'),1)还有学生f=y=x^2+4*x+5;??????

4、>>edit>>[x,fval,exitflag]=fminunc('max1',1)Warning:Gradientmustbeprovidedfortrust-regionmethod;usingline-searchmethodinstead.>Infminuncat241Optimizationterminated:relativeinfinity-normofgradientlessthanoptions.TolFun.x=-2.0000fval=1.0000exitflag=1>>[a,b,c]=fminunc('max1',1)Warning:Gradientmust

5、beprovidedfortrust-regionmethod;usingline-searchmethodinstead.>Infminuncat241Optimizationterminated:relativeinfinity-normofgradientlessthanoptions.TolFun.a=-2.0000b=1.0000c=1>>[x,fval,exitflag]=fminunc('max1',0)>>[x,fval,exitflag]=fminunc('max1',5)>>[x,fval,exitflag]=fminunc(@max1,5)>>[x,fval,

6、exitflag]=fminunc(inline('x^2+4*x+5'),1)>>[x,fval,exitflag]=fminunc(@(x)x^2+4*x+5,1)>>a=@(x)x^2+4*x+5;>>[x,fval,exitflag]=fminunc(a,1)2(6)例如:求y=1+2x-x的最大值(结果为:x=1,y=-(-2))---X不要取反,两次都是函数取反其函数形式为:functionf=a1(x)命令形式[x,y,z]=fminunc('a1',3)f=-(1+2*x-x^2)或负号展开—最后再取反------需两次取反>>a1(1)ans=-2>>a1(0)a

7、ns=-12x2(7)求函数f(x,y)=e(x+y+2y)的最小值其函数形式为:functionf=a1(r)--fmin所要求的程序一定是一个参数x=r(1);y=r(2);f=exp(2*x)*(x+y^2+2*y);----有学生写成f(x,y)=……或functionf=a2(a)x=a(1);y=a(2);f=或f中直接用x(1),x(2)命令为:[x,fval,exitflag]=fminunc('a1',[2,1])—即a1调用时的参数x=0.5000

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。