第三章 无约束最优化方法

更新时间:2024-05-03 09:04:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第三章 无约束最优化方法 本章内容及教学安排 第一节 概述

第二节 迭代终止原则

第三节 常用的一维搜索方法 第四节 梯度法 第五节 牛顿法 第六节 共轭方向法 第七节 变尺度法 第八节 坐标轮换法 第九节 鲍威尔方法

第一节 概述

优化问题可分为

无约束优化问题 有约束优化问题

无约束最优化问题求解基于古典极值理论的一种数值迭代方法,主要用来求解非线性规划问题 迭代法的基本思想:

所以迭代法要解决三个问题 1、如何选择搜索方向 2、如何确定步长

3、如何确定最优点(终止迭代) 第二节 迭代终止准则 1)XK?1?XK??

?2?XK?1?XK???(XK?1i?XKi)??i?1?f(XK?1)?fX(K?)?n1/2??

2)

f(XK?1)?fX(K) or ??f(XK)3)?f(X(K?1))??

第三节 常用的一维搜索方法

本节主要解决的是如何确定最优步长的问题。

从初始点X(0)出发,以一定的步长沿某一个方向,可以找到一个新的迭代点,其公式如下:

X(1)?X(0)??0S0X(2)?X(1)??1S1 X(K?1)?X(K)??kSk现在假设SK已经确定,需要确定的是步长?k,就把求多维目标函数的极小值这个多维算过程中,当起步点和方向问题,变成求一个变量即步长的最优值的一维问题了。即

minf(X(K?1))?minf(X(K)??kSk)?minf(?K)

由此可见,最佳步长?K*由一维搜索方法来确定 求?k*,使得f(?(K))?f(X(K)??(K)S(K))?min 一、一维搜索区间的确定

区间[a,b]应满足

f(a)?f(?*)?f(b)

a??*?b

进退法确定搜索区间 区间的特点:两边翘。 方法的思想;

1)先明确函数在某一初始点的走势,是上升还是下降,若是下降,则最小点在该点的右边,若是上升,则最小点在函数的左边。

2)根据最小点在该初始点的位置,确定搜索的方向:上升则后退,下降则前进

3)只到函数的走势出现逆转,将最小值包含在区间中。

具体算法

1)给定初始点x0和初始步长h

2)从任意点x0出发,以x1?x0,x2?x1?h计算f(x1)和f(x2)

3)比较f(x1)和f(x2),若f(x1)?f(x2)(F1>F2),函数下降,转(4)(5)做前进算法;若f(x1)?f(x2)(F1

(4)当f(x1)?f(x2)时(前进),极小点在x1点的右方,应加大步长作前进运算。取h?2h,计算x3?x2?h和f(x3)?f(x3);

(5)比较F2和F3。①当F3>F2时,则满足F1>F2<F3,即x1,x2,x3三点函数值形成“高一低一高”的情况,函数极小点必在区间[x1,x3]内。令a=x1,b=x3,初始搜索区间[a,b]确定;②当F3

(6)当f(x1)?f(x2)(后退),由图3—4(b)知极小点在F1的左方,应作后退运算。取h??h/4,作符号置换,Z=x1,x1=x2,x2=x3及W=F1、F1=F2,F1=W。取x3?x2?h;计算F3?f(x3)。

(7) 比较F2和F3。①当F3>F2时,函数极值点在区间[x3,x1]内。令a=x3,b=x1,输出初始搜索区间[a,b];②当F3

(注意:(6),(7)为(后退算法))

进退算法确定单峰区间的计算框图

进退算法确定单峰区间的计算框图如图3—5所示。

确定搜索区间的其他算法:

导数法:在极小点两侧f'(?1)?0,f'(?2)?0 二、黄金分割法(0.618法) 一)基本原理

在搜索区间[a,b]适当插入内两点x1和x2 ,x1?x2,它们把[a,b]分为三段。

计算并比较x1和x2两点的函数值f(x1)和f(x2),因为[a,b]是单峰区间,故当

f(x1)?f(x2)时,极小点必在[x1,b]中;当f(x1)?f(x2)时,极小点必在[a,x2]中,。无论发生哪一种情况,都将包含极小点的区间缩小,然后在保留下来的区间上作同样的处理,如此迭代下去,将使搜索区间逐步缩小,直到满足预先给定的精度时,即获得—维优化问题的近似最优解;

