三、分数法(斐波那契法) 一)斐波那契数列:
如果设F(n)为该数列的第n项(n∈N+)。那么可以写成如下形式:
F(0) = 0, F(1)=F(2)=1,
F(n)=F(n-1)+F(n-2) (n≥3) 斐波那契数列:
斐波那契数法每次缩短所取的比例是变化的
算法要点: 两点比较,大作端点,小为内点。 端点的取舍与黄金分割法是相同的。 特点:
1)两点是对称的,保留的区间长度都是原来长度的Fn-1/Fn,即缩短比例是Fn-1/Fn
2)保留的内点刚好是下一轮区间的一个点,故下一轮只需添加一个新点。
其他一维搜索方法:牛顿法、二次插值法、三次插值法。
机械结构的最优化设计大都为多维问题,一维问题的情况很少。 但是一维问题的最优化方法是优化方法中最基本的方法,在数值方法迭代计算过程中,都要进行一维探索。
也可以把多维问题化为一些一维问题来处理。 作业:
第四节、梯度法(最速下降法)
一、基本思想
函数在某一点的梯度方向是函数值在此点的上升最快的方向,那么负梯度方向是函数下降最快的方向。利用函数的负梯度作为函数的搜索方向。
设函数f(X)在X(K)点的梯度为
??f(X(K))???x?1??(K)??f(X)?????f(X(K))(K)?f(X)???x2???????x1????f(X(K))???x??2??f(X(K))?x2T?f(X(K))?
??xn?则在X(K)点的搜索方向为:
S(k)?f(X(K))???f(X(K))
故迭代公式可以写为:
X(K?1)?X(K)??(K)S(K)?X(K)??(K)?f(X(K))?f(X(K))
或?X(K?1)?X(K)??(K)?f(X(K)) 因此优化问题就变成为一维搜索问题
求?k*,使得f(?(K))?f(X(K)??(K)S(K))?min 二、算法框图:
三、算例:
四、关于梯度法的几点说明
(1)梯度法理论明确,方法简单,概念清楚。每迭代一次除需进行一维搜索外,只需计算函数的一阶偏导数,计算量小,且对初始点没有严格要求;
(2)相邻两次迭代的梯度方向是互相正交的,即S(K?1)TS(K)?0。以后迭代中也总是前后两次迭代方向互为正交,因此,梯度法搜索路线呈直角锯齿形,靠近极小点时,搜索点的密度越来越大,这说明收敛速度越来越慢。
(3)迭代次数与目标函数等值线的形状有关。目标函数的等值线形成的椭圆族愈扁,迭代次数愈多,搜索难于到达最优点,如例4—2。但当等值线族为圆族时,则一次选代就能达到极小点,如例4—1,这是因为圆周上任一点的负梯度方向总是指向圆心的。
(4)按负梯度方向搜索并不等同于以最短时间到达最优点。因为“负梯度方向是函数值最速下降方向”仅是迭代点邻域内的一种局部性质,从整个迭代过程来看,并不带有最速下降的性质。
五、提高梯度法搜索速度的解决办法 1)选择好点:不容易
2)变量代换(改变函数的性态):f(X)?x12?25x22?f(X)?x2?y2 3)避免前后两次迭代方向正交:??0.9?* 或降低一维搜索时最优步长的