• 大小: 1KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-01-04
  • 语言: Matlab
  • 标签: matlab  梯度下降  

资源简介

matlab梯度下降,能运行,求函数极值,适合初学者,有详细解释

资源截图

代码片段和文件信息

function y=fs2steep(feab) %返回的是点坐标的2个分量
 % fs2steep函数 最速下降法
 % x=fs2steep(feab)为输入函数 f为函数 e为允许误差 (ab)为初始点;
 % fsx TJPU 2008.6.15
 x1=a;x2=b;
 Q=fs2hesse(fx1x2);
 x0=[x1 x2]‘;
 fx1=diff(f‘x1‘); %对x1求偏导数
 fx2=diff(f‘x2‘); %对x2求偏导数
 g=[fx1 fx2]‘; %梯度
 g1=subs(g); %把符号变量转为数值
 d=-g1;%d为搜索方向
 while (abs(norm(g1))>=e)  %norm(g1)为g1的2范数,即sqrt(x1^2+x2^2),因为梯度其各分量=0,所以其梯度幅值=0
     t=(-d)‘*d/((-d)‘*Q*d);%求搜索步长,方法是?
     x0=x0-t*g1; %搜索到的点
     v=x0;
     a=[1 0]*x0;
     b=[0 1]*x0;
     x1=a;
     x2=b;  
     Q=fs2hesse(fx1x2);
     x0=[x1 x2]‘;
     fx1=diff(f‘x1‘); %对x1求偏导数
     fx2=diff(f‘x2‘); %对x2求偏导数
     g=[fx1 fx2]‘; %梯度    
     g1=subs(g);
     d=-g1;
 end;
 y=v;
 
 function x=fs2hesse(fab)
 % fs2hesse函数 求函数的hesse矩阵;
 % 本程序仅是简单的求二次函数的hesse矩

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件          88  2012-07-10 14:17  tidutext.m
     文件        1433  2012-07-10 14:12  fs2steep.m

评论

共有 条评论