最速下降法求解这一无约束的最优化问题.docVIP

  • 27
  • 0
  • 约2.4千字
  • 约 2页
  • 2017-06-07 发布于重庆
  • 举报

最速下降法求解这一无约束的最优化问题.doc

最速下降法求解这一无约束的最优化问题

第五题: 解:选择类型为: 其中是待求参数。根据最小二乘原理,参数是下面优化问题的解。 用最速下降法求解这一无约束的最优化问题。 zuiyouhua.m function sh=zuiyouhua(x0) % x0为初始猜测值 syms x y z a al; %====================================== t=[0.2,1,2,3,5,7,11,16]; r1=[5.05,8.88,11.63,12.93,14.15,14.73,15.30,15.60]; minf=0; for i=1:8 r(i)=x*exp(y/t(i))+z-r1(i); %构造最小二乘最优化的目标函数 minf=r(i)^2+minf; end %====================================== f1=diff(minf,x); f2=diff(minf,y); f3=diff(minf,z); %求目标函数的梯度 F=[f1,f2,f3]; %====================================== Fx1= -subs(F,{x,y,z},x0); Fx=Fx1/norm(Fx1); k=0; %====================================== %最速下降法核心迭代程序 while 1 x1=x0+a*Fx; P=subs(minf,{x,y,z},x1); xx1=xianxing(P); %调用线性搜索函数 al=huangjing(P,xx1); %调用黄金分割法函数; x0=x0+al*Fx; Fx1= -subs(F,{x,y,z},x0); Fx=Fx1/norm(Fx1); if norm(Fx1)5e-4 sh=x0; return; end end %====================================== function xx=xianxing(Pa) %一维搜索法线性搜索函数 aa=findsym(Pa); a1=1; h=0.5; k=0; t1=2; while 1 a2=a1+h; Pa1=subs(Pa,aa,a1); Pa2=subs(Pa,aa,a2); if Pa2 Pa1 h=t1*h; a0=a1; a1=a2; k=k+1; if k1000 disp(迭代步数太多,可能不收敛!); end else if k==0 h=-h; a0=a2; else c1=min(a0,a2); d1=max(a0,a2); xx=[c1,d1]; return; end end end %====================================== function al1=huangjing(Pb,xx2) %黄金分割法函数 ab=findsym(Pb); c=xx2(1); d=xx2(2); lamda=0.618; eps1=1e-3; u=d-lamda*(d-c); v=c+lamda*(d-c); N=1000; pu=subs(Pb,ab,u); pv=subs(Pb,ab,v); for K=1:N if abs(v-u)eps1 g=(u+v)/2; al1=g; return; end if pu = pv c=c; d=v; v=u; pv=pu; u=d-lamda*(d-c); pu=subs(Pb,ab,u); else c=u; d=d; u=v; pu=pv; v=c+lamda*(d-c); pv=subs(Pb,ab,v); end if K==N disp(迭代次数过多,不收敛!); end end %===

文档评论(0)

1亿VIP精品文档

相关文档