共轭梯度计算函数法

合集下载

共轭梯度法公式

共轭梯度法公式

共轭梯度法公式
共轭梯度法是一种用于求解线性方程组的迭代算法。

其主要思想是通过利用前一次迭代的信息来加速当前迭代的速度,从而减少迭代次数和计算量。

共轭梯度法公式包括以下几个步骤:
1. 初始化:设初始解为x0,残量b0为Ax0-b,共轭方向d0=b0。

2. 迭代求解:对于第k次迭代,计算步长αk,使得xk+1=xk+αkd,其中d是共轭方向,满足dTkAd=0,即d是A的共轭向量。

3. 更新残量:计算新的残量bk+1=Axk+1-b,如果bk+1小于预设精度,则停止迭代。

4. 更新共轭方向:计算新的共轭方向dk+1=bk+1+βkdk,其中βk=(bk+1)Tbk+1/(bk)Tbk,保证dk+1与之前的共轭方向都是A的共轭向量。

5. 重复迭代,直到满足收敛条件,返回最终解xk+1。

共轭梯度法是一种高效的求解大型线性方程组的方法,尤其适用于稀疏矩阵和对称正定矩阵。

公式简单易懂,容易实现,且具有较快的收敛速度。

- 1 -。

共轭梯度函数

共轭梯度函数

共轭梯度法是一种用于求解无约束优化问题的迭代算法。

给定一个初始点x0,该方法通过迭代来寻找最优解。

在每一次迭代中,算法首先计算当前点的负梯度方向,然后沿着这个方向进行线搜索以确定步长。

接着,算法更新当前点并重复这个过程,直到达到某个终止条件。

共轭梯度法的关键在于如何确定搜索方向。

在共轭梯度法中,搜索方向不是简单地取负梯度方向,而是取当前点的负梯度方向和前一次迭代的搜索方向的线性组合。

具体来说,第k+1次的搜索方向pk+1可以表示为:
pk+1=−gk+βkpk
其中,gk是第k次迭代的梯度,pk是第k次迭代的搜索方向,βk是一个标量,称为共轭参数或共轭方向参数。

为了使搜索方向成为共轭的,需要满足βk=gk−1Tpk−1gkTpk。

这样,搜索方向pk+1和pk
是共轭的,即gkTpk+1=0。

通过这种方式,共轭梯度法可以在每一步沿着搜索方向进行线搜索,以确定下一个点。

由于搜索方向是共轭的,算法可以在有限步内收敛到最优解。

共轭梯度法

共轭梯度法
Hesteness和Stiefel于1952年为解线性方程组而提出
•基本思想:把共轭性与最速下降法相结合,利用已 知点处的梯度构造一组共轭方向,并沿着这组方 向进行搜索,求出目标函数的极小点
4.4共轭梯度法
先讨论对于二次凸函数的共轭梯度法,考虑问题
min f (x) 1 xT Ax bT x c
3, giT d (i) giT gi (蕴涵d (i) 0)
证明: 显然m1,下用归纳法(对i)证之.
当i 1时,由于d (1) g1,从而3)成立,对i 2时, 关系1)和2)成立,从而3)也成立.
4.4共轭梯度法
设对某个i<m,这些关系均成立,我们证明对于i+1
也成立.先证2),
因此
2 / 3 1 5/ 9
d (2)



1/ 1
3

1 9

2 0



5/9 1

从x(2)出发,沿方向d (2)进行搜索,求步长2,使满足 :
f
( x (1)

2d (1) )

min
0
f
(x(2)

d (2))


2 0

4.4共轭梯度法
显然, d (1)不是目标函数在x(1)处的最速下降方向.
下面,我们用FR法构造两个搜索方向.
从x(1)出发,沿方向d (1)进行搜索,求步长1,使满足 :
f
( x (1)
1d (1) )

min
0
f
( x (1)

d (1) )
得1 2 3
A正定,故x是f(x)的极小值点.

共轭梯度法(精品文档)

共轭梯度法(精品文档)

1

g2T (g2 d1T (g2
g1) g1)

g2T g2 g1T g1
4) 一般地,在第 k 次迭代中,令
k 1
dk gk idi i0
适当选取 i ,使 dkTGdi 0 ( i 0,
, k 1),可得到
i

gkT Gdi diT Gdi

