最速下降法求解线性代数方程组要求:对于给定的系数矩阵、右端项和初值,可以求解线性代数方程组一、最速下降法数学理论在基本迭代公式kkkkPtXX1中,每次迭代搜索方向kP 取为目标函数)( Xf的负梯度方向,即)(kkXfP,而每次迭代的步长kt 取为最优步长,由此确定的算法称为最速下降法
为了求解问题)(minXf,假定我们已经迭代了k 次,获得了第k 个迭代点kX
现在从kX 出发,可选择的下降方法很多,一个非常自然的想法是沿最速下降方向(即负梯度方向) 进行搜索应该是有利的,至少在kX 邻近的范围内是这样
因此,去搜索方向为)(kkXfP
为了使目标函数在搜索方向上获得最多的下降,沿kP 进行一维搜索,由此得到第1k个跌带点,即)(1kkkkXftXX,其中步长因子kt 按下式确定))((min))((kkkkkkXftXfXftXf,))(,(1kkkXfXlsX
( 1)显然,令,2,1,0k就可以得到一个点列,,,210XXX, 其中0X 是初始点,由计算者任意选定
当)(Xf满足一定的条件时,由式(1)所产生的点列}{kX必收敛于)( Xf的极小点
二、最速下降法的基本思想和迭代步骤已知目标函数)(Xf及其梯度)( Xg,终止限21,和3
(1)选定初始点0X,计算)(),(0000XggXff;置0k
(2)作直线搜索:),(1kkkgXlsX;计算)(),(1111kkkkXggXff
用终止准则检验是否满足:若满足,则打印最优解))(,(11kkXfX,结束;否则,置1kk,转( 2)(3)最速下降法算法流程图如图所示
开始选定0X)()(0000XggXff),(00gXlsX)()(00XggXff终止准则满足
ggffXX000fX ,结束三、最速下降法的matlab 实现function [x,n]=twostep(A,b,x0,ep