因为x1和x2仍包含在缩小的区间内,它的函数值已计算过,所以以后的每次迭代只需插入一个新点,并计算这个新点的函数值就可进行比较。

黄金比例:

要求:

xL?L?xx x5?L?12?0.618或L?xL?0.382 二)黄金分割法算法步骤与框图

算法要点: 两点比较,大作端点,小为内点。

[a,b]= [-1.111,-0.940],其长度为0.171<ε

三、分数法(斐波那契法) 一)斐波那契数列:

如果设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?* 或降低一维搜索时最优步长的

精度。

4)平行切线法

5)与其他方法联合使用。 梯度法作业:

第五节、牛顿法

一、基本思想

由于梯度法相邻两次搜索方向总是互相正交,前进路线呈锯齿形,使得其在极小点附近,收敛速度越来越慢。人们试图找到这样一种方向:它直接指向最优点,从任意选定的初始点出发,沿此方向迭代一次就达到极小点—牛顿法。

牛顿法亦称切线法,其基本思想来源于牛顿法求解方程的根。

求一个一元函数?(x)?0的根,可在函数上任取一点xk,作?(xk)切线,交x轴与xk?1,在过xk?1作?(xk?1)的切线,得到xk?2点,如此反复,最终可趋近于方程的根。其迭代公式为:

xk?1?xk??(xk) ?'(xk)求函数f(x)的极小点可视为求方程f'(x)?0的根。

设f(x)有连续的一阶和二阶导数则牛顿法求极值的迭代公式为

f'(xk)

xk?1?xk?\f(xk)

若f'(xk)??,则xk就是近似极小点

对于正定二次函数

1f(X)?XTAX?bTX?C

2其梯度为 ?f(X)?AX?b

由极值理论知?f(X)?0是极小点的必要条件,故极小点

X*??A?1b

若任取初始点X0,其梯度为 ?f(X0)?AX0?b

若取S0??A?1?f(X0)为搜索方向 则:S0??A?1?f(X0)??X0?A?1b

当步长为1时,X(1)?X(0)??S(0)?X0?X0?A?1b??A?1b 为极小点 比较阴影部分的值,对二次函数沿S0??A?1?f(X)方向搜索,取适当步长,只要一次迭代就可达到极值点。对于非二次函数,算法就没有那么简单,但由于函数在极小点附近往往具有非常强的正定二次函数性态,所以我们可以利用二次函数的这种性质,来加快搜索速度。牛顿法就是利用了这种性质。

二、原始牛顿法

对于多元函数,可以将函数在X(k)附近用泰勒公式展开

T1kkkT??????? f(X)??(X)?f(X)???f(X)??X?X???X?X?H(Xk)?X?Xk??????2kkk???H(X)X?X其梯度??(X)??f(Xk)??????

S=X*-X0 若X(k?1)为极小点,必有,

kk?1k?????(Xk?1)??f(Xk)??H(X)X?X?????0 ?1kk??Xk?1?Xk??H(X)?f(X) ???1kk?H(X)?f(X), 并且,其步长为1,这是原所以牛顿法的方向S(k)?????始牛顿法。

2例题:用原始牛顿法解f(X)?x12?25x2得最优解

三、修正的牛顿法---阻尼牛顿法 原始牛顿法的优点:收敛速度快

从原始牛顿法的推导过程可知,对任何正定二次函数,因其近似函数由?(X)kH(X)?与原目标函数f(x)完全相同,二阶偏导数矩阵???又为一常数正定方阵,因

此可以从任一初始点出发,按迭代公式迭代一次就可达到目标函数的极小点X*。对于非二次函数虽然不能一步就求出极小点,但由于在X*附近二次函数由?(X)

与原目标函数f(x)是近似的,所以牛顿方向可以作为近似方向,按公式进行迭代一般也将很快收敛于函数的最优点X*。

原始牛顿法的缺点:

1,计算较复杂。在每次迭代确定牛顿方向时,都要计算目标函数的一阶导数和二阶偏导数矩阵及其逆矩阵。这就使计算较为复杂,增加了每次迭代的计算工作量。

2,对海赛矩阵要求高。为了保证牛顿方向S(K)是目标函数的下降方向,必

?1kk?H(X)?f(X?),0须满足?f(Xk)TS(k)?0 ??f(Xk)T?要求H(X)可逆(非??奇异)、正定。