gkT (gi1 gi ) diT (gi1 gi )
§4.2 共轭梯度法
提纲
1、共轭梯度法---F-R共轭梯度法 2、共轭梯度法性质定理及例题 3、再开始FR共轭梯度法 4、Beale三项共轭梯度法 5、预条件共轭梯度法(了解)
共轭梯度法
在上一节中讨论了共轭方向法,其中n个共轭方向是预先设定好的。但是如何 让获取这些共轭方向并为提及。本节讨论一种重要的共轭方向法——共轭梯 度法。这种方法是将共轭性和最速下降方向相结合,利用已知迭代点处的梯 度方向构造一组共轭方向,并沿此方向进行搜索,求出函数的极小点。因在 迭代过程中通过对负梯度方向进行适当校正获得共轭方向,故而称之为共轭 梯度法。
算法步骤—FR共轭梯度法
1、选取初始数据,选取初始点 x0 ,给定允许误差 0 ;
2、检查是否满足终止准则,计算 f (x0 ) ,若 || f (x0 ) || ,迭代终
止,x0为近似最优解,否则转向3;
3、 构造初始搜索方向,计算 d0 f (x0 ), k 0;

k 1

gkT (gk gk1)
dT k 1
(
gk

gk 1 )

gkT gk gkT1 gk 1
共轭梯度法的迭代公式为:

共轭梯度法

共轭梯度法

最速下降法1.最速下降方向函数f(x)在点x处沿方向d的变化率可用方向导数来表示。

对于可微函数,方向导数等于梯度与方向的内积,即:Df(x;d) = ▽f(x)T d,因此,求函数f(x)在点x处的下降最快的方向,可归结为求解下列非线性规划:min ▽f(x)T ds.t. ||d|| ≤ 1当 d = -▽f(x) / ||▽f(x)||时等号成立。

因此,在点x处沿上式所定义的方向变化率最小,即负梯度方向为最速下降方向。

2.最速下降算法最速下降法的迭代公式是x(k+1) = x(k) + λk d(k) ,其中d(k)是从x(k)出发的搜索方向,这里取在x(k)处的最速下降方向,即d = -▽f(x(k)).λk是从x(k)出发沿方向d(k)进行一维搜索的步长,即λk满足f(x(k) + λk d(k)) = min f(x(k)+λd(k)) (λ≥0).计算步骤如下:(1)给定初点x(1) ∈ R n,允许误差ε> 0,置k = 1。

(2)计算搜索方向d = -▽f(x(k))。

(3)若||d(k)|| ≤ε,则停止计算;否则,从x(k)出发,沿d(k)进行一维搜索,求λk,使f(x(k) + λk d(k)) = min f(x(k)+λd(k)) (λ≥0).(4)令x(k+1) = x(k) + λk d(k),置k = k + 1,转步骤(2)。

共轭梯度法1.共轭方向无约束问题最优化方法的核心问题是选择搜索方向。

以正定二次函数为例,来观察两个方向关于矩阵A共轭的几何意义。

设有二次函数:f(x) = 1/2 (x - x*)T A(x - x*) ,其中A是n×n对称正定矩阵,x*是一个定点,函数f(x)的等值面1/2 (x - x*)T A(x - x*) = c是以x*为中心的椭球面,由于▽f(x*) = A(x - x*) = 0,A正定,因此x*是f(x)的极小点。

共轭梯度法

