MATLAB最速下降法(梯度法)程序.doc

MATLAB最速下降法(梯度法)程序.doc

ID:50812037

大小:27.50 KB

页数:2页

时间:2020-03-14

MATLAB最速下降法(梯度法)程序.doc_第1页
MATLAB最速下降法(梯度法)程序.doc_第2页
资源描述:

《MATLAB最速下降法(梯度法)程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、查看文章 matlab最速下降法2010-08-1817:13functionx=fsxsteep(f,e,a,b)%fsxsteep函数最速下降法%x=fsxsteep(f,e,a,b)为输入函数f为函数e为允许误差(a,b)为初始点;%fsxTJPU2008.6.15x1=a;x2=b;Q=fsxhesse(f,x1,x2);x0=[x1x2]';fx1=diff(f,'x1');%对x1求偏导数fx2=diff(f,'x2');%对x2求偏导数g=[fx1fx2]';%梯度g1=subs(g);%把符号变量转为数值d=-g1;wh

2、ile(abs(norm(g1))>=e)t=(-d)'*d/((-d)'*Q*d);t=(-d)'*d/((-d)'*Q*d);%求搜索方向x0=x0-t*g1;%搜索到的点v=x0;a=[10]*x0;b=[01]*x0;x1=a;x2=b;g1=subs(g);d=-g1;end;x=v;functionx=fsxhesse(f,a,b)%fsxhesse函数求函数的hesse矩阵;%本程序仅是简单的求二次函数的hesse矩阵!;%x=fsxhesse(f)为输入函数f为二次函数x1,x2为自变量;%fsxTJPU2008.6.1

3、5x1=a;x2=b;fx=diff(f,'x1');    %求f对x1偏导数fy=diff(f,'x2');    %求f对x2偏导数fxx=diff(fx,'x1');  %求二阶偏导数对x1再对x1fxy=diff(fx,'x2');  %求二阶偏导数对x1再对x2fyx=diff(fy,'x1');  %求二阶偏导数对x2再对x1fyy=diff(fy,'x2');  %求二阶偏导数对x2再对x2fxx=subs(fxx);      %将符号变量转化为数值fxy=subs(fxy);fyx=subs(fyx);fyy=sub

4、s(fyy);x=[fxx,fxy;fyx,fyy];%求hesse矩阵symsx1x2;X=[x1,x2];fx=X(1)^2+2*X(2)^2;z=fsxsteep(fx,0.001,1,1)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。