3,对于非二次函数,要求初始点的选取要靠近极值点,否则可能导致不收敛。

原始牛顿法并不是对所有函数都会很好地收敛,有时会出现函数值上升的情况,甚至会收敛到鞍点或不收敛,原因是步长为1,不经过一维搜索,方法的效果依赖于初始点的选取。

不收敛的例子:

一阶导数二阶导数:

定义域的三个区域:

由于原始牛顿法不能保证函数值稳定地下降,于是使出现了修正牛顿或称阻尼牛顿法。其修正方法是:由Xk求Xk?1时,不是直接利用原来的迭代公式计算,而是沿着Xk点处的牛顿方向进行一维搜索,将该方向上的目标函数最优点作为

Xk?1。这样就会避免收敛到鞍点或不收敛。迭代格式改为:

?1kk?Xk?1?Xk???H(X)?f(X) ??式中?为沿牛顿方向作一维搜索求得的最优步长,即:

f(X(K)??(K)S(K))?minf(X(K)??S(K))

式中S(K)是牛顿方向,这种修正牛顿法虽然汁算工作量多了一些,但在目标函数的海森矩阵处处正定的情况下,它能保证每次迭代都能使函数值有所下降,

即使初始点选得不好,用这种搜索方法也会成功。同时,它还保持了牛顿法收敛快的优点。

四、迭代步骤及计算框图

五)关于牛顿法的讨论

(1)牛顿法对正定二次函数的寻优特别有效,迭代一次即达到极小点,。对于一般目标函数,在极小点附近,它的收敛速度也是很快的,即牛顿法具有二次收敛性。

(2)牛顿法对函数的性态有较严格的要求。除了函数需具有一、二阶偏导数外,为了保证函数的稳定下降,海森矩阵必须处处正定,否则牛顿法将失败。为了能使迭代计算顺利进行,海森矩阵必须为非奇异,否则无法求其逆短阵,不能构成牛顿方向。

(3)计算复杂。因为除了求梯度外还需计算海森矩阵及其逆矩阵,所以计算困难且占用较大的计算机贮存量。

牛顿法作业:

第六节 共轭方向法

一、共扼方向的基本概念 (一)共轭方向与正交方向

设A为n阶实对称正定矩阵,若有两个n维向量S1和S2:能满足 S1TAS2?0

则称向量S1和S2对矩阵A共扼,共扼向量的方向称为共轭方向。 如果非零向量组S1、S2、共轭,即满足

T?i ? j?SiASj?0 i j ?, ?TSAS?0 i ? j?j?i、Sk中任意两个向量关于n阶对称正定矩阵A

1,2k,3A,正定 则称向量组S1、S2、、Sk,关于矩阵A共轭,即对于同一实对称矩阵A

可根据需要取不同的对A共扼的方向组。

若有两个向量S1和S2关于单位矩阵I共轭,则由共轭定义知

S1TIS2?0即 S1TS2?0

S1和S2正交。正交是共轭方向的特例。

共轭方向的理解:两个不相关的向量经过A变换后变成互相正交的向量。 矩阵的作用变换向量的方向。高等数学中的坐标变换

(二) 共扼方向的几何意义 设有二元二次正定函数

1f(X)?XTAX?BTX?C

2

它在坐标平面上的等值线是一族同心的椭圆,如图。

在图上两点沿S1方向作根两平行线,它与等值线的切点(即该方向上f(X)的极小点)为X1和X2,那么连接这两点的方向为

S2?X2?X1,它与S1是共轭的。 证明如下:

因为函数f(X)在X1和X2处的梯度分别为

?f(X(1))?AX(1)?B ?f(X(2))?AX(2)?B

将上述两式相减

?f(X(2))??f(X(1))?AX(2)?B?AX(1)?B?A(X(2)?X(1))?AS2

又由梯度的性质可知,?f(X(1))和?f(X(2))是函数等值线在X1和X2处的法向量,故

S1T?f(X(1))?0

S1T?f(X(2))?0

TS1(?f(X(2))??f(X(1)))?0 ?S1T(?f(X(2))??fX((1)?))ST? 01AS2所以S1和S2对矩阵A共扼。 二、共扼向量的重要性质

(1)设A为n×n阶实对称正定矩阵,S1、S2、非零向量,则可证明这一组向量线性无关。 线性无关的定义

