Matlab的fmincon函数

上传人:Wo****B 文档编号:167400756 上传时间:2022-11-03 格式:DOC 页数:7 大小:18.50KB
返回 下载 相关 举报
Matlab的fmincon函数_第1页
第1页 / 共7页
Matlab的fmincon函数_第2页
第2页 / 共7页
Matlab的fmincon函数_第3页
第3页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Matlab的fmincon函数 - Matlab优化函数fmincon 1. fmincon是一种部分优化函数,利用目的函数以及约束函数的一阶导数信息,从给的初始点开场,在满足约束的条件下,沿着目的函数下降的方向迭代,最后收敛到部分最优解。约束函数不同,对应的结果当然会不一样,因为一般的多维优化问题总存在很多部分最优解,而fmincon只能找到离给的初始点最近的极小值,在你的问题中,可能在-5,-6区间上存在一个极小值,当然也可能是-6,-7,因此你优化的结果会不同。exitflag是优化结果的标志,exitflag=1说明优化收敛到部分最优解;exitflag=4、5说明你采用的是有效集算法(active-set ),也得到相应的结果;假如exitflag=0那说明你的优化失败了。 2. fmincon函数,用与解方程和拟合。fmincon可用于部分优化,全局优化。功能强大,假设灵敏运用能解决很多问题。 部分优化的语句为:X = FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON) 全局优化的语句为: opts1 = optimset(Algorithm,interior-point); opts2 = optimset(Algorithm,sqp); opts3 = optimset(Algorithm,trust-region-reflective); opts4 = optimset(Algorithm,active-set); createOptimProblem(fmincon,objective, FUN, x0, X0, . Aineq, A, bineq, b, Aeq, Aeq, beq, beq, lb, LB, . ub, UB, nonlcon, NONLCON, options,opts1) gs = GlobalSearch; x1,fval1 = run(gs,problem1) 3. X0=2 2; A=1 0.1;-0.1 -1; B=4;-2; Aeq=; Beq=; LB=; UB=; NONLCON=; options = optimset(Algorithm,active-set); X,FVAL,EXITFLAG,OUTPUT=fmincon(x)x(1)2+x(2)2,X0,A,B,Aeq,Beq,LB,UB,NONLCON,options) 结果: X = 0.1980 1.9802 FVAL = 3.9604 EXITFLAG = 1 OUTPUT = iterations: 3 funcCount: 12 lssteplength: 1 stepsize: 0.0028 algorithm: medium-scale: SQP, Quasi-Newton, line-search firstorderopt: 1.9757e-008 constrviolation: 0 message: 1x144 char Matlab的fmincon函数(非线性等式/不等式约束优化问题求解) fmincon函数优化问题 x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) fmincon是求解目的fun最小值的内部函数 x0是初值 A b线性不等式约束 Aeq beq线性等式约束 lb下边界 ub上边界 nonlcon非线性约束条件 options其他参数,对初学者没有必须,直接使用默认的即可 优化工具箱提供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,b,beq,lb,和ub为线性不等式约束的下、上界向量,A和Aeq为线性不等式约束和等式约束的系数矩阵矩阵,fun为目的函数,nonlcon为非线性约束函数。 显然,其调用语法中有很多和无约束函数fminunc的格式是一样的,其意义也一样,在此不在重复介绍。对应上述调用格式的解释如下: x=fmincon(fun,x0,A,b)给定初值x0,求解fun函数的最小值x。fun函数的约束条件为A*x2%被调用的nonlcon函数,要求有4个输出变量。 GC=.%不等式的梯度。 应用举例 某设计问题可以简化为如下数学模型:显然,此模型属于一个二维约束优化问题。应用fmincon函数求解此优化模型,需要如下几个步骤: 1创立目的函数M文件 myobj.m 程序为: function f=myobj(x) f=2*x(1)2+2*x(2)2-2*x(1)*x(2)-4*x(1)-6*x(2); 2创立非线性约束函数M文件 mycon.m 程序为: functionc,ceq=mycon(x) c(1)=x(1)+5*x(2)2-5; ceq=; 3创立优化函数主程序,youhua.m 并进展初始化及线性约束条件设置 程序为: %求优化函数极小值 A=11;%线性不等式约束左边矩阵 b=2;%线性不等式约束右边向量 Aeq=;%线性等式约束左边矩阵 beq=;%线性等式约束右边向量 lb=0;0;%自变量下限 ub=inf;inf;%自变量上限 x0=1 ;1;%初始值 options=optimset(LargeScale,off,display,iter); x,fval,exitflag=fmincon(myobj,x0,A,b,lb,ub,mycon,options) 在Command Window中,输入youhua回车 得到程序结果为: youhua max Directional First-order Iter F-count f(x) constraint Step-size derivative optimality Procedure 0 3 -8 Infeasible start point 1 7 -7.7037 0.06173 1 0.37 0.83 2 11 -7.67725 0.0003061 1 0.0268 0.0149 3 15 -7.67712 7.682e-009 1 0.000134 7.35e-007 Optimization terminated: first-order optimality measure less than options.TolFun and maximum constraint violation is less than options.TolCon. Active inequalities (to within options.TolCon = 1e-006): lower upper ineqlin ineqnonlin 1 1 x = 1.1190 0.8810 fval = 1 -7.6771 exitflag = 1 第 7 页 共 7 页
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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