共轭梯度法
例 3.1 用共轭梯度法求解无约束非线性规划问题
2 2 min f ( x ) = x1 + 2x2 x
⎛1⎞ 给定初始点 x (0) = ⎜ ⎜1⎟ ⎟。 ⎝ ⎠
13
⎛ 2 x1 ⎞ ⎛ 2 0⎞ 2 首先, ∇f ( x ) = ⎜ ⎜ 0 4⎟ ⎟ ,以下利用(4.14)确定 β k 。 ⎜ 4x ⎟ ⎟ ,H= ∇ f ( x ) = ⎜ ⎝ ⎠ ⎝ 2⎠ k=0:
0
k +1
) 与搜索方向 s 0 ," , s k 均正交。同时,利用引理 4.1 马上
设 H ∈ R n×n 是对称正定阵,s ," , s
0
n −1
0
n −1
是非零 G—共轭方向组,x ∈ R 。 若对问题(UQP),
0
n
从 x 出发,依次沿 s ," , s
0
进行最优一维搜索,最终得到 x ,则 x 是(UQP)的最优解。
为保证 H-共轭性,在 x 处必须取 s 为搜索方向,而不能取 α s (α > 0) 为搜索方向。
k k
k
利用定理 4.3,马上得到上述算法的有限终止性。 定理 4.4 设 H ∈ R n×n 是对称正定阵。若用凸二次规划的共轭梯度法求解 (UQP) 时产生迭代点
x1 ," , x K ,则 x K 是(UQP)的最优解,并且 K ≤ n 。
首先由(4.7)知, g = ∇f ( x ) ( j = 0, " , k -1)是 s ," , s 的线性组合,因此根据定理 4.2,
j j 0 j
( g k )T g j =0, j = 0, " , k -1
由于

——共轭梯度法ppt课件

——共轭梯度法ppt课件

r ( k 1 ) , r ( k 1 ) r ( k ) kr ( k ) k 1 p ( k 1 ) , A p ( k )
1 r(k1),r(k1)
k
r(k),Ap(k)
r(k1), r(k1)
r(k), r(k)
共轭梯度法
算法 :(共轭梯度法 )
(1) (x) 的梯度为:
(x) x 1, Rn 和 R,有
(x y ) 1 A (x y ),x y b ,x y 2 2A y,y(A xb,y)(x) 2
(3) 令 x*=A-1b,那么有
( x ) 1 b T A 1 b b T A 1 b 1 b T A 1 b 1 A x ,x
计算方法
第六章 线性方程组的迭代解法
—— 共轭梯度法
本讲内容
共轭梯度法
最速下降法 共轭梯度法 共轭梯度法的收敛性分析
等价问题
思索线性方程组:Ax = b ,其中 A 对称正定 作二次泛函 (x): Rn R
(x )1(A x ,x ) (b ,x )1x T A xx T b
2
2
(x) 具有以下性质:
证明:板书
共轭梯度法
k 与 k 的计算
k r ( k ) , p ( k ) p ( k ) , A p ( k ) r ( k ) , r ( k ) p ( k ) , A p ( k )
k r ( k 1 ) ,A p ( k ) p ( k ) ,A p ( k )
共轭梯度法
详细作法:令 p(0) = r(0) ,设 x(k) 曾经求得,那 么 x(k+1) 由下面的公式确定:
x(k1)x(k)kp(k)
其中
p(k)r(k)k1p(k1)

共轭梯度法

共轭梯度法

证明:采用数学归纳法, 不过, 还是省略它
(5.8)意味着 d iT Qd j 0, j i, i 1, 2, , n - 1 即Broyden 族在用精确搜索求解凸二次函数极小化问题 时, 所产生的方向关于矩阵Q相互共轭.属于共轭方向法.
前面讨论的共轭方向法 需要在算法之初 产生 n个共轭方向,因而需要很大的存贮量,而且 不能用来求解非二次问题.
j 0 k
dT j Qp k 1 d Qp j
T j
d j,
(5.5)
步2 若k n - 2, 则停止, 否则, 令k : k 1, 转步1.
容易验证, 由算法5.1产生的向量组 d 0 , d1 , , d n-1 R n 关于矩阵Q相互共轭
下面的定理解释了第四章介绍的Broyden 族具有二次终 止性的根本原因 :
其中 k 是待定参数, 适当选取 k , 使得 d kT Qd k -1 0.
一般地, 搜搜方向的计算公式为: - f ( x0 ), dk - f ( xk ) k d k -1 , k 0 k 1 (5.10)
在下面我们来推导 (5.10) 参数 k 的计算公式 :
d k -f ( xk ) k d k -1
其中 k 是由精确搜索得到的步长. 即满足
于是求得
d kT-1Qf ( xk ) k T dk -1Qd k -1
在该计算式中含矩阵Q, 为减少计算量及使共轭梯度能 用于求解非二次函数的优化问题, 在计算式中消除 Q.
由上面的条件得到
T T T p0 Qp1 - p0 Qf ( x1 ) p0 Qp 0 0
等值线
f ( x1 )
由此解得 所以 p Qf ( x1 ) T p0 Qp 0

共轭梯度法课件

共轭梯度法课件

4.3共轭梯度法4.3.1共轭方向法定义4.3.1设A 是n ×n 对称正定矩阵,d 1,d 2,是n 维非零矢量,如果d 1T Ad 2=0则称d 1和d 2是A-共轭的,简称共轭的设d 1,d 2,...,d m 是R n 中一组非零向量,如果d i T Ad j =0,i ≠j ,j,i=1,2,...,k则d 1,d 2,...,d m 是A-共轭的,简称共轭的,也称它们是一组A 共个方向定理4.3.3设x 0∈Rn 是任意初始点,对于极小化二次函数min f(x)=1/2 x T Ax-b T x 共轭方向法至多经n 步精确线性搜索终止;且每一x i+1都是f(x)在x 0和方向d 1,d 2,....,di, 所张成的线性流形{|x x=x 0+,0j i j j da ∑=j a ∀}中的极小点。

4.3.4共轭梯度法共轭梯度法是一个典型的共轭方向法,他的每一个搜索方向是相互共轭的,而这些搜索方向d k 仅仅是负梯度方向-g k 与上一次迭代的搜索方向d k-1组合。

因此,存储量小,计算方便。

定理4.3.6对于正定二次函数,采用精确线性搜索的共轭梯度法在m ≦n 步后终止,且对1≦i≦n成立下列关系式:d i T Ad j=0,j=0,1,...,i-1,g i T Ag j=0,j=0,1-1,d i T Ag i= - g i T g I[g0,g1,...,g i]=[g0,Ag0,,...,A i g0][d0,d1,...,d i]=[g0,Ag0,,...,A i g0]其中[g0,g1,...,g i]和[d0,d1,...,d i]分别表示g0,g1,...,g i及d0,d1,...,d i张成的子空间,[g0,Ag0,,...,A i g0]表示g0的i阶Krylov子空间。

定理4.3.9(FR共轭梯度法的总体收敛性定理)假定f R n R在有界水平集L={x R n|f(x)≦f(x0)}上连续可微,且有下界,那么采用精确线性搜索的F-R共轭梯度法产生的序列{x k}至少有一个聚点是驻点,即1当{x k}是有穷数列时,其最后一个点是f(x)的驻点;2当{x k}是无穷数列时,它必有聚点,且任一聚点都是f(x)的驻点。

共轭梯度法

共轭梯度法

3. 算法的 MATLAB 实现
在 MATLAB 中编程实现的共轭梯度法函数为: min GETD 功能:用共轭梯度法求解多维函数的极值。
调用格式: [ x, min f ] min GETD( f , x0, var, eps) 其中, f :目标函数;
x0 :初始点; :自变量向量; var x :目标函数取最小值时的自变量值;
(6) 若 k 1 n ,令 x(0) x( n ) ,转步骤(3) ,否则转步骤(7) ;
(7) 令 p
( k 1)
f ( x
( k 1)
) k p
(k )
, k
f ( x ( k 1) ) f ( x )
(k )
2 2
, 置 k k 1, 转步骤 (4) 。
t 0
(k ) ( k ) (4) 用 一 维 搜 索 法 求 t k , 使 得 f ( x kt p ) m i n f
( ) 5; x( k 1 ) x k( ) kt p k,转步骤

k( ) x
) 令, tk p( ,
(5) 若 f ( x
( k 1)
) ,停止,极小值点为 x ( k 1) ,否则转步骤(6) ;
1 f ( X ) d1 + x1 -x1* 2 1 =d1 + x1 -x1* 2


2





*
2
1 d1 a x1 -x1* 2

2b x1 -x1*

x -x c x -x


2
2b x1 -x1*

数值分析6.4共轭梯度法

数值分析6.4共轭梯度法

.
(4.13)
的选择,可令
1 k 1
p
0
r , p 选为 p , p , , p
k 0

A-共轭,它并不唯一,可选为 r 与 p
k
k 1
的线
性组合.不妨设
p r p , 利用 p , p 0,可定出 r , Ap , p , A p
1
k 1

的 y x k .
r
第 二 个 极 小 就 是 (4.6) 式 的 极 小 , 由
k
b Ax 及(4.7)是式得
k
k
Ap
0
r , p
k k k
,p
k
CG 法 中 向 量 组
p , p ,
0 1

k
k
k
k 1
k 1
(4.14)
k 1
k
k 1
k 1
k 1
k 1
(4.15)
这样由 (4.14) 式和 (4.15) 式得到的 是 A-共轭的.
p
k

p
k 1
根据以上分析,取
x
0

n
,
r
0
b Ax
0
p
0
r 可按(4.13)式和(4.6)式求得 0 , x ,再
k 1
x min x p , 还希望 p 的选择使 x min x , p
a k
k 1 xspan
0
p
r
, 当 k 1 时确定

5-4应用与一般函数的共轭梯度法5-4

5-4应用与一般函数的共轭梯度法5-4
T gk
gk
公式
k
T g k 1 g k 1 g k T d k g k 1 g k T g k 1 g k 1 T d k gk

Crowder-Wolfe公式
Dixon公式
k
因此,用于正定二次函数的共轭梯度法,必 须选用精确线搜索。虽然选用不同的搜索方向系 数的计算公式,得到的搜索方向都相同,步长也 相同。
T gk d k
T T
T
T
f ( x k ) d k
T
f ( x d
k k

T f ( ) ) d x 1 k k f ( x k ) d k k
T

(1)
f ( x d
k k

T f ( ) ) xk d k f ( xk kd k ) f ( xk ) d k k
用于一般函数的共轭梯度法: ★ 可以用精确线搜索,也可以用非精确线 搜索。 ★ 对于一般函数,用精确线搜索,或非精 确线搜索,列计算搜索方向系数的公式。 不再相等。
k k
T g k 1 g k 1 T gk gk T g k 1
Fletch-Reeves公式
gk 1 gk Polok-Ribiere-Polyak
令 ( ) 0 ,可求得
5 1 18
x
2
x
1
1 d
1
5 5 10 5 18 20
20 9 5 9
第2次迭代: 在点 x
2
处,目标函数的梯度
40 9 g2 20 - 9
k

共轭梯度法

共轭梯度法

共轭梯度法1. 算法原理求解一个系数矩阵为正定矩阵的线性方程组可通过求泛函)(x f 的极小值点来获得,进而可以利用共轭梯度法来求解。

共轭梯度法中关键的两点是,确定迭代格式)()()1(k k k k d x x α+=+中的搜索方向)(k d 和最佳步长k α。

实际上搜索方向)(k d是关于矩阵A 的共轭向量,在迭代中逐步构造之;步长k α的确定原则是给定迭代点)(k x 和搜索方向)(k d 后,要求选取非负数k α,使得)()()(k k k d x f α+达到最小,即选择0≥k α,满足)(min )()()(0)()(k k k k k d x f d x f kααα+=+≤。

设迭代点)(k x和搜索方向)(k d已经给定,k α可以通过一元函数)()()()(k k d xf g αα+=的极小化)()(min )()(0k k d xf g ααα+=≤来求得,所以最佳步长)()()()(k k k k k Addd r TT=α。

在给定初始向量)0(x 后,由于负梯度方向是函数下降最快的方向,故第1次迭代取搜索方向)0()0()0()0()(Ax b x f r d-=-∇==。

令)0(0)0()1(d x x α+=,其中)0()0()0()0(0Addd r TT=α。

第2次迭代时,从)1(x 出发的搜索方向不再取()1r,而是选取)0(0)1()1(d r d β+=,使得)1(d与()0d 是关于矩阵A 的共轭向量,即要求)1(d 满足()()()0,01=Ad d ,由此可求得参数)0()0()0()1(0-Ad d Ad r TT=β,然后从()1x 出发,沿方向)1(d进行搜索得)1(1)1()2(d x xα+=,其中1α已由上面k α的计算式获得。

一般地,设已经求出)()()1(k k k k d x x α+=+,计算)1()1(++-=k k Ax b r。

共轭梯度法

共轭梯度法

v
i 0
p Api
n
i T i
pi
证明:
任意向量 v (v R ) 可以表示成
v c j Pj
j 0
n 1
用 Pi A
T
(i 1,2,,n-1) 左乘式(1)得
n 1 j 0
PiT Av c j PiT APj ci PiT APi
ci P iT Av P i APi
共轭梯度法
(Fletcher-Reeves)
梯度法的特点 优点 迭代过程简单,编制程序较易,一次迭代的工作量较少,计 算机内存量小。 函数值下降方向明确,对初始点没有严格要求。 缺点 跌代过程中走许多弯路,有些情况下,收敛速度较慢。
d ( k ) -f (x ( k ) ) f (x ( k 1) ) d ( k ) 0
f (x )
(1)
f (x* ) A (x(1) 1d1 ) B A x (1) B 1Ad1 0
=
d (1)
f (x(1) ) 1Ad1 0
x*
1d (1)
d (f (x d f (x
( 0) T (0) T
(1)
) 1Ad(1) )
提供共轭向量系的方法有多种,如共轭梯度法,Powell方法等。
(二)共轭梯度法
Fletcher & Reeves (1964)
构造共轭方向的具体方法
x
(k )
x
( 0)
id(i )
i 0
k 1
(1) 初始搜索方向的确定 选定初始点
x (0) ,下降方向 d (0)

x (0) 处的负梯度方向;

共轭梯度法求10维二次目标函数的最小值

共轭梯度法求10维二次目标函数的最小值

题目:共轭梯度法求10维二次目标函数的最小值1. 概述在数值优化领域,求解多维目标函数的最小值是一个具有挑战性的问题。

其中,共轭梯度法是一种经典的数值优化算法,能够高效地求解具有很好特征的优化问题。

本文将介绍共轭梯度法在求解10维二次目标函数最小值的具体应用。

2. 共轭梯度法概述共轭梯度法是一种迭代算法,用于求解无约束优化问题。

在每次迭代中,它利用历史梯度信息寻找下降方向,并且通过共轭方向的选择,避免了迭代过程中出现退化情况,从而大大提高了收敛速度。

在求解高维优化问题时,共轭梯度法通常能够比传统的梯度下降法更快地找到最优解。

3. 10维二次目标函数定义我们考虑如下的10维二次目标函数:\[ f(x) = \frac{1}{2}x^TQx - b^Tx \]其中 $ Q $ 是一个正定对称矩阵,$ b $ 是一个10维向量,$ x $ 是需要优化的变量。

4. 共轭梯度法求解思路共轭梯度法的求解思路包括以下几个步骤:(1)初始化 $ x_0 $ 和初始搜索方向 $ d_0 $;(2)计算梯度 $ g_k $ 和步长 $ \alpha_k $;(3)更新 $ x_{k+1} $ 和搜索方向 $ d_{k+1} $;(4)重复步骤(2)和(3),直到满足终止条件。

5. 具体算法步骤以下是使用共轭梯度法求解10维二次目标函数最小值的具体算法步骤:(1)给定初始点 $ x_0 $,初始化搜索方向 $ d_0 = -g_0 $,设置迭代次数 $ k=0 $;(2)计算步长 $ \alpha_k = \frac{g_k^Tg_k}{d_k^TQd_k} $;(3)更新 $ x_{k+1} = x_k + \alpha_kd_k $;(4)计算 $ g_{k+1} $;(5)计算$ \beta_{k+1} = \frac{g_{k+1}^Tg_{k+1}}{g_k^Tg_k} $;(6)更新搜索方向 $ d_{k+1} = -g_{k+1} + \beta_{k+1}d_k $;(7)如果满足终止条件,则停止迭代,否则令 $ k=k+1 $,返回步骤(2)。

第二节共轭梯度法

第二节共轭梯度法

Page 1§3.4 共轭梯度法基本思想Page 2利用目标函数在当前迭代点处的负梯度方向与上一步的搜索方向的适当线性组合,构造下一步的搜索方向,要求这些搜索方向是一系列共轭方向。

由Taylor公式知,一个函数在一点附近的性态与二次函数是很接近的,因此,为了建立有效算法,往往选用二次模型,即先针对正定二次函数建立有效的算法,然后再推广到一般函数上去。

Page 3一、共轭方向及其性质注:若,Q I =则是正交的,因此共轭是正交的推广.定义1:如果:()0,T ij d Q d i j =≠则称m d d d ,,,21"是关于Q 共轭的.设m d d d ,,,21"是nR 中任一组非零向量,n nQ R×∈是n 阶实正定矩阵,Page 4定理1:设Q 为n 阶正定阵,非零向量组m d d d ,,,21"关于Q 共轭,则必线性无关.推论1:设Q 为n 阶正定阵,非零向量组n d d d ,,,21"关于Q 共轭,则它们构成nR 的一组基.n 则推论2:设Q 为阶正定阵,非零向量组n d d d ,,,21"关于Q 共轭.若向量v 与n d d d ,,,21"均正交,.0=vPage 5定理2:设为阶正定阵,向量组Q n 12,,kd d d "关于Q 共轭,对正定二次函数()12T Tf x x Qx b x c =++,由任意1x 开始,1,1,2,,i ii i xx d i k α+=+="则:(1)1()0,1,2,k T if x d i k+∇=="(2)当k n =时,1n x +为f(x)在n R 上的极小点.后得沿k 次精确线搜索依次进行i dPage 6启发:用迭代法求解正定二次函数极小:()12T TMin f x x Qx b x c=++转化为构造关于Q共轭的n个方向问题.如何构造n个关于Q共轭的方向?一种做法是借助迭代点处的负梯度方向来构造共轭梯度法Page 7二、求解正定二次函数的共轭梯度法令11(),.k k kk k df xd λλ++=−∇+为待定组合系数1()()()kTk k k T kd Q f x d Q dλ+∇=左乘(),kTd Q 并使1()0,kTk d Q d+=得:1. 构造共轭方向—用待定系数法1,:,k k kk k x x d αα+=+精确线搜得步长进而得索取:0()d f x =−∇令0;k =Page 8不仅如此, 还可以证明:1()0,1,2,,j Tk d Qdj k+=="12,,,nd d d "可见, 若中途不停机的话, 按上述方法得到的关于Q 是两两共轭的.n 个方向Page 92. 正定二次函数的共轭梯度法算法Step2:如果(),kf xε∇<停止迭代;令1.k k kk xx d α+=+Step3:令1,k k =+转Step2.0()()argmin ()()k T k k kk k T kd f x f x d d Qd ααα>∇=+=−否则沿精确线搜索求步长:kd 111()()(),()k T k k k kk k k T kd Q f xd f x d d Qdλλ+++∇=−∇+=其中并计算:Step1:给出0,(),01,0.nx R d f x k ε∈=−∇≤<<=Page 1012,,,nd d d "可以证明, 若中途不停机的话, 这样得到的关于Q 是两两共轭的.n 个方向再结合定理2, 因此1n x+一定是所求的最优解.3. 收敛性1()()()kTk k k T kd Q f x d Q dλ+∇=(Hestenes-Stiefel 公式)组合系数的选取:可见,该公式中里面含有Hessen矩阵Q, 不能直接应用于求解一般非正定二次函数情形.Page 114. 组合系数的其他形式(1)FR 公式212()()k k kf xf x λ+∇=∇(1964)(2)DM 公式21()-()()k k k Tkf xd f x λ+∇=∇(Fletcher-Reeves 公式)(Dixon-Myers 公式)Page 12组合系数的其他形式(3)PRP 公式()12()()()()k Tk kk kf x f xf x f x λ+∇∇−∇=∇(1969)(Polak-Ribiere-Polyak 公式)Page 13三、求解一般函数的FR 共轭梯度法Step1:给出0,(),01,0.nx R d f x k ε∈=−∇≤<<=否则,由精确线搜索求步长:Step3:0argmin ().k kk f x d ααα>=+进而得1.k k kk x x d α+=+返回Step2.Step2:如果(),kf x ε∇<*;kx x =取停,()21112()()k k k kkf xdf x df x +++∇=−∇+∇以及1,k k =+令Page 14FR 共轭梯度法收敛定理定理4:假定()x f 在有界水平集()(){}nL x R f x f x=∈≤上连续可微,且有下界,那么采用精确线搜索下的FR 共轭梯度法产生的点列{}kx 至少有一个聚点是驻点,即:(1)当{}kx 是有穷点列时,其最后一个点是()x f 的驻点.(2)当{}kx 是无穷点列时,它必有聚点,且任一聚点都是()x f 的驻点.Page 15例2:用共轭梯度法求解:()()22012min 4,1,1Tf x x x x =+=取又由()f x 可看出()()1122201,208x f x x x x ⎛⎞⎛⎞=⎜⎟⎜⎟⎝⎠⎝⎠2008Q ⎛⎞=⎜⎟⎝⎠是一个正定二次函数, 其中解:因共轭梯度法的第一步迭代与最速下降法相同,故由上一节例1知分析:由例1知该函数的极小点是(0,0).Tx ∗=因此在求最优步长和组合系数时,有两种方法.Page 16()01,1:Tx =得()()2,8Td f x=−∇=−−(1) 由令00()0:0.13077df x d d ααα+==得由于较大, 因此还需迭代下去.()1f x ∇10120.738460.13077180.04616x x d α⎛⎞⎛⎞⎛⎞=+=−=⎜⎟⎜⎟⎜⎟−⎝⎠⎝⎠⎝⎠进而有:()()()111.47692,0.36923,1.52237Tf xf x ∇=−∇=Page 17()110d f x dλ=−∇+(2) 先构造下一个搜索方向110()1.476922 1.545080.034080.3692380.09659d f x dλ=−∇+−−−⎛⎞⎛⎞⎛⎞=+=⎜⎟⎜⎟⎜⎟−⎝⎠⎝⎠⎝⎠于是有21020()0.03408()f x f x λ∇===∇"01000()()17.723040.03408()520TT d Q f x d Qd λ∇===="或其中, 组合系数Page 18沿搜索方向用精确线搜索求步长:21110.73846 1.5450800.477940.046160.096590x x d α−⎛⎞⎛⎞⎛⎞=+=+=⎜⎟⎜⎟⎜⎟−⎝⎠⎝⎠⎝⎠于是有令111()0:0.47794df x d d ααα+==得为此, 先计算出表达式11()f x d α+所以迭代终止,因()20,f x ∇=最优点为:()20,0.Tx x ∗==可见: 对于例1, 用共轭梯度法经两次迭代求得最优解.优点:Page 19(1)克服了最速下降法的慢收敛性.(2)建立在二次模型上,对正定二次模型具有二次终止性.(3)算法简单,易于编程,需存储空间小等优点,是求解大规模问题的重要方法.Page 20。

共轭梯度法

共轭梯度法

共轭梯度法对于任意形式的目标函数()f X ,在极值点*X 附近展开成泰勒级数,且取前三项,有()()()****2**1()...2TT f X f Xf X X X X X f X X X ⎡⎤⎡⎤⎡⎤⎡⎤≈+∇-+-∇-⎣⎦⎣⎦⎣⎦⎣⎦因在极值点*X 处()*0f X ∇=,而()2**()f X H X ∇=为()f X 在*X 的二阶偏导数矩阵,即Hessian 矩阵,故()****1().().2T f X f X X X H X X X ⎡⎤⎡⎤≈+--⎣⎦⎣⎦ 对于二次函数来说,若令()()()2*2*2*221122,,f X f X f X a b c x x x x ∂∂∂===∂∂∂∂则()**1(),a b H X f X d b c ⎡⎤==⎢⎥⎣⎦而—常数 则,得到()()()()()()()()()()()()()()11221212121122*1**112*2**12**112**1222****11122-1()+--2---1=+--2--1-2---2x x a b f X d x x x x b c x x a x x b x x d x x x x b x x c x x d a x x b x x x x c x x ⎡⎤⎡⎤⎢⎥⎡⎤≈⎢⎥⎣⎦⎢⎥⎣⎦⎣⎦⎡⎤+⎢⎥⎡⎤⎣⎦⎢⎥+⎣⎦⎡⎤=+++⎢⎥⎣⎦由上式可知,当12*1**2x x X X x x ⎡⎤⎡⎤===⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦时,得到目标函数的极小值()*1()f X f X d ==,当22(),,...f X d d =时,则有等值线族。

令2()f X d =,代入上式,则有()()()()112222****2111221()-2---2f X d d a x x b x x x x c x x ⎡⎤=≈+++⎢⎥⎣⎦所以目标函数()f X 在*X 点附近的等值线方程为()()()()112222****1122-2---0a x x b x x x x c x x d +++=式中,122()d d d =-=常数。

第7章 共轭梯度法

第7章 共轭梯度法

(k )
k 1 p
( k 1)
) (r , r )
(k) (k)
( k 1)
(r , r ) k (k ) (k) ( Ap , p )
( k 1) (k )
(k )
(k )
(r ,r ) k (k ) (k ) (r , r )
( k 1)
( k 1)
(r (r , Ap ) k (k ) (k ) ( p , Ap )
x 0 r x
(1)
(1)
0 p
(0)
其中 0 ,0 满足
0 r (1)T Ar (1) 0 r (1)T Ap(0) r (1)T r (1) (1)T (0) (0)T (0) 0 r Ap 0 p Ap 0
取下一个搜索方向为
0 (0) x )r p (x p 0 0
T
2
0
0
1
1
0
计算
( 0)
0
x1 x2
3

( 0)
1
1
Step1
2
( 0)
x3
3
解: 易验证系数矩阵是对称正定的.
p r
( 0)
b Ax
(1)
( 0)
(3 1 3)
( 0)
T
(r , r ) 0 ( 0) (0) ( Ap , p ) 55
x 19
x
0 p
( 0)
19 T (3 1 3) 55
( k 1)
p
( k 1)
r
( k 1)
x
( k 1)
x
(k )
k p
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

机械优化设计大作业
——共轭梯度法计算函数
班级:
姓名:
学号:
指导老师:
1,问题分析:
此问题为无约束优化问题,为了克服最速下降法的锯齿现象以提高其收敛速度,发展了一类共轭方向法,共轭梯度法是在共轭方向法的基础上改进的,是共轭方向法的一种。

利用此方法可以解决简单的优化问题,本题可以用共轭梯度法来解决。

2,数学模型:
1)目标函数:
f(x)=x(1)^2-x(1)*x(2)*x(3)+x(2)^3-x(3)^4
2)设计变量:
x= [
)3()2( )1(x
x
x]
3) 约束条件:
此题为无约束优化问题。