对向量组

,如果存在一组不全为零的数 那么, 称向量组

个数不存在, 即上述向量等式仅当

线性无关。

用通俗的话说就是:线性相关,就是在一组数据中有一个或者多个向量可以被

其余向量表示。线性无关,就是在一组数据中没有一个向量可以被其余向量表示。

、Sn。为对A共轭的n个

, 使得

线性相关. 如果这样的时才能成立, 就称向量组

向量线性无关的证明 用反证法:

设存在一组数不全为零的数,?1、?2、

、?k,使得??iSi?0

i?1k在上式分别左乘SjTA,当i?j时的项为零,故得到?iSiASi?0,

??i?0,由于i为任选,故?1、?2、(2) 设一组向量S1(1)、S2(1)、个向量S1(2)、S2(2)、

、?k=0得证。

、Sn(1)是线性无关的向量组,则可以构造出n

、Sn(2),使其满足

Si(2)TASj(2)?0 i?j

对于n维优化问题而言,线性无关向量系中向量的个数不可能超过问题的维数,因此共扼向量的个数最多等于n。

单位坐标向量系是一组线性元关的共扼向量的最简单的例子,且它们也是正

交向量系。

(3)设A为n×n阶实对称正定矩阵,S1、S2、

、Sn。为对A共轭的n个

非零向量,对于正定二次函数f(X)的极小化寻优问题,从任何初始点X0出发,依次沿Si方向经n次一维搜索即可收敛到极小点X*=Xn。

这与同心椭圆簇的几何性质有关:两条平行的任意方向的切线,其切点的连线必通过椭圆簇的共同中心。(证明略—说明:教材中的只是一个说明性的结论)

三、以n个单位向量构造共轭方向共轭方向的构造方法 以n维空间的n个单位向量构造共轭方向。

单位向量ei?(00(1)S1?e1?(1,0,(2)S2?e2??1S1

10i0)

,0)

S1和S2对矩阵A共扼,即

S2TAS1?0

(e2??1S1)TAS1?(e2T??1S1T)AS1?0

e2TAS1??1S1TAS1?0 ?e2TAS1 ??TS1AS111(3)S3?e3??1S1??2S2 令S3TAS2?0

(e3??1S1??2S2)TAS2?0 e3TAS2??1S1TAS2??2S2TAS2?0 ?e3TAS2其中S2AS1?0 ??2?T

S2AS22令S3AS1?0

(e3??1S1??2S2)TAS1?0 e3TAS1??1S1TAS1??2S2TAS1?0

?e3TAS1其中S2AS1?0 ???T S1AS121注意:每一步中的?1是不同的。 (4)通式:

SK?eK??1S1??2S2?K?1i?1??K?1SK?1,n)

?eK???iSi (K?2,3,?eKTASi ??i?TSiASi这样共构造了n个共轭向量。

四、以函数梯度信息的构造共轭方向-共轭梯度法 一)共轭梯度法的基本原理

利用极小点的负梯度方向来构成共轭方向,使它形成具有二次收敛的共轭梯度法。

设有二次函数:

1f(X)?XTAX?bTX?C

2二)共轭梯度法共轭向量的构造方法:

给定X0,令g0??f(X0)

取S0??g0

沿S0一维搜索(注意!!)得到X1,令g1??f(X1)

令S1??g1??01S0 并使S(1)、S(0)共轭,(注意:g0和g1是正交的) 即S1TAS0?(?g1??01S0)TAS0?0,则有

g1TAS0 ??TS0AS010沿S1一维搜索得到X2,令g2??f(X2)

令S2??g2??02S0??12S1,并使S2与S(1)、S(0)共轭

T22T??S2AS0?(?g2??0S0??1S1)AS0?0即?T,则有 22T??S2AS1?(?g2??0S0??1S1)AS1?0

?2g2TAS0??0?TS0AS0?(1)(0)TSS (注意:、共轭,故S?1AS0?0) T??2?g2AS11?S1TAS1? 通式

Sk??gk???iSi

i?0k?1?iKgKTASi 其中k?1,2,?TSiASin?1

注意:K表示第K步,每一步迭代均有K个?i值,不同的迭代轮次中, ?i的

值是不同的,都要重新计算。

这样可以构造一组共轭向量。

