地最速下降算法为:Opt_Steepest.docVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实用标准文案 精彩文档 CENTRAL SOUTH UNIVERSITY MATLAB程序设计实践 题 目 MATLAB程序设计实践 学生姓名 学 号 0103100132 指导教师 学 院 材料科学与工程学院 专 业 完成时间 2013年3月24日 第1题 算法说明: 原理 函数的负梯度表示如下: 有哪些信誉好的足球投注网站步长可调整,通常记为(第k次迭代中的步长)。该算法利用一维的线性有哪些信誉好的足球投注网站方法,如二次逼近法,沿着负梯度方向不断有哪些信誉好的足球投注网站函数的较小值,从而找出最优解。 步骤 最速下降法的基本求解流程如下。 1:迭代次数初始化为k=0,求出初始点x0的函数值f0=f(x0)。 2:迭代次数加1,即k=k+1,用一维线性有哪些信誉好的足球投注网站方法确定沿负梯度方向-gk-1的步长k-1,其中k-1=ArgMinf(xk-1-gk-1/||gk-1||)。 3:沿着负梯度的方向寻找下一个接近最小值的点,其中步长为k-1,得下一点的坐标为:xk=xk-1-k-1gk-1/||gk-1||。 4:如果xk=xk-1,且f(xk)f(xk-1),那么就认为xk为所求的最小值点,并结束循环;否则,跳到步骤2。 流程图: -g(x)=- -g(x)=-▽f(x) 给定,e k=0 开始 。 :minf() = 结束 =ArgMinaf() k=k+1 是 否 源程序代码: %在MATLAB中编程实现的最速下降算法为:Opt_Steepest。 功能:最速下降算法求无约束最优化解。 调用格式:[xo,fo]=Opt_Steepest(f,grad,x0,TolX,TolFun,dist0,MaxIter)。 其中,f为函数名; grad为梯度函数; x0为有哪些信誉好的足球投注网站初始值; TolX为最优值点间的误差阀值; TolFun为函数的误差阀值; dist0为初始步长; MaxIter为最大迭代次数; xo为最优化点值; fo为函数在点xo处的函数值。 function [xo,fo]=Opt_Steepest(f,grad,x0,TolX,TolFun,dist0,MaxIter) %最速下降法求最优化解 %f为函数名; %grad为梯度函数; %x0为有哪些信誉好的足球投注网站初始值; %TolX为最优值点间的误差阀值; %TolFun为函数的误差阀值; %dist0为初始步长; %MaxIter为最大迭代次数; %xo为最优化点值; %fo为函数在点xo处的函数值。 %%%%%%判断输入的变量数,设定一些变量为默认值 if nargin 7 MaxIter = 100; %最大迭代次数默认为100 end if nargin 6 dist0 = 10; end if nargin 5 TolFun = 1e-6; end %%%%%%第一步,求解的初始值的函数值 x = x0; fx0 = feval(f,x0); fx = fx0; dist =dist0; kmax1 = 25; %线性有哪些信誉好的足球投注网站法确定步长的最大有哪些信誉好的足球投注网站次数 warning = 0; %%%%%%迭代计算求最优解 for k=1:MaxIter g=feval(grad,x); g=g/norm(g); %求点x处的梯度方向 %%线性有哪些信誉好的足球投注网站方法确定步长 dist=dist*2; %令步长为原步长的二倍 fx1=feval(f,x-dist*2*g); for k1=1:kmax1 fx2=fx1; fx1=feval(f,x-dist*g); if fx0fx1+TolFun fx1 fx2 - TolFun %fx0fx1fx2, den=4*fx1-2*fx0-2*fx2;num=den-fx0+fx2; %二次逼近法 dist=dist*num/den; x=x-dist*g;fx=feval(f,x); %确定下一点 break; else dist=dist/2; end end if k1=kmax1 warning=warning+1; %无法确定最优步长 else

文档评论(0)

dmz158 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档