欢迎来到天天文库
浏览记录
ID:59153997
大小:11.97 KB
页数:4页
时间:2020-09-11
《梯度下降法求函数极小值.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、%%%%%%%%%%%%%%%%%梯度下降法求函数极小值%%%%%%%%%%%%%%%%%%% 函数:f(x,y)=(x-2)^2+(y-4)^2% 目的:求极小值和对应的极小值点坐标% 方法:梯度下降法% 理论:% 方向导数:偏导数反应的是函数沿坐标轴方向的变化率,但许多物理现象告诉我们,只考虑函数沿坐标轴方向的变化率是不够的,有必要研究函数沿任一指定方向的变化率。% 函数f(x,y)在点P0(x0,y0)可微分,那么函数在改点沿任一方向l的方向导数存在,其值为:f'x(x0,y0)*cos(α)+f'y(x0,y0)*cos(β)
2、,其中,cos(α),cos(β)是方向l% 的方向余弦。% 梯 度:是与方向导数有关联的另一个概念,梯度是一个向量,表示为:f'x(x0,y0)*i+f'y(x0,y0)*j。% 关 系:% f'x(x0,y0)*cos(α)+f'y(x0,y0)*cos(β)% =gradf(x0,y0)*el% =
3、gradf(x0,y0)
4、*cos(θ),其中el=(cos(α),cos(β))是与方向l同方向的单位向量。% 变化率:函数沿某个方向的变化率指的是函数值沿这个方向变化的快慢。% θ
5、=0,el与梯度同向,函数增加最快,函数在这个方向的方向导数达到最大值,这个最大值就是梯度的模;% θ=π,el与梯度反向,函数减少最快,函数在这个方向的方向导数达到最小值;% θ=π/2,el与梯度方向正交,函数变化率为零; %%clearclcsymsxybf=2*(x-2)^2+(y-4)^2;%求解函数的极小值点Grad=[diff(f,x),diff(f,y)];%求梯度eps=1e-3;v=[x,y];v0=[0,0];Grad0=subs(Grad,v,v0);%求V0的梯度值M=norm(Grad0);%梯度的模,方向导
6、数n=0;%%whilen<=100 d=-Grad0;%寻优搜索方向 fval=subs(f,v,v0);%函数值 %% %%%%%%%%%%%%%%%%%%%%%%%求出最优步长,然后确定下一刻的坐标点%%%%%%%%%%%%%%%%%%%%%%% %设步长变量为b,将v0=v0+b*d带入函数,求导,令导数等于零,解出最佳步长b1,此为一维寻优。得到下一刻坐标点v0=v0+b1*d ft=subs(f,v,v0+b*d);%将步长变量带入函数 dft=diff(ft);%求导 b1=solve(dft);%得到该方向的最优步长
7、 v0=v0+b1*d;%得到下一刻坐标点 %% Grad0=subs(Grad,v,v0);%求下一刻梯度 M=norm(Grad0);%求方向导数大小,即梯度的模 n=n+1;endv0=double(v0);fval=double(subs(f,v,v0));disp(v0)%最优解disp(fval)%f在v0处的最优值
此文档下载收益归作者所有