说明:每个梯度是通过迭代一步一步获得的,同样,每获得一个梯度,旋即通过梯度和前面的方向向量构造一个新的与前面得到的方向向量共轭的向量,这样迭代n次即可获得n个互相共轭的向量。

三)公式的简化

采用这种方法构造共轭方向,要用到海赛矩阵A,对A的要求比较高,对上述方法作改进和简化。

首先,了解根据以上方法构造的共轭方向以及各迭代点梯度的关系和特点,主要有三个特点:

特点一: 前后两次迭代点的梯度之差与其他任一共轭方向是正交的

特点二:某迭代点的梯度与此前各点的搜索方向是正交的。

特点三:迭代点处的梯度与前面各点处的梯度正交,亦即通过此方式得到各点的梯度

是一个正交系。

1、 前后两次迭代点的梯度之差与其他任一共轭方向是正交的

f(X)?1TXAX?bTX?C在第K次迭代中 2X(K?1)?X(K)??(K)S(K)

因 若令

?f(X)?AX?b

g(k)??f(X(k))?AX(k)?b

g(k?1)??f(Xk?())1?AXk?(1)?b

二式相减得

式中?)g(k?1?gk(?)A(X(k)k?()k?1X)k)?(A?Sk

(—第K次迭代的最优步长因子

g(k?1)?g(k)为前后两个点的梯度方向的差

如果S(1)、S(2)、、S(n)是按照共轭梯度法构造的关于A的n个共轭向量

则[S(j)]TAS(k)?0 (j?k j,k=1,2,?,n) 即[S(j)]T(g(k?1)?g(k))?0

结论一: (g(k?1)?g(k)为前后两个点的梯度方向的差,上式说明前后两次迭代点的梯度之差与其他任一共轭方向是正交的)

2、某迭代点的梯度与此前各点的搜索方向是正交的。 设k>j,则:

[g(k)]TSj?[g(k)]TSj?[g(k?1)]TSj?[g(k?1)]TSj?[g(k?2)]TSj?[g(k?2)]TSj ? =[g(k)?[g(j?1)]TSj?[g(j?1)]TSj?g(k?1)T]S?[gj(k?1)?g(k?2)T]S?j?[g(j?2)?g(j?1)T]S?[gj(j?1)T]Sj

?[g(j?1)]TSj由于g(j?1)是迭代点Xj?1处的梯度,而Xj?1是沿S方向搜索得到的最优点,故gj(j?1)与

Sj正交,所以有

[g(j?1)]TSj?0

因此:[g]S?0, j=1,2,?,k-1

结论二:某迭代点的梯度与此前各点的搜索方向是正交的。

当K=n时,即有(n是函数的维数)

kTjg(n?1)?g(n)?A?(n)S(n) ?g(n?1)?A?(n?1)S(n?1)?A?(n)S(n) ? ?g(k?1)?A?(k?1)S(k?1)??A?(n)S(n) (k?0,1,2,,n?1)

g(n?1)?gk?(?1)i?k?1?nA?iS(i) ( (0?j?n )上式等式两边左乘以[S(k)]T,得

[S(k)]Tg(n?1)?[S(k)]Tg(k?1)??(k?1)[S(k)]TAS(k?1)???(n)[S(k)]TAS(n) *

由于沿S(k)方向求极小点X(K?1),即?f(X(k?1))与S(k)正交

于是有:[S(k)]Tg(k?1)?0 (k?0,1,2,,n?1)

如果S(1)、S(2)、、、S(n)是关于A的n个共轭向量,式(*)为

k?0,1,2,n?, [S(k)]Tg(n?1)?0 (因而,必有g(n?1)?0 或

?f(X(n?1))?0 (因为K的取值范围)

所以X(n?1)为函数f(X)的极小点。(间接证明了共轭梯度法的二次收敛性)

这说明,若能在迭代过程中,能利用梯度信息,来构造一个S(1)、S(2)、、、S(n)的共轭方向序列,对于一个n维函数,在第n次迭代中,即可取得最优点。

3、迭代点处的梯度与前面各点处的梯度正交,即通过此方式得到各点的梯度是一个正

交系。

在第r次迭代中(r

r?1Sr??gr???irSi

i?0gr??Sr???irSi

i?0r?1统一写成

gr???irSi (此处?r??1)

i?0r上式两边同时左乘gkT (注意:r

gkgr??gkT?irSi

Ti?0r由结论二(某迭代点的梯度与此前各点的搜索方向是正交的)可知

(r

结论三:迭代点处的梯度与前面各点处的梯度正交,并可得到结论:通过此方式得到各点的梯度是一个正交系。

4、通过以上特点,可以对共轭梯度法的构造公式进行简化

由g(i?1)?g(i)?A(X(i?1)?X(i))?A?(i)S(i) ?1?AS(i)?(i?1)(i)(g?g) (i)两边左乘gkT,得:

gkTAS(i)?1?T(i?1)T(i)(gg?gg) kk(i)当i=1,2,?,k-2时,由结论三(迭代点处的梯度与前面各点处的梯度正交)可得

gkTAS(i)?0

共轭方向的构造公式中

k?1??Sk??gk???iSii?0? ?T??K?gKASi k?1,2,n?1iT?SiASi?当i?k?1时(注意i=1,2,?,k-2,k-1)

?iKgKTASi?T?0 i?1,2,?,k?2 SiASi当i?k?1时,?iK?0 i?k?1 (注意?iK的上标的含义,表示第K步) 所以,Sk??gk?所有公式:

??i?0k?1KiSi??gk??k?1KSk?1

?Sk??gk??k?1KSk?1?K?1?Sk?1??gk?1??k?2Sk?2?S??g??K?2S?k?2k?2k?3k?3 ???S??g??1S100?1??S0??g0将它们代入Sk??gk??k?1Sk?1中

K

Sk??gk??k?1Kgk?1??k?1K?k?2K?1gk?2??k?1K?k?2K?1?k?3K?2gk?3 ???k?1?k?2KK?1?k?3K?2??g21100

将等式两边分别左乘(?k?1ASk?1)T?(gk?gk?1)T

等式左边(?k?1ASk?1)TSk??k?1Sk?1TASk?0 等式右边展开:

(gk?gk?1)T(?gk??k?1Kgk?1??k?1K?k?2K?1gk?2??k?1K?k?2K?1?k?3K?2gk?3 ?T??k?1K?k?2K?1?k?3K?2Tk?1KT?12?01g0)KTk?1??gkgk?ggk??k?1gkgk?1??k?1ggk?1

???k?1K?k?2K?1?k?3K?2?12?01gkTg0??k?1K?k?2K?1?k?3K?2由结论三(迭代点处的梯度与前面各点处的梯度正交)

?12?01gk?1Tg0)只有两项不为0,?gkTgk,?k?1Kgk?1Tgk?1,其余皆为零

所以左右两边相结合

?gkTgk??k?1Kgk?1Tgk?1?0

可以得到?k?1K的公式:

?k?1KgkTgk ?Tgk?1gk?1K或 ?k?1?

gkgk?122 四)共轭梯度法的算法及特点

简化后公式的优点:

(1)不含海赛矩阵,而且不用担心海赛矩阵的正定与非奇异问题(n 阶方阵 A 是非奇异方阵的充要条件是 A 为可逆矩阵也即行列式A的值不为零)。

(2)每一步只用计算一个?k?1K值

(3)共轭梯度法是使用一阶导数的算法,所用公式结构简单,并且所需的存储量少、它的收敛速度较梯度法快,具有超线性收敛速度。

(4)共轭梯度法利用梯度信息,一个共轭方向序列,对于一个n维二次正定函数,在第n次迭代中,即可取得最优点。

(5)共轭梯度法是以正定二次函数的共扼方向理论为基础的,因此,在理论上对于二次型函数而言,最多经过n步迭代必能达到极小点,但在实际计算时,由于舍入误差的影响,以及函数的非二次型,也不一定n次迭代就能达到极值点。因此,在n次迭代后如未达到收敛精度,则通常以重置负梯度方向开始,直到满足精度为止。对于n维非二次函数,需要进行多轮迭代(每轮迭代次数为n)

五)算例

六)本节重点:

共轭方向的定义、性质及构造

作业:

?21??1??1?1、若A???,判断S1??1?,S2???1?是否共轭;

12??????2、若A??共轭

?62??3??2??0???6?,判断,是否共轭;,是否S?S?S?S?1234??????????23??0???6??3??4??21??1??1?3、若A???, S1??1?, Y??0?,构造S2?Y??1S1,使得S1,S2关于A共

12??????轭。

本文来源:https://www.bwwdw.com/article/w9jg.html

Top