Matlab优化工具箱学习

上传人:沈*** 文档编号:120369294 上传时间:2022-07-17 格式:DOC 页数:28 大小:460KB
返回 下载 相关 举报
Matlab优化工具箱学习_第1页
第1页 / 共28页
Matlab优化工具箱学习_第2页
第2页 / 共28页
Matlab优化工具箱学习_第3页
第3页 / 共28页
点击查看更多>>
资源描述
Matlab优化工具箱学习Postedon2009-10-2419:25feisky阅读(740)评论(0)编辑收藏-一直知道的优化工具箱,可是一直都没有学习,提供的功能主要有线性规划、非线性规划、极值问题等,这些也是比较常见的优化问题。优化工具箱概述求解优化问题的主要函数粪型模型基本函数茗一元函數根小MinF孟)s.t.x1k:k2K=fJTLLilkiiBdl:F:KijK3)无约束槻小MinF(X)X=fminunc(?F;站)K=fminsearch(线性规划MincXs.-t.AX=bX=liEprog(CjA,b)二找蜩Min二筈孤+匚鼻s.t.As=bX=qua4)rog(HjCjAjb)釣束骯b(菲线性规划)MinF釦s.-t.G(X)=0X=fmincon(达剽目标问题Muixs.t.F(.z)二goalX=fgoalattain(F;召沪al,vs)积小根大问题MinmaxiE.t.G(X)v0X=fm.ininiax(?FGitJ优.化函数的输入变量使用优化函数或优化工具箱中其它优化函数时输入变量见下表变量描述调用函数f蚩性规划的目标函數科工或二枚规划的目标函数F担栽卄疣中銭性项的系数向量lmprogjquadprog:fun非域性优化的目标趣數壬口必须为背命令对象或朮丈件嵌入函数、或MEK丈件的名荊fiRinbnd.fiunearchjfnanuriCjfnunccii,lsqcurvefiij1fgoalacttaigfminimasH二枕规划的目标函数F也描+1檳中二伙顷的系数柜阵quadprcg&tiA矩阵和b向量分别为域性不等戒的束1AXOIJx为解;否则样不是最终解,它只是迭代制止时忧化过程的值所有优化函数fval解孟处的目标馥值1inpxogjquaijrug,fgualattfmineoiijfitlLiiimaSjIsqcurvefitj1sqnoilliiijfmiiitmdesitflag描述退出条件: eKitflag表目标函数收鉞于解屜 exitflaO,表已达到函数评价或迭代的最丈浓数-esitflag-CO,表目标函数不收敛output包含忧化结果信息甲输単笆构.Itexations:迭代次数 Mgorithm:所采用的算法 FuncCount:函数评价次数所有优化函数ptions中常用的几个参数的名称、含义、取值如下(1)Display显示水平取值为off时,不显示输出取值为iter时,显示每次迭代的信息取值为final时,显示最终结果.默认值为final.(2)aFunval允许进行函数评价的最大次数,取值为正整数.()a:允许进行迭代的最大次数,取值为正整数控制参数options可以通过函数optimset创建或修改。命令的格式如下:(1)options=optimset(optimfun)创建一个含有所有参数名,并与优化函数optimfun相关的默认值的选项结构options.(2)options=optimset(param1,value1,param2,value2,.)创建一个名称为options的优化选项参数,其中指定的参数具有指定值,所有未指定的参数取默认值.(3o)ptions=optimset(oldops,param1,value1,param2,value2,.)创建名称为oldops的参数的拷贝,用指定的参数值修改oldops中相应的参数.例:opts=optimset(Display,iter,TolFun,1e)该语句创建一个称为opts的优化选项结构,其中显示参数设为iter,TolFun参数设为1e用Matlab解无约束优化问题一元函数无约束优化问题吨心心常用格式如下:(1)x=fminbndf(un,x1,x)2(2)x=fminbndf(un,x1,x,2options)(3)x,fval=fminbn(d.)(4)x,fval,exitflag=fminb(n.d.)(5)x,fval,exitflag,output=fminbn(d.)其中(3)、(4)、(5)的等式右边可选用(1)或(2)的等式右边。函数fminnc的算法基于黄金分割法和二次插值法,它要求目标函数必须是连续函数,并可能只给出局部最优解。f=sinx例求J在中的最小值与最大值主程序为作图语句运行结果:例2对边长为3米的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?设剪去的正方形的辺长弧,则水槽的容积为:(3-2?)建立无釣束优化模型为:mmy=-(32x2)x0k1.5先编写文件如下主程序为运算结果为a即剪掉的正方形的边长为米时水槽的容积最大最大容积为立方米2多元函数无约束优化问题标准型为:in(命令格式为:()=finufifun);或=finsearchfun)()=finunfun,options);或=finsearchfun,options)(3)x,fval=fmin(un.c.).;或,fal=finsearch)()xfaleitflag=findnc);或xfaleitflag=finsearch()xfaleitflagoutput=finufic).或,faleitflagoutput=finsearch)说明finsearch是用单纯形法寻优fini的算法见以下几点说明:fi为无约束优化提供了大型优化和中型优化算法。由options中的参数LargeScale控制:LargeScale=on(默认值使用大型算法LargeScale二off(默认值使用中型算法fi为中型优化算法的搜索方向提供了种算法,由options参数HessUpdate控制:HessUpdate=bfgs(默认值),拟牛顿法的G公式;HessUpdate二dfp,拟牛顿法的公式;HessUpdate二steepdesc,最速下降法fi为中型优化算法的步长一维搜索提供了两种算法,由options中参数LineSearchType控制:LineSearchType二quadcubic(缺省值,混合的二次和三次多项式插值;LineSearchType二cubicpoly,三次多项式插使用finun(和口finsear(可能会得到局部最优解1、编写文件funlmfunctionf=fun1(x)f=exp(x(1)(x(1)2*x(2)x(1)*x(2)x(2)+1);、输入文件ii如下:x0=1,算1;算x=fminunc(fun1,x0);y=fun1(x)、运行结果:x=算算0试5000算算算文1试0000=算算算1试302910例n函数f(x1,x)=100(xx)(1)x211的最优解(极小)为x=(1,1),极小值为f=0试用不同算法(搜索方向和步长搜索)求数值最优解初值选为x0=(1试2算),算试2算1试为获得直观认识,先画出n函数的三维图形,输入以下命令:x,y=mesi(2:0试1:2,文1:0试1:3)=100(x)+(1x);m(x,)算画出n函数的等高线图,输入命令:contour(x,y,z,20)holdon(1,);x(1,in)(1,1,)x(1,1,uin)用fmin函数求解运行结果用函数建立文件主程序函数不同算法的计算结果步长搜索最优解儘优值BKS混台二、三饮捕值(0.9996,0.9992)2.3100x:0-7155三次插值(1.0001,1.0002)2.3943:0山132DFP棍合二、二演捕但三谀插值(0.QQQ5,0.gggo)(0.89940.7995)7x:0-70.DI92151204(-1.1634,1.3610)4.68S9204漏合一、三冷捕值(0.9446,0.8920)0.iX)31BO02(3.99S9,0.99161.8543x.O-53002(1.0000,1.0000)1.9151xlO10202可以看出,最速下降法的结果最差.因为最速下降法特别不适合于从一狭长通道到达最优解的情况例产销量的最佳安排所谓产销平衡指工厂的产量某厂生产一种产品有甲、乙两个牌号,讨论在产销平衡的情况下如何确定各自的产量,使总利润最大等于市场上的销量符号说明表示总利润;分别表示甲的价格、成本、销量;分别表示乙的价格、成本、销量;,入(i)是待定系数基本假设价格与销量成线性关系利润既取决于销量和价格,也依赖于产量和成本。按照市场规律,甲的价格会随其销量的增长而降低,同时乙的销量的增长也会使甲的价格有稍微的下降,可以简单地假设价格与销量成线性关系,即:,0且同理,成本与产量成负指数关系甲的成本随其产量的增长而降低且有一个渐进值,可以假设为负指数关系,即同理,模型建立总利润为:若根据大量的统计数据,求出系数问题转化为无约束优化问题:求甲,乙两个牌号的产量2,使总利润最大为简化模型,先忽略成本,并令问题转化为求我们把它作为原问题的初始值模型求解建立文件funmfuncionf=fun(x)=(100-x(1)-0.1*x(2)-(30*exp(-0.015*x(1)+20)*x(1);=(280-0.2*x(1)-2*x(2)-(100*exp(-0.02*x(2)+30)*x(2)f=.输入命令:x0=50,70;x=fminunc(fun,x0),=fun(x).计算结果:x=23.9025,62.977,z=6.4135e+00即甲的产量为23.90乙2的5产,量为62.49最7大7利,润为6413二次规划标谁型无MillZ=XTHX+crXs七.AXbX=beqVLBXVUB用软件求解其输入格式如下、运算结果为:用软件求解其输入格式如下、写成标准形式:、输入命令:、运算结果为:一般非线性规划标准型为:minF(X)A&q-X=b沁0s.tAX=bG(X)Ceq(X)=0VLBXVUB其中x为n维变元向量,(X与eq(X均为非线性函数组成的向量,其它变量的含义与线性规划、二次规划中相同用tl求解上述问题,基本步骤分三步:首先建立文件fun定义目标函数(X)functionf=fun(X);f=F(X);2.若约束条件中有非线性约束:G(X)兰0或Ceq(X)=0f则建立M文件nonlconm定义函数G(X)与Ceq(X):functionG,Ceq=nonlcon(X)G=.Ceq=.建立主程序非线性规划求解的函数是fneo命令的基本格式如下:xf(=m1i)nco(nfun,X0,A,b)(2) xf=mineo(nfun,X0,A,b,Aeq,beq)(3) xf=mineo(nfun,X0,A,b,Aeq,beq,VLB,VUB)f=mine(onfun,X0,A,b,Aeq,beq,VLB,VUB,nonleon)(5)xf=mineo(nfun,X0,A,b,Aeq,beq,VLB,VUB,nonleon,options),fvalfm=ineon(ncloanlncaong(,.o.、I注意:函数提供了大型优化算法和中型优化算法。默认时,若在函数中提供了梯度(0(参数的设置为on),并且只有上下界存在或只有等式约束,n函(数将选择大型算法。当既有等式约束又有梯度约束时,使用中型算法。函数的中型算法使用的是序列二次规划法。在每一步迭代中求解二次规划子问题,并用法更新拉格朗日矩阵。函数可能会给出局部最优解,这与初值的选取有关。2x1+3x26兀1+4也兰5g也王、再建立主程序、运算结果为:例3mm/(x)=5+4巧也+2x2+1)S.t.X+亏=01.5+眄也一忑_$0忑忑2_10兰0先建立文件定义目标函数再建立文件定义非线性约束:主程序为运算结果为:例.资金使用问题设有万元资金要求年内使用完若在一年内使用资金万元则可得效益万元效益不能再使用当年不用的资金可存入银行年利率为试制定出资金的使用计划以使年效益之和为最大设变量丙表示第年所使用的资金数则有maxz=+“国+s.t.x14001.11+也4401.21兀1+1.1可+x34841.33+1.2lx2+1.lx3+x40j=12,3,4先建立文件定义目标函数再建立文件定义非线性约束:主程序为T=Z:T”=1D427-得到z=43.l一线性规划问题minf(x)sub.to:xAb-xAeq=beq-ubxlb其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵。其它形式的线性规划问题都可经过适当变换化为此标准形式x=linprog(f,A,b,Aeq,beq,lb,ub,x0)%设置初值x0“半无限”有约束的多元函数最优解x=fseminf(fun,x0,ntheta,seminfcon)x=fseminf(fun,x0,ntheta,seminfcon,A,b)x=fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq)x=fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub)x=fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub,options)x,fval=fseminf()x,fval,exitflag=fseminf()x,fval,exitflag,output=fseminf(“)x,fval,exitflag,output,lambda=fseminf)10求卜Hi骤牯脳的挝优优问縣minfx)=(xt-05/+(xj-0.5)r+(刼-0.5y2sub.idKi(xTW)=sin(wX)cosfwjx2)-50)r-sin(wLxjt)-3jiJKj(Xtwi)ssiwiXjJcoswaXi)-j(Wj-5Q)J-sin(w2x0-Ilwi100lw,00耿:将的束方程牝为标淮形式:K|(x.W|)s=sin(wixjcostwl-yjtw1-50J2-sin(w,X)-xAI0K:x*w2)=miX-|q(w=-50)1-siiUw=x3)一心一I50先建立非找性釣束利半无限酌束画數忑忡+井谋春为mycon.mifiinctitm|Cs.Ce|iKLK2.SmyccmlXuS)%切鮒化if麻闽itsifbfflftffl厲(打1从S!Q-20;0.20;當id%产宝样*規】wl-11,1):100;wl-1:S12J):IOQ;%计算半无限均3:KIfX2)-L1UW(wI-i.n2-siinwI*X|A)-XJ)-kK2sin(w2*X(2!lcMtwflrXt11)-11000*(w3-5O)ifl2-fI;%C-|:C|门:%笙制半AJM旳枭图於p】0lnI武打生吋SeiHi-i讪祁血ooftsEraintJi然际在MATLAB命令窗口城编辑艦中锂芷hl文件tfiiti-umKx-O.SlSy:0|0_5;02;03J;%SlikTliin耳口刊易xnh-aljlaiLinflibihMK2昭站果为*O.fr6?3氐tirt删阳诫AflWJiklML03G130.4023hal0.0770|CXeq,KLK2|nia.K31ans-0.0017-niaxlK2rans-*O.OM45mycontx.NaN;%利111切岭样木何t极小化极大问题例子:极小化极大门題的标准形式沖minimx苗(兀)sub.toC(x)0Ceq(x)=0AxbAeq-x=beqlbxubScl1lX、b、bcq-.lb、ub是向;i:.A-.Acq7?矩阵.C(x)-.Ccq(x(2);05)=x(l)+x(2)-S;然匸.在命令窗口键入命令:xO-0.1:O.LJ;%初始值x,lalj-fininiiniaK(値miyTLimKO)结果知4.00004.0000fni-O.OCOO-64.0CCO-2.0000-H.OCCO-0.0M最小二乘最优问题约束线性最小二乘例子:有约束线性址小二乘的标淮形式为sub.tcAxbAeqx=beqlbxAcq为矩阵;d-.b-.bcq、lb、ub-.:x是向虽:口在MAILAB5.XI.约束线性域小.一乘用函数conlfi或解=函数JsqLin格式X=IsqlintCA)%求在约束条件AXb|-方SCx=d的址小二乘解仏x=Is-ql10(0,4,b?Acq,beq)%Aeq-.beq满足等式约束Aeq,x=btq丰r;没有不等式约束,则设A=J,b=).x=IsqlinfCAAAAbeqJijb)畑ub满足lbxub,若没有等式约束,则Aeq=,beq=,x=lsqlintCjdAbAeqJwqlb血xO)%xO为初始解向氐若x没有界*则lb=.ubx=lsIin(C.d,ATb,Aci|,be(j,IbiibAUnOptions)%opiions沟指走优化:参数x,resncmi=lsqlm()%rcsnorm=norm(C*x-dy-if:(x)2其中;盟为向量,F何为函数|诃氐函数Jsqnoulln格式x=lsqnonlin(fun,xO悯xO为初始解向邑;lunf(x),i=】2furi返回向昱值P血不是平方和值.平方刑隐含在靠法1.fun的宦义崎前面相同。x=Isqnonlin(Cun.xOJb,ub)蚓b、ub定义k的卜界和上界:lb兰x兰lib-x=Isqiicnlintfun.AOJbub.option)%cptions为指宦优化参数F:x渔仃界.则lb=),jKnxsnorm=Isqnonlinf)%rt!inorm=siLfTL(fun(,即懈x虻11标函数值。x,rcsnarm,rcsiduaI=hqnonlin()%rcsLdual=fuii(A)即孵x处iun的值。xsrL&nn.ricsidLialxilflag=lsqnonlin()%exitflag.Zj终止迭代条件-xsnenTLsiduacxilllag,t)Litput=lsqncmlin()%output输出忧化人丫息心xsnormsidnalcxilflagoiilpLitJambda=lqncnlin()%lamlda为Lagnagex,rcsnomiresicliiatcxitflagutput,lambdajaeobian=lgqnunHii()%funf-筑草x处的Jacobian矩阵非负线性最小二乘比址线性址小一来的标淮形式为:iicx-Bub.tox0KT:矩阵亡和向昱1为目掠函数的系数.向昱X沟非负独工变昱。在MATLAB5.XP,用雷数加k求解这类问題.在札。版中则用函Isqnonnega函数qitonneg格式x=lsqrLonneg(C,d)%2为实矩阵.心为实向量x=lsqnonncg(C%xO为初始值I丸T0x=lsqn)nncg(CjdOcplions)%oplionii为指左tt化参数xresnorm=hqnarmcgf)%rcsncrm=ncirm(C*Xd/2xjesnermiduaI=lsqncnncg()%residiuil=C*x-dx,rcnorm/chidnal,uxiltlag=Ltiqnonncgf)x7rt5inojTii,residual,exit11agiitput=lsqnonncg()x,rcnorm,rcsidnul,cxilllag,outpuLhmbda=Lsnonncgf)例5-18个最小.:乘间题的无约束与II:负约束解肚的比较=先输入数据:CI0.03720.2B690.6R610.7071;0.62330.6245;0.63440.6170;d0.B5B7;0.I7BL:,0.0747;0.405|;Cd,Isquunn館(匚如)ans-2.562703.II0H0.6929注意:1省问题为无约束线性最小二乘问题时,烧用MAILAB下的叫”运算即可说解决.2对于非负最小二乘问题、调用kqnoim笔(C,山库解非线性方程的解非线性方程的标准形式为f(x)=0函数fzero格式x=fzero(fun,x0)%用fun定义表达式f(x),x0为初始解。x=fzero(fun,x0,options)x,fval=伎ero()fval=f(x)x,fval,exitflag=伎ero()x,fval,exitflag,output=fzero(-)说明该函数采用数值解求方程f(x)=0的根。非线性方程组的解非线性方程组的标准形式为:F(x)=0其中:x为向量,F(x)为函数向量。函数fsolve格式x=fsolve(fun,x0)%用fun定义向量函数,其定义方式为:先定义方程函数functionF=myfun(x)。F=表达式1表达式2;表达式m%保存为myfun.m,并用下面方式调用:x=fsolve(myfun,x0),x0为初始估计值。x=fsolve(fun,x0,options)x,fval=fsolve()fval=F(x),即函数值向量x,fval,exitflag=fsolve()x,fval,exitflag,output=fsolve(-)x,fval,exitflag,output,jacobian=fsolve()%jacobian为解x处的Jacobian阵
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!