优化函数补充说明_第1页
优化函数补充说明_第2页
优化函数补充说明_第3页
优化函数补充说明_第4页
优化函数补充说明_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

优化函数补充说明求解函数f(x1,x2)=100(x2-x12)2+(1-x1)2的无约束最优化问题。>>formatlong>>x=fminunc('cfun',[0;0],ff)Warning:Gradientmustbeprovidedfortrust-regionmethod;usingline-searchmethodinstead.>Infminuncat241Optimizationterminated:relativeinfinity-normofgradientlessthanoptions.TolFun.x=0.999995588493430.99999116722602fval=1.947095564687865e-011求解函数f(x1,x2)=100(x2-x12)2+(1-x1)2的无约束最优化问题。求目标函数的梯度>>symsx1x2>>f=100*(x2-x1^2)^2+(1-x1)^2;>>J=jacobian(f,[x1,x2])J=[-400*(x2-x1^2)*x1-2+2*x1,200*x2-200*x1^2]function[y,Gy]=cfun(x)y=100*(x(2)-x(1)^2)^2+(1-x(1))^2;Gy=[-400*(x(2)-x(1)^2)*x(1)-2+2*x(1);200*x(2)-200*x(1)^2];%梯度x=fminunc('cfun',[0;0],ff)Optimizationterminated:RelativefunctionvaluechangingbylessthanOPTIONS.TolFun.x=0.999999885712490.99999976187545fval=2.218103884282714e-014参数传递方法全局变量法

functionexampleglobalbcb=2;c=3.5;x0=0;options=optimset(‘display’,’off’)y=fsolve(@poly,x0,options)functiony=poly(x)globalbcy=x^3+b*x+c;直接传递参数法

functionexampleb=2;c=3.5;x0=0options=optimset(‘display’,’off’)y=fsolve(@poly,x0,options,b,c)functiony=poly(x)y=x^3+b*x+c;采用evalin和assignin函数functionexampleb=2;c=3.5;x0=0;assigin(‘base’,’b’,b)assigin(‘base’,’c’,c)y=fsolve(@poly,x0)functiony=poly(x)b=evalin(‘base’,’b’,b)c=evalin(‘base’,’c’,c)y=x^3+b*x+c;匿名函数法functionexampleb=2;c=3.5;x0=0;y=fsolve(@(x)poly(x,b,c),x0)functiony=poly(x,b,c)y=x^3+b*x+c;嵌套函数法functionexampleb=2;c=3.5;x0=0;y=fsolve(@poly,x0)functiony=poly(x)y=x^3+b*x+c;endend文件传递法functionexampleb=2;c=3.5;x0=0;sava

parasbcy=fsolve(@poly,x0)functiony=poly(x)loadparas.maty=x^3+b*x+c;%STEP0初始化

>0,x0∈Rn,k=0;%step1计算f(xk),g(xk)%step2检验||g(xk)||≤eps,若成立则输出xk

,STOP.%step3:计算dk=-g(xk)%step4求步长

k%step4.1令

k0=1,j=0;%step4.2若f(xk+

kj

dk

)≤f(xk)+

kj

gkTdk

(0,0.5),则

k=

kj

,否则

kj+1=

kj

/2;j=j+1;%step5xk+1=xk+

k

dk

;k=k+1;gotostep2;最速下降算法

f代表目标函数

g代表梯度函数%STEP0初始化

eps1=10^(-8);

rho=0.3;initmax=40;x0=(1;2;3);n=length(x0);k=0;x=x0;%mainloop(step1---step5)done1=true;whiledone%step1计算f(xk),g(xk)f1=fun1(x);g1=grad1(x);%step2检验||g(xk)||≤eps,若成立则输出xk

,STOP.ifnorm(g1)<=eps

disp(‘finish,ok’);xbreakend%step3:计算dk=-g(xk)dir=-g1;%step4求步长

k%step4.1令

k0=1,j=0;alpha=1;j=0;done2=true;rho=0.3;%step4.2若f(xk+

kj

dk

)≤f(xk)+

kj

gkTdk

(0,0.5),则

k=

kj

,否则

kj+1=

kj

/2,j=j+1;

xn=x+alpha*dir;f2=fun(xn);iff2<=f1+rho*alpha*g1’*dir;breakendalpha=0.5*alpha;j=j+1;ifj>=initmaxdone=false;endend%whiledone2%step5xk+1=xk+

k

dk

;k=k+1;goto

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论