梯度算法.doc

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
梯度算法

function y=fs2steep(f,e,a,b) %返回的是点坐标的2个分量 2 % fs2steep函数 最速下降法 3 % x=fs2steep(f,e,a,b)为输入函数 f为函数 e为允许误差 (a,b)为初始点; 4 % fsx TJPU 2008.6.15 5 x1=a;x2=b; 6 Q=fs2hesse(f,x1,x2); 7 x0=[x1 x2]; 8 fx1=diff(f,x1); %对x1求偏导数 9 fx2=diff(f,x2); %对x2求偏导数 10 g=[fx1 fx2]; %梯度 11 g1=subs(g); %把符号变量转为数值 12 d=-g1;%d为搜索方向 13 while (abs(norm(g1))=e) %norm(g1)为g1的2范数,即sqrt(x1^2+x2^2),因为梯度其各分量=0,所以其梯度幅值=0 14 t=(-d)*d/((-d)*Q*d);%求搜索步长,方法是? 15 x0=x0-t*g1; %搜索到的点 16 v=x0; 17 a=[1 0]*x0; 18 b=[0 1]*x0; 19 x1=a; 20 x2=b; 21 Q=fs2hesse(f,x1,x2); 22 x0=[x1 x2]; 23 fx1=diff(f,x1); %对x1求偏导数 24 fx2=diff(f,x2); %对x2求偏导数 25 g=[fx1 fx2]; %梯度 26 g1=subs(g); 27 d=-g1; 28 end; 29 y=v; 30 31 function x=fs2hesse(f,a,b) 32 % fs2hesse函数 求函数的hesse矩阵; 33 % 本程序仅是简单的求二次函数的hesse矩阵!; 34 % x=fs2hesse(f)为输入函数 f为二次函数 x1,x2为自变量; 35 % fsx TJPU 2008.6.15 36 x1=a;x2=b; 37 fx=diff(f,x1); %求f对x1偏导数 38 fy=diff(f,x2); %求f对x2偏导数 39 fxx=diff(fx,x1); %求二阶偏导数 对x1再对x1 40 fxy=diff(fx,x2); %求二阶偏导数 对x1再对x2 41 fyx=diff(fy,x1); %求二阶偏导数 对x2再对x1 42 fyy=diff(fy,x2); %求二阶偏导数 对x2再对x2 43 fxx=subs(fxx); %将符号变量转化为数值 44 fxy=subs(fxy); 45 fyx=subs(fyx); 46 fyy=subs(fyy); 47 x=[fxx,fxy;fyx,fyy]; %求hesse矩阵

您可能关注的文档

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档