如前述,解逆问题已转化为求一组参数使得目标函数E(k)成为极小,同时满足约束条件的优化问题。在探索过程中,可以看作从某一点k(i)出发,沿某种规则所确定的方向p i,求目标函数E(k)极小点k(i+1)的问题。形成前述探索系列k(0)、k(1)、…、k(n)的方法一般是取
其中矢量p i为探索方向,数量λi是沿探索方向的步长,k(0)为事先选定的初始点,只要规定好了p i和λi的选取方法,便可重复进行下去,直到求出达到要求的点为止。在这里一个重要的问题是在每次迭代中如何选择探索方向p i。从局部意义上说,从k(i)点出发,取目标函数E(k)的负梯度方向-∇E(k(i))作为探索方向是一个好想法,也是最合理的。因为
是函数值减小得最快的方向,显然是函数E(k)的最速下降方向。在约束条件下,以此为基础确定逐次寻找方向的方法就是最速下降法。
具体操作时,首先计算初始点k(0)处目标函数E的梯度。为此要算出
中的所有偏导数。偏导数可以采用差分如中心式差分来近似,把所有的偏导数都计算出来后,都乘以-1,就形成最速下降方向-∇E(k(i))。
接着检验根据最速下降方向形成的点k′=k(0)-∇E(k(0))是否超出约束条件。如果不超出,那么就取这个方向p 0=-∇E(k(0))作为我们的探索方向;如果已经超出了约束条件允许的范围,那就要对k′的坐标进行修正,形成新点k″。k″的坐标为
于是把探索方向取为p 0=k″-k(0)。(www.xing528.com)
然后采用前述一维探索法来确定最优步长λ0,使得
确定了λ0后,所形成的点k(1)=k(0)+λ0p 0就是对k(0)的改进点,这样保证k(1)在约束范围内。
最后,检验是否满足
满足意味着收敛,可以停机并输出k和E(k i),否则以k(1)为初始点,转到开头(第一步)重复进行。
负梯度的性质很容易使人认为最速下降方向是一种理想的寻找方向,实则不然。因为k(i)的负梯度方向-∇E(k(i))只在k(i)附近才具有这种“最速下降”的性质,而对整个极小过程来说又是另一回事了。实践证明此法收敛不快,往往很慢,而且计算偏导数的工作量大。当初始点远离极小点时,开头几步下降还是比较快的,到了接近极小点时,速度就明显地减缓了。所以只宜在前期使用。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。