欢迎来到天天文库
浏览记录
ID:8960732
大小:46.00 KB
页数:2页
时间:2018-04-13
《matlab已知梯度条件情况下的优化》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、已知梯度条件情况下的优化学会使用fmincon()的option参数设置;确定目标函数:约束条件:加入目标函数梯度约束:加入约束函数梯度约束:这些都作为参数被调用到fmincon()例子:;约束条件解:目标函数:目标函数梯度:约束函数梯度:Fmincon调用格式[x,fval,exitflag,output]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)2function[x,fval]=opfgradx0=[-1,1];%初始值如何设置A=[];b=[];%Ax2、[];beq=[];%Aeq.x=beqlb=[];ub=[];%搜索范围options=optimset('Largescale','off');options=optimset(options,'gradobj','on','gradconstr','on');%LargeScale指大规模搜索,off表示在规模搜索模式关闭,Simplex指单纯形算法,on表示该算法打开[x,fval]=fmincon(@fobj,x0,A,b,Aeq,beq,lb,ub,@confgrad,options);function[f,g]=f3、obj(x)%目标函数以及相应的梯度f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);%目标函数fx1=f+exp(x(1))*(8*x(1)+4*x(2));%目标函数的梯度1fx2=exp(x(1))*(4*x(1)+4*x(2)+2);%目标函数的梯度2g=[fx1;fx2];%目标函数的梯度function[c,ceq,gcon,gceq]=confgrad(x)fcon1=1.5+x(1)*x(2)-x(1)-x(2);%约束函数1gxcon1=[x(2)-1,-4、x(2)];%约束函数1梯度fcon2=-x(1)*x(2)-10;%约束函数2gxcon2=[x(1)-1,-x(1)];%约束函数2梯度c=[fcon1;fcon2];%约束函数gcon=[gxcon1;gxcon2];%约束函数梯度ceq=[];%约束函数的等式约束gceq=[];%约束函数梯度的等式约束2
2、[];beq=[];%Aeq.x=beqlb=[];ub=[];%搜索范围options=optimset('Largescale','off');options=optimset(options,'gradobj','on','gradconstr','on');%LargeScale指大规模搜索,off表示在规模搜索模式关闭,Simplex指单纯形算法,on表示该算法打开[x,fval]=fmincon(@fobj,x0,A,b,Aeq,beq,lb,ub,@confgrad,options);function[f,g]=f
3、obj(x)%目标函数以及相应的梯度f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);%目标函数fx1=f+exp(x(1))*(8*x(1)+4*x(2));%目标函数的梯度1fx2=exp(x(1))*(4*x(1)+4*x(2)+2);%目标函数的梯度2g=[fx1;fx2];%目标函数的梯度function[c,ceq,gcon,gceq]=confgrad(x)fcon1=1.5+x(1)*x(2)-x(1)-x(2);%约束函数1gxcon1=[x(2)-1,-
4、x(2)];%约束函数1梯度fcon2=-x(1)*x(2)-10;%约束函数2gxcon2=[x(1)-1,-x(1)];%约束函数2梯度c=[fcon1;fcon2];%约束函数gcon=[gxcon1;gxcon2];%约束函数梯度ceq=[];%约束函数的等式约束gceq=[];%约束函数梯度的等式约束2
此文档下载收益归作者所有