3,算法特点:
共轭梯度法实质上是对最速下降法进行的一种改进,收敛的速度会进一步提高,优化的程序也是非常的简单,存储量少,同时具备最速下降法的优点。

4,计算过程:
f(x)=x(1)^2-x(1)*x(2)*x(3)+x(2)^3-x(3)^4
取初值为x0=[1,1,1]T
g
0=)
f(x0
∇ =[
3
3
2
1
2
2
3
2
3
2
1
4
3
x
2
x
x
x
x
x
x
x
x
+
+
-
-
]=[
5
2
1
-
]
x 1= x 1+0αd 0=[1
11]+0α[52
1
-]=[00051211ααα-++] 其中的0α为最佳步长,可通过f(x 1)=min )(αϕ,001
=)(’αϕ 求的
0α=52
x 1=[000
51211ααα-++]=[1-59
57
]
为了建立第二个共轭方向d 1,需要算x 1点处的梯度及系数0β的值,得
)f(x 1∇ =[3
321223232143x 2x x x x x x x x ++--]=[6115
]
0β=2021g g =6
从第二个共轭方向
d 1=- g 0+0βd 0=[36-1
1]
x 2= x 1+1αd 1= [000
51211ααα-++]
其中的1α为最佳步长,可通过f(x 2)=min )(αϕ,012
=)(’αϕ
求的
1α的值
并且得到x 2的值
g 2=)f(x 2∇ =[332122
323
2143x 2x x x x x x x x ++--]
以此类推,最后迭代到N 次
g n =[0
00
]
的到x *= x *
N
说明x *N 点满足极值条件的必要条件,再根据x *N 点的海赛矩阵是正定的,可知x *N 满足极值的充分必要条件。

故x *N 为极小值,
5, 结论: 从共轭梯度法的计算过程可以看出,第一个搜索方向取作负梯度方向,这就是最速下降法。

其余各步的搜索方向是将负梯度偏转一个角度,也就是对负梯度进行修正。

所以说,共轭梯度法就是对最速下降法的改进。

相关文档
最新文档