版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
附录A MATLAB中优化工具箱Matlab的优化工具箱提供了若干可以求解线性规划、非线性规划和多目标规划等最优.A优化工具箱中函数函 数描 述\fsolve非线性方程求解fzero标量非线性方程求解lsqlin有约束线性最小二乘lsqcurvefit非线性曲线拟合lsqnonlin非线性最小二乘lsqnonneg非负线性最小二乘fgoalattain多目标达到问题求解fminbndfmincon约束最优化问题求解fminimax极大极小化问题求解fminsearch,fminunc无约束最优化问题求解fseminf半无限规划问题求解linprog线性规划问题求解quadprog二次规划问题求解f(x)极大化,可以通过极小化f(xci(x0(iI,这一点同讲义的要求正好相反.函数的句柄,在调用上述优化函数时,其中的目标函数可以通过句柄调用.§A.1优化参数设置在优化问题求解时,人们常常需要算法对容许误差、迭代过程显示等进行针对性设置,向量来对优化函数进行参数设置,options18个元素.目前optoptimsetoptimget代替.§A.1.1optimget函数options优化参数,其调用格式为:val=optimget(options,'param')val=optimget(options,'param',default)=')options中指定的参数的值,只需要用参数开头的字母来定义参数就行了.val=optimget(options,'param',default)若options结构参数中没有定义指定参数,则返回缺省值.Options的参数描述(OPTIMSETPARAMETERS):DrivativeCheck-Compareusersuppliedderivatives(gradientsorJacobian)tofinite-differencingderivatives [on|{off}]Diagnostics-Printdiagnosticinformationaboutthefunctiontobeminimizedorsolved[on|{off}]DiffMaxChange-Maximumchangeinvariablesforfinitedifferencegradients[positivescalar |{1e-1}]DiffMinChange-Minimumchangeinvariablesforfinitedifferencegradients[positivescalar |{1e-8}]Display-Levelofdisplay[off|iter|notify|final]GoalsExactAchieve-Numberofgoalstoachieveexactly(donotover-orunder-achieve)[positivescalarinteger|{0}]GradConstr-Gradientsforthenonlinearconstraintsdefinedbyuser[on|{off}]GradObj-Gradient(s)fortheobjectivefunction(s)definedbyuser[on|{off}]Hessian-Hessianfortheobjectivefunctiondefinedbyuser [on|{off}]HessMult-Hessianmultiplyfunctiondefinedbyuser[function|{[]}]HessPattern-SparsitypatternoftheHessianforfinite-differencing[sparsematrix]HessUpdate-Quasi-Newtonupdatingscheme[{bfgs}|dfp|gillmurray|steepdesc]Jacobian-Jacobianfortheobjectivefunctiondefinedbyuser[on|{off}]JacobMult-Jacobianmultiplyfunctiondefinedbyuser[function|{[]}]JacobPattern-SparsitypatternoftheJacobianforfinite-differencing[sparsematrix]LargeScale-Uselarge-scalealgorithmifpossible[{on}|off]LevenbergMarquardt-ChoosesLevenberg-MarquardtoverGauss-Newtonalgorithm[on|off]LineSearchType-Linesearchalgorithmchoice[cubicpoly|{quadcubic}]MaxFunEvals-Maximumnumberoffunctionevaluationsallowed[positiveinteger]MaxIter-Maximumnumberofiterationsallowed[positiveinteger]MaxPCGIter-MaximumnumberofPCGiterationsallowed[positiveinteger]MeritFunction-Usegoalattainment/minimaxmeritfunction[{multiobj}|singleobj]MinAbsMax-NumberofF(x)tominimizetheworstcaseabsolutevalues[positivescalarinteger|{0}]PrecondBandWidth-UpperbandwidthofpreconditionerforPCG[positiveinteger|Inf|{0}]TolCon-Terminationtoleranceontheconstraintviolation[positivescalar]TolFun-Terminationtoleranceonthefunctionvalue[positivescalar]TolPCG-TerminationtoleranceonthePCGiteration[positivescalar|{0.1}]TolX-TerminationtoleranceonX[positivescalar]TypicalX-TypicalXvalues[vector]例如val=optimget(options,'Display')Displayval.§A.1.2optimset函数optimset函数创建或编辑优化选项参数.其调用格式为options=optimset('param1',value1,'param2',value2,...)optimsetoptions=optimsetoptions=optimset(optimfun)options=optimset(oldopts,'param1',value1,...)options=optimset(oldopts,newopts)=options的优化选项参数,其中指定的参数具有指定值.所有未指定的参数都设置为空矩阵[](将参数设置为[]options传递给优化函数时给参数赋缺省值).赋值时只要输入参数前面的字母就行了.optimset函数没有输入输出变量时,将显示一张完整的带有有效值的参数列表.options=optimset(withnoinputarguments)options,其中所有的元素被设置为[].options=optimset(optimfun)创建一个含有所有参数名和与优化函数optimfun相关的缺省值的选项结构options.=oldopts改参数.=optimset(oldopts,newopts)oldoptsnewopts进行合并.newopts参数中的所有元素将覆盖oldopts参数中的所有对应元素.例如,options=optimset('Display','iter','TolFun',1e-8)optnew=optimset(options,'TolX',1e-4)optnew参数中;options=optimset('fminbnd')fminbnd函数相关的缺省值;optimset('fminbnd')函数的缺省值.§A.2一元函数极小化(一维搜索)minf(x)s.t.x1xx2xR的最优解.fminbnd可以实现这一目标.Fminbnd的调用格式为x=fminbnd(fun,x1,x2)x=fminbnd(fun,x1,x2,options)x=fminbnd(fun,x1,x2,options,P1,P2,...)[x,fval]=fminbnd(...)[x,fval,exitflag]=fminbnd(...)[x,fval,exitflag,output]=fminbnd(...)=返回区间[x1,x2]funx.=options参数指定的优化参数再进行极小化.=P1,P2等,fun.如果没有设置optionsoptions=[].]=fminbnd(...)x处目标函数的值.=fminbnd(...)exitflagfminbnd函数的退出条件.[x,fval,exitflag,output]=fminbnd(...)返回包含优化信息的结构输出.其中参数描述:fun函数指定为命令行,如x=fminbnd(inline('sin(x*x)'),x0)同样,fun参数可以是一个包含函数名的字符串.对应的函数可以是M文件、内部MEX文件.fun='myfun',则x=fminbnd(@myfun,x0)Mmyfun.m必须有下面的形式:functionf=myfun(x)f=... x处的函数值..optimset函数设置或改变这些参数的值.options参数有以下几个选项:Display–显示的选项.选择'off',不显示输出;选择'iter',显示每一步迭代过程;选择'final',显示最终结果.MaxFunEvals–函数评价的极大允许次数.MaxIter允许迭代的最大次数.TolX–x处的容许误差.exitflag:描述退出条件:>0 x处.0 表示已经达到函数评价或迭代的极大次数.<0 表示目标函数不收敛.output:该参数包含下列优化信息:output.iterations–迭代次数.output.algorithm–所采用的算法.output.funcCount–函数评价次数.fminbnd是一个M文件.Matlab法,二次和三次混合插值法以及黄金分割法.注()mibd(),fminbnd函数的收敛速度常常很慢.此时,fmincon函数的计算速度更快,计算精度更高.§A.3无约束最优化问题minf(x)xRn的最优解.fminunc,fminsearch等.§A.3.1fminunc函数fminunc函数的调用格式为:x=fminunc(fun,x0)x=fminunc(fun,x0,options)x=fminunc(fun,x0,options,P1,P2,...)[x,fval]=fminunc(...)[x,fval,exitflag]=fminunc(...)[x,fval,exitflag,output]=fminunc(...)[x,fval,exitflag,output,grad]=fminunc(...)[x,fval,exitflag,output,grad,hessian]=fminunc(...)=x0funx.=options参数中指定的优化参数进行极小化.=P1,P2funoptoptions参数的缺省值.[x,fval]=fminunc(...)将解xfval参数中.=fminunc(...)exitflag值,描述函数的输出条件.[x,fval,exitflag,output]=fminunc(...)返回包含优化信息的结构输出.[x,fval,exitflag,output,grad]=fminunc(...)将解x处fun函数的梯度值返回到grad参数中.[x,fval,exitflag,output,grad,hessian]=fminunc(...)xHessian矩阵信息hessian参数中.其中参数描述:.funoptions.GradObj设为'on'(用下式设定),options=optimset('GradObj','on')g到第二个输出变量中去.注意,当被调用(如算法只需要目标函数的值而不需要其梯度值时nagot.function[f,g]=myfun(x)f %x处得函数值.ifnargout1 fun函数并要求有两个输出变量.g %计算x处的梯度值.endoptions.Hessian设为'on',即,optionsoptimset('Hessian','on')funx处的Hessian对称矩阵H到第三个输出变量中去.注意,fun函数只需要一个或两个输出变量时(fgHesan矩阵H时nagoutHessian矩阵function[f,g,H]=myfun(x)f %x处得函数值.ifnargout>1 求有两个输出变量.g=... %计算x处的梯度值.ifnargout>2H %计算xHessian矩阵.end.optimset函数设置或改变这些参数.其中有的参型问题.首先描述适用于大型问题的选项.这仅仅是一个参考,因为使用大型问题算法有一些条件.fminunc函数来说,必须提供梯度信息.LargeScale–当设为'on'时使用大型算法,若设为'off'则使用中型问题的算法.Diagnostics–打印极小化函数的诊断信息.Display–显示水平.选择'off',不显示输出;选择'iter',显示每一步迭代过程的输出;选择'final',显示最终结果.GradObj–用户定义的目标函数的梯度.于中型问题则是可选项.MaxFunEvals–函数评价的极大次数.MaxIter–极大允许迭代次数.TolFun–函数值的终止容限.TolXx处的终止容限.只用于大型算法的参数:Hessian–用户定义的目标函数的Hessian矩阵.HessPattern–用于有限差分的Hessian矩阵的稀疏形式.若不方便求fun函HessianHH的稀疏结.HessPattern设为密集矩阵,在每一次迭代过程中,都将进行密集矩阵的有限差分近似(这是缺省设置).这将非常麻烦,所以花一些力气得到Hessian矩阵的稀疏结构还是值得的.MaxPCGIterPCG迭代的极大次数.PrecondBandWidth–PCG前处理的上带宽,缺省时为零.对于有些问题,增加带宽可以减少迭代次数.TolPCGPCG迭代的终止容限.TypicalX–典型x值.只用于中型算法的参数:DerivativeCheck–对用户提供的导数和有限差分求出的导数进行对比.DiffMaxChange–变量有限差分梯度的极大变化.DiffMinChange–变量有限差分梯度的最小变化.LineSearchType–一维搜索算法的选择.fminbndoutput:该参数包含下列优化信息:output.iterations–迭代次数.output.algorithm–所采用的算法.output.funcCount–函数评价次数.output.cgiterations–PCG迭代次数(只适用于大型规划问题).output.stepsize–最终步长的大小(只用于中型问题).–x处梯度的范数.注对于求解平方和的问题,fminunclsqnonlin佳.options.GradObj'on'来提供梯度信息,否则将给出警告信息.目标函数必须是连续的,fminuncfminunc函数只对实数进行优化,即xf(x)必须返回实数.当x为复数时,必须将它分解为实部和虚部.在使用大型算法时,用户必须在fun函数中提供梯度(options参数中GradObj属性必须设置为'on').funoptionsDerivativeCheck用于大型算法以比较解析梯度和有限差分梯度.通过将options参数的MaxIter属性设置0来用中型方法核对导数.然后重新用大型方法求解问题.fminunc函数的算法实现方法:大型优化算法fun该算法是基于内部映射牛顿法的子空间信赖域法.PCG法求解大型线性系统得到的近似解.中型优化算法options.LargeScale设置为'off'.该算法采用的BFGSBFGSHesan矩阵.可通过将HeUpdaedpDP公式来求得Hesan.Hessian矩阵.但一般不建议使用最速下降法.三次混合插值法.将options.LineSearchType设置为'cubicpoly'.第二种方法需要的目标函数计算次数更少,但梯度的计算次数更多.这样,如果提供了梯度信息,或者能较容易地算得,则三次插值法是更佳的选择.§A.3.2fminsearch函数fminsearch函数的调用格式为:x=fminsearch(fun,x0)x=fminsearch(fun,x0,options)x=fminsearch(fun,x0,options,P1,P2,...)[x,fval]=fminsearch(...)[x,fval,exitflag]=fminsearch(...)[x,fval,exitflag,output]=fminsearch(...)x=fminsearch(fun,x0) x0funx.=options参数指定的优化参数进行极小化.=P1,P2fun,将options参数的缺省值.]=fminsearch(...)xfval参数中.=fminsearch(...)exitflag值,描述函数的退出条件.]=fminsearch(...)output.fminsearch函数是使用单纯形法进行计算的.§A.4非线性方程组和最小二乘问题§A.4.1非线性方程(组)求解(组)的两个函数,fzerofsolve.(一)非线性方程求零点fzero函数是用来求解非线性方程的零点,其调用格式为x=fzero(fun,x0)x=fzero(fun,x0,options)x=fzero(fun,x0,options,P1,P2,...)[x,fval]=fzero(...)[x,fval,exitflag]=fzero(...)[x,fval,exitflag,output]=fzero(...)=x0funxfun必须是一fzerox0Nx0是一个数时,它相当于初始点.x0x0(1)x0(2)要构成f(x0(1))f(x0(2))<0,不然出现错误.注(1)调用fzero函数时,使用初值区间(二元素的x0)x0快;(2)fzero命令给零点的定义是函数与x轴相交的点.函数与x轴接触但并没有穿过xy=x^20处与xx以没有发现零点.对于没有有效零点的函数,fzeroInfNaN值.(二)非线性方程组的求解F(x)=0F(x)是向量值函数.fsolve函数的调用格式为:x=fsolve(fun,x0)x=fsolve(fun,x0,options)x=fsolve(fun,x0,options,P1,P2,...)[x,fval]=fsolve(...)[x,fval,exitflag]=fsolve(...)[x,fval,exitflag,output]=fsolve(...)[x,fval,exitflag,output,jacobian]=fsolve(...)=funx0.=options结构指定的参数进行最小化.x=soeun,x0oponsP1P2,)提供其他变量如P1P2u.options=[].]=fsolve(...)x处目标函数的值.=fsolve(...)exitflag参数,描述退出条件.]=fsolve(...)返回包含优化信息的输出结构output.[x,fval,exitflag,output,jacobian]=fsolve(...)返回解xfun函数的Jacobian矩阵.注(1)要求解的函数必须是连续的.当成功收敛时,fsolve函数只给出一个解.当函数收敛于非零点时,给出下面的信息:OptimizerisstuckataminimumthatisnotarootTryagainwithanewstartingguess此时,重新给定初值并运行fsolvefsolve函数只对实数变量有效.当x为复数时,必须将它分为实数部分和虚数部分.对于大型化问题,若在funJacobianoptions参数不能与大型算法同时使用来比较解析Jacobian矩阵和有限差分JacobianMaxIter设置为0函数求解非线性方程组.的算法是基于最小二乘法.§A.4.2线性与非线性最小二乘问题求解(一)约束线性最小二乘问题Matlib考虑的约束线性最小二乘问题的标准形式为minf(x)1||Cxd||22s.t.Axb,Aeqxbeq,lbxub.中,函数lsqlin可以求解上述问题. lsqlin的调用格式为:x=lsqlin(C,d,A,b)x=lsqlin(C,d,A,b,Aeq,beq)x=lsqlin(C,d,A,b,Aeq,beq,lb,ub)x=lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0)x=lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options)[x,resnorm]=lsqlin(...)[x,resnorm,residual]=lsqlin(...)[x,resnorm,residual,exitflag]=lsqlin(...)[x,resnorm,residual,exitflag,output]=lsqlin(...)[x,resnorm,residual,exitflag,output,lambda]=lsqlin(...)=Cx=d的最小二乘解.x=lsqlin(C,d,A,b,Aeq,beq)是有等式和不等式约束条件下,求方程Cx=d的最小二乘解.若没有不等式约束,则设A=[],b=[].x=sqn,dA,bAe,beqb,ub)是在自变量xb和u束条件下,求方程Cx=d的最小二乘解.Aeq=[],beq=[].x=lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0)x0情况下,求解约束线性最小二乘问xlb=[],ub=[].x=lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options) options为指定优化参数[x,resnorm]=lsqlin(...) 即2-范数.[x,resnorm,residual]=lsqlin(...) residual=C*x-d,即残差.[x,resnorm,residual,exitflag]=lsqlin(...)exitflag同前[x,resnorm,residual,exitflag,output]=lsqlin(...) output表示输出优化信息[x,resnorm,residual,exitflag,output,lambda]=lsqlin(...) lambda为解xLagrange乘子(二)非线性数据(曲线)拟合xdataydata,并且知道输入与输出的函数ydata=F(x,xdata),但不知道系数向量x.进行曲线拟合,求解无约束最优化问题mmin(f(x,xdata)ydata)2mxRn
i ii1x.中,使用函数lsqcurvefit解决这类问题. lsqcurvefit的调用格式为x=lsqcurvefit(fun,x0,xdata,ydata)x=lsqcurvefit(fun,x0,xdata,ydata,lb,ub)x=lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)[x,resnorm]=lsqcurvefit(…)[x,resnorm,residual]=lsqcurvefit(…)[x,resnorm,residual,exitflag]=lsqcurvefit(…)[x,resnorm,residual,exitflag,output]=lsqcurvefit(…)[x,resnorm,residual,exitflag,output,lambda]=lsqcurvefit(…)[x,resnorm,residual,exitflag,output,lambda,jacobian]=lsqcurvefit(…)参数说明:x0为初始解向量;ydata=F(x,xdata)的数据;lb=[],ub=[];options为指定的优化参数;fun为拟合函数;resnorm=sum((fun(x,xdata)-ydata).^2)x处残差的平方和;x处的残差;exitflag为终止迭代的条件;output为输出的优化信息;lambdaxLagrange乘子;jacobianxfunjacobian矩阵.(三)非线性最小二乘问题非线性最小二乘问题的标准形式为mminF2(x)mxRn
ii1Matlablsqnonlin解决这类问题,函数lsqnonlin的调用格式为x=lsqnonlin(fun,x0)x=lsqnonlin(fun,x0,lb,ub)x=lsqnonlin(fun,x0,lb,ub,options)[x,resnorm]=lsqnonlin(…)%resnorm=sum(fun(x).^2)[x,resnorm,residual]=lsqnonlin(…)[x,resnorm,residual,exitflag]=lsqnonlin(…)[x,resnorm,residual,exitflag,output]=lsqnonlin(…)[x,resnorm,residual,exitflag,output,lambda][x,resnorm,residual,exitflag,output,lambda,jacobian]=lsqnonlin(…)matlabhelp.(四)非负约束线性最小二乘问题非负约束线性最小二乘问题的标准形式为min||Cxd||2s.t.x0lsqnonneglsqnonneg的调用格式为x=lsqnonneg(C,d)x=lsqnonneg(C,d,x0)x=lsqnonneg(C,d,x0,options)[x,resnorm]=lsqnonneg(…)[x,resnorm,residual]=lsqnonneg(…)[x,resnorm,residual,exitflag]=lsqnonneg(…)[x,resnorm,residual,exitflag,output]=lsqnonneg(…)[x,resnorm,residual,exitflag,output,lambda]=lsqnonneg(…)matlabhelp.注当问题为无约束线性最小二乘问题时,使用MATLAB下的“\”运算即可以解决.§A.5线性规划问题Matlib考虑的线性规划问题的标准形式为minfTxs.t.Axb,beq,lbxub.linprog可以求解上述问题.linprog的调用格式为:x=linprog(f,A,b,Aeq,beq)x=linprog(f,A,b,Aeq,beq,lb,ub)x=linprog(f,A,b,Aeq,beq,lb,ub,x0)x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)[x,fval]=linprog(...)[x,fval,exitflag]=linprog(...)[x,fval,exitflag,output]=linprog(...)[x,fval,exitflag,output,lambda]=linprog(...)matlabhelp.LIPSOL.linprogquadprog函数的算法一样.linprog函数使用的是一种活动集方法,是线性规划中单纯形法的变种.它通过求解另一个线性规划问题来找到初始可行解.§A.6二次规划问题Matlib考虑的二次规划问题的标准形式为minfTx1xTHx2s.t.Axb,Aeqxbeq,lbxub.中,函数quadprog可以求解上述问题. 数quadprog的调用格式为:x=quadprog(H,f,A,b)x=quadprog(H,f,A,b,Aeq,beq)x=quadprog(H,f,A,b,Aeq,beq,lb,ub)x=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)x=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)[x,fval]=quadprog(...)[x,fval,exitflag]=quadprog(...)[x,fval,exitflag,output]=quadprog(...)[x,fval,exitflag,output,lambda]=quadprog(...)matlabhelp.注(1)quadprog解.AeqBeqlbub更好的数值解.若xquadprogInf(对负数.对于大型优化问题,若没有提供初值x0,或x0不是严格可行,则quadprog函数会选择一个新的初始可行点.若为等式约束,且quadprog函数发现负曲度(negativecurvature),则优化过程终止,exitflag的值等于-1.Matlab优化工具箱中大型优化算法是基于内部映射牛顿法(interior-reflectiveNewtonmethod)的子空间信赖域法(subspacetrust-region).PCG.缺省算法为大型算法,或者,如果优化问题中只有线性等式,而没有上界和下界或线性不等式时,缺省算法也是大型算法.quadprog划问题来获得初始可行解.§A.7约束最优化问题Matlib考虑的约束最优化问题的标准形式为minf(x)s.t.Axb,,c(x)0,ceq(x)0,lbxub.其中约束条件的前两项是线性不等式和等式约束,第三第四项是非线性不等式和等式约束,第五项是自变量x的上下界.中,函数fmincon可以求解上述问题. 的调用格式为:x=fmincon(fun,x0,A,b)x=fmincon(fun,x0,A,b,Aeq,beq)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P2,...)[x,fval]=fmincon(...)[x,fval,exitflag]=fmincon(...)[x,fval,exitflag,output]=fmincon(...)[x,fval,exitflag,output,lambda]=fmincon(...)[x,fval,exitflag,output,lambda,grad]=fmincon(...)[x,fval,exitflag,output,lambda,grad,hessian]=fmincon(...)matlabhelp.c(x)<=0ceq(x)=0..MMEX文.xxc和非线性等式ceq.例如,若nonlcon='mycon'Mmycon.m具有下面的形式:function[c,ceq]=mycon(x)c=... %计算x处的非线性不等式.ceq=... %计算x处的非线性等式.options=optimset('GradConstr','on')则nonlcon函数必须在第三个和第四个输出变量中返回c(x)GC和ceq(x)的梯度Gceq.当被调用的nonlcon函数只需要两个输出变量(cceq的值,而不需GC和GCeq)nargoutGC和Gceq的值.function[c,ceq,GC,GCeq]=mycon(x)c=... %解x处的非线性不等式.ceq=... %解x处的非线性等式.ifnargout>2 %4个输出变量.GC=... %不等式的梯度.GCeq=... %等式的梯度.endnonlconmc和长度为n的xc(x)GCn*m的.ceqpceq(x)的梯Gceqn*pGceq(i,j)ceq(j)对x(i)的偏导数.注funoptions.GradObjon').如果没有梯度信息,则给出警告信息.fmincon函数允许g(x)为一近似梯度,但使用真正的梯度将使优化过程更具稳健性.当对矩阵的二阶导数(即Hessian矩阵)进行计算以后,用该函数求解大型问题将更有效.但不需要求得真正的Hessian矩阵,如果能提供Hessian矩阵的稀疏结构的信息(optionsHessPattern属性fminconHessian矩阵的稀疏有限差分近似.若x0fmincon若x的某些元素没有上界或下界,则fmincon函数更希望对应的元素设置为Inf(I很小的负值.线性约束极小化课题中也有几个问题需要注意:a)Aeq使计算费时.b)fmincon函数剔除Aeq中线性相关的行.此过程需要进行反复的因子分解,因此,如果相关行很多的话,计算将是一件很费时的事情.对于中型优化问题:a)如果用Aeq和beq清楚地提供等式约束,将比用lb和ub获得更好的数值解.b)在二次子问题中,若有等式约束并且因等式(dependentequalities)被发现和剔除的话,将在过程标题中显示'dependent'(当output参数要求使用options.Display='iter').只有在等式连续的情况下,因等式才会被剔除.若等式系统不连续,则子问题将不可行并在过程标题中打印'infeasible'信息..缺省时,若提供了函数的梯度信fmincon函数将选择大型算法.中型优化算法fmincon函数使用序列二次规划法(SQP).二次规划子问题,并用BFGS法更新拉格朗日Hessian矩阵.§A.8多目标规划问题Matlib考虑的多目标规划问题的形式为mins.t.F(x)weightgoalAxb,Aeqxbeq,c(x)0,ceq(x)0,lbxub.xweightgoalbbeqlbub都是向量,A,Aeq是矩阵,F(xc(xceq(x)一般是非线性向量值函数.x.中,函数fgoalattain可以求解上述问题. 的调用格式为:x=fgoalattain(fun,x0,goal,weight)x=fgoalattain(fun,x0,goal,weight,A,b)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阿富汗毛毯项目评价分析报告
- 婴儿健身架产品入市调查研究报告
- 2024年度建筑工程施工合同(含工程量清单)
- 环保设备租赁合同模板大全
- 建筑旋挖机租赁合同范本
- 2024年度代理合同标的及代理范围和代理费用
- 标准国有土地租赁合同
- 短期劳动合同书范例
- 专业财富管理信托合同
- 2024年度委托代理事务合同的标的及代理事务
- FLUENT6.3使用说明及例题
- 街道火灾事故检讨
- 最新班组安全管理安全生产标准化培训课件
- 《一粒种子成长过程》的课件
- 学好语文贵在三个“多”:多读、多背、多写-浅谈语文学法指导
- 助人为乐-主题班会(课件)
- 桂林电子科技大学高等数学期末测试
- 麻醉科护师晋升副主任医师高级职称专题报告病例分析(麻醉诱导后喉痉挛急救与护理)
- 关键装置、重点部位
- 安全文明施工措施费用检查表
- 2022小说精读批注海明威小说《一天的等待》附阅读试题答案解析
评论
0/150
提交评论