最速下降法求解线性代数方程组

最速下降法求解线性代数方程组

ID:41743329

大小:58.77 KB

页数:8页

时间:2019-08-31

最速下降法求解线性代数方程组_第1页
最速下降法求解线性代数方程组_第2页
最速下降法求解线性代数方程组_第3页
最速下降法求解线性代数方程组_第4页
最速下降法求解线性代数方程组_第5页
资源描述:

《最速下降法求解线性代数方程组》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《MATLAB语言及应用》大作业姓名:学号:学院:班级:题目编号:2013年10月13最速下降法求解线性代数方程组。最速下降法的数学理论从某个初始点X®出发,沿/(X)在点x(°)处的负梯度方向严=—巧(灯))"-卅求得/(X)的极小值点X⑴,即min/(X(0)+2r(0))2>07然后从X⑴出发,重复上而的过程得到X⑵。如此下去,得到序列{X®/(x(0))>/(x(,))>...>/(x(A))可以证明,从任一初始点X®出发,用最速下降法所得到的序列{X"')}均收敛于问题使X最小化/(X)的解,也就是方程组AX=h的解。其收敛速度取决于牛二芈,其屮人,入分别为A的最小,最大

2、特征值。最速下降法迭代格式:给定血+人初值x(0),X⑹按如下方法决定:rM=-7f(X{k))=b-AXa)最速下降法的算法和流程图X(k+i)=x"')+W)算法:⑴任取^a(0)gRah,计算rA(0)=h-ArA(O)(2)对"0,1,2,…,计算a(k)=(rA(k),rA(k))/(A*rA(k),rA(k))xA(k+1)=xA(k)+a(k)*rA(k)rA(k+1)=b-A*xA(k+l)=rA(k)-a(k)*A*rA(k)若(

3、

4、"(k+l)

5、

6、/

7、

8、"(0)

9、

10、)VE,则输出x*二於伙+1),停止计算步骤:第1步选取初始点『,给定

11、终止误差£>0,令Z::=0;第2步计算V/(/),若llV/(/)ll<6-,停止迭代•输出《?・否则进行第三步;第3步第4步进行一维搜索,求使得/(/+tkpk)=minf(xk+tpk)令xM=xk+tkpk,k:*+l,转第2步。流程图:开始三、最速下降法的Matlab实现functionx=fsxsteep(f,e,a,b)%fsxstccp函数最速卜降法%x=fsxsteep(f,e,a,b)为输入函数f为函数e为允许误差(a,b)为初始点;xl=a;x2=b;Q=fsxhesse(f,x1,x2);xO=[xlx2]';fxl=diff(f/xr);%对xl求偏导数f

12、x2=diff(f,'x2');%对x2求偏导数g=

13、fxlfx2f;%梯度gl二subs(g);%把符号变量转为数值d=-gl;while(abs(norm(g1))>=e)t=(-d)'*d/((-d)'*Q*d);t=(-d)'*d/((~d)'*Q*d);%求搜索方向xO二xO-l*gl;%搜索到的点v=xO;a=[l0]*x0;b=[0l]*xO;xl=a;x2=b;gl=subs(g);d=-gl;end;x=v;functionx=fsxhesse(f,a,b)%fsxhesse函数求函数的hesse矩阵;%本程序仅是简单的求二次函数的hesse矩阵!;%x=fsxh

14、esse(f)为输入函数f为二次函数xl,x2为自变量;xl=a;x2=b;fx二diff(f,'xl');%求f对xl偏导数fy=diff(f,'x2');%求f对x2偏导数fxx二diff(fx,'xl');%求二阶偏导数对xl再对xlfxy=diff(fx,'x2');%求二阶偏导数对xl再对x2fyx二diff(fy,'xl');%求二阶偏导数对x2再对xlfyy=diff(fy,'x2');%求二阶偏导数对x2再对x2fxx=subs(fxx);%将符号变量转化为数值fxy=subs(fxy);fyx=subs(fyx);%求hesse矩阵fyy=subs(fyy);X=

15、[fxx,fxy;fyx,fyy];四、最速下降法的算例实现例:f=(x-2)A2+(y-4)A2M文件steel.m:function[R,nl=steel(xO,yO,eps)symsx;symsy;f=(x-2)A2+(y-4)A2;v=[x,y];j=jacobian(f,v);T=[subs(j(l),x,x0),subs(j(2),y,y0)];temp=sqrt((T(l))A2+(T(2))A2);xl=xO;yl=yO;n=0;symskk;while(temp>eps)d=-T;fl二x1+kk*d(1);f2二y1+kk*d(2);fT=[subs(j(1),

16、x,f1),subs(j⑵,y,⑵];fun=sqrt((fT(1))A2+(fT(2))A2);Mini=Gold(fun,0,1,0.00001);xO=xl+Mini*d(l);y0=y1+Mini*d(2);T=[subs(j(1),x,x0),subs(j(2),y,y0)];temp=sqrt((T(1))A2+(T(2))A2);xl=x0;yl=y0;n=n+l;endR=[x0,y0]»[R,n]=steel(0,1,0.0001)R二1.99999

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

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

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