作业4-FR共轭梯度法
共轭梯度法简介

算法步骤—FR共轭梯度法 算法步骤 FR共轭梯度法 FR
共轭梯度法
Step1: Step2: Step3: Step4: Step5: Step6: Step7:
共轭梯度法
举例
参见 P187 例7.3.1.
共轭梯度法
收敛性分析
与Newton法相比,共轭梯度 法相比, 法相比 全局收敛性 法具有较弱的收敛条件. 法具有较弱的收敛条件
共轭方向法和共轭梯度法
问题1: 问题 如何建立有效的算法? 如何建立有效的算法? 从二次模型到一般模型. 从二次模型到一般模型
问题2: 什么Leabharlann 的算法有效呢? 什么样的算法有效呢? 问题 二次终止性. 二次终止性
简介
共轭方向法和共轭梯度法
共轭梯度法是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导 共轭梯度法是介于最速下降法与牛顿法之间的一个方法, 数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储 数信息,但克服了最速下降法收敛慢的缺点, 和计算Hesse矩阵并求逆的缺点,共轭梯度法不仅是解决大型线性方程组 和计算Hesse矩阵并求逆的缺点, Hesse矩阵并求逆的缺点 最有用的方法之一,也是解大型非线性最优化最有效的算法之一. 最有用的方法之一,也是解大型非线性最优化最有效的算法之一.
共轭方向法和共轭梯度法
特点 (1) 建立在二次模型上,具有二次终止性. 建立在二次模型上,具有二次终止性. (2) 一种有效的算法,克服了最速下降法的锯齿现象, 一种有效的算法,克服了最速下降法的锯齿现象 锯齿现象, 又避免了牛顿法的计算量大和局部收敛性的缺点. 又避免了牛顿法的计算量大和局部收敛性的缺点. (3) 算法简单,易于编程,无需计算二阶导数,存储 算法简单,易于编程,无需计算二阶导数, 空间小等优点, 空间小等优点,是求解中等规模优化问题的主要 方法. 方法.
共轭梯度法

•基本思想:把共轭性与最速下降法相结合,利用已 知点处的梯度构造一组共轭方向,并沿着这组方 向进行搜索,求出目标函数的极小点
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)的极小值点.
共轭方向与共轭梯度法-最优化方法

f (X1)T P0 0 ,所以 f (X1)T P0 1P1TQ P0 0
P1TQ P0 0
(1)
以上就是搜索方向P1所必须满足的(必要) 条件。这也是使X2是极小点的充分条件。 P1,P2称为关于Q的共轭方向。
讨论表明 对于二维的具有正定矩阵Q的 二次函数f(X),从任一初始点出发,依次沿关 于Q共轭的两个方向进行一维搜索,必可达到 f(X)的无约束精确极小点。
Pk 1
0
且对j 0,1 , k 2, 有
PjT QPk PjT Q f ( X k ) k1Pk1
PjT Qf
(X
k
)
k
PT
1 j
QPk
1
f ( X k )T QPj
f ( X k )T f ( X j1) f ( X j ) j
f ( X k1 ) QX k1 b Q( X k k Pk ) b (2)
f ( X k1 ) f ( X k ) k QPk
所以
f ( X m ) f ( X m1) m1QPm1
f ( X m2 ) m2QPm2 m1QPm1
其中1 是最优步长,1>0 .因为 X * 是无约束极小点。
故 f ( X * ) 0 即 QX * b 0
f (X1) QX1 b
Q( X * 1P1) b (QX * b) 1QP1 1QP1
又因为 X1是f(X)沿P0方向的直线l0上的极小点,故
设 X En ,
,Q为对称正定矩阵,P0,
P1,···,Pm-1是关于Q共轭的m个共轭方向,
共轭梯度法

*
n
k
k
根据共轭梯度法的思想,令
11
⎧ s0 = − g 0 ⎪ k −2 ⎨ k k k −1 i β s = − g + s + ∑ β ki s , k = 1," , n − 1 k −1 ⎪ i =0 ⎩
我们用归纳法来确定其中的参数, 使 s ," , s
k
0 n −1
(4.7)
为非零 H-共轭方向组。 为此, 设 s ," , s
( g k )T s k = − ∇f ( x k ) <0
0= ( s k )T Hs k −1 = −( g k )T Hs k −1 + β k −1 s k −1 Hs k −1 0= ( s k )T Hs i = −( g k )T Hs i + β ki s i Hs i , i = 0," , k − 2
i i T i
(4.3)
由 d ≠ 0 和 H 是对称正定阵知 (d ) Hd ≠ 0 ,于是据 (4.3) 有 α i =0 。再由 i ∈ {1, " , m} 的任意性得知
α 1 = " = α m = 0 ,由此得 d 1 ," , d m 线性无关。证毕。
将一组共轭方向作为搜索方向对无约束非线性规划问题(UNP)进行求解的方法称为共轭方向法。 现在考虑无约束凸二次规划问题
(4.13)
12
( g k )T ( g k − g k −1 ) = g k
对于(4.13)的分母,由(4.10)和(4.12)的第二式知,
2
( s k −1 )T ( g k − g k −1 ) = −( s k −1 )T g k −1 = ( g k −1 − β k − 2 s k − 2 )T g k −1 = g k −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)的极小点。
最优化共轭梯度法

最优化共轭梯度法最优化共轭梯度法(Conjugate Gradient Method)是一种迭代求解线性方程组或优化问题的方法。
它的特点是对于二次正定函数,可以在有限次迭代内精确地求出最优解。
在非二次函数的优化问题中,共轭梯度法表现出了较好的收敛性和全局能力。
共轭梯度法的核心思想是通过选择适当的方向,使得每一次方向的梯度互相“共轭”,从而加快收敛速度。
当目标函数为二次函数时,共轭梯度法能够在有限次迭代中得到精确解;而对于非二次函数的优化问题,共轭梯度法通过先验条件选择合适的方向,最大程度地减小目标函数值。
共轭梯度法的基本步骤如下:1.初始化参数:设置初始点的位置和方向,对于非二次函数,通常选取梯度方向作为方向。
2. 计算步长:通过线方法(如Armijo准则、Wolfe准则等)定位到目标函数上降速度最快的点,并计算目标函数在该点的梯度。
3.更新方向:利用“共轭”梯度法,根据先验条件计算新的方向。
4.判断终止条件:判断目标函数值是否满足设定的终止条件,若满足则停止迭代,否则返回步骤2对于二次函数,最优化共轭梯度法表现出了优良的性能。
当目标函数是非二次函数时,共轭梯度法的表现会有所下降,但仍然比一般的梯度下降法更具有优势。
因此,共轭梯度法常被用于求解大规模线性方程组、信号处理、数字滤波、机器学习等领域。
最优化共轭梯度法的优点在于:收敛速度较快,全局能力较强,不需要存储海量信息。
然而,该方法也存在一些缺点。
首先,共轭梯度法对目标函数的性质有一定的要求,例如目标函数必须是光滑的,并且梯度向量必须是有效的。
其次,共轭梯度法对初始点的选择较为敏感,不同的初始点可能导致不同的解。
总结来说,最优化共轭梯度法是一种高效的优化算法,可以加快目标函数收敛速度,尤其适用于解决二次函数优化问题。
在非二次函数的优化问题中,共轭梯度法以其较好的收敛性和全局能力在实际应用中发挥着重要作用。
共轭梯度法

, k 1 )
(1)
同样由前一节共轭方向的基本定理有:
T gk di 0
( i 0,
, k 1 ),(2)
T 再由 g i 与 d i 的关系得: gk gi 0 ( i
0,
i 0,
, k 1 )
(3)
将(2)与(3)代入(1)得:当 而
i 0 , k 2 时,
第 2次迭代:
5 2 8 T ( 8 , 4 )T ( , ) 18 9 9
g1 (
8 2 16 2 ) ( ) || g1 || 9 9 4 . 0 || g 0 ||2 82 4 2 81
2
8 16 T , ) . ||g1 || 9 9
解:
4 1 f ( x) ( x1 , x2 ) 2 0
0 x1 , 2 x2
4 0 G . 0 2
f ( x) ( 4 x1 , 2 x2 )T .
第1 次迭代:
令
而
d (0) g0 f ( x(0) ) ( 8 , 4 )T ,
一、共轭梯度的构造 (算法设计针对凸二次函数) 设
f ( x)
1 T x Gx bT x c 2
其中 G 为 n n 正定矩阵,则
g ( x) Gx b
对二次函数总有 1)设
gk 1 gk G xk 1 xk k Gdk
,令 x1 x0 0 d0 ( 0 为精确步长因子)
dk 1 f ( xk 1 ) dk
|| f ( xk 1 ) ||2 || f ( xk ) ||2
令k=k+1;返回4.
共轭梯度法

共轭梯度法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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最优化方法第四次作业
题目:利用FR-共轭梯度法求解无约束优化问题222
12122min ()44412x R f x x x x x x ∈=+--。
初始点(0)(0.5,1).T x
=- ()()T k k T k
k k k k k k g g g g k d g k g d 1
11110.0,;0,-----=⎩⎨⎧≥+-=-=ββ
一、程序
function [x,val,k]=frcg(fun,gfun,x0)
%功能:用FR 共轭梯度法求解无约束问题min f (x )
%输入:x0是初始点,fun,gfun 分别是求目标函数和梯度
%输出:x,val 分别是近似最优点和最优值,k 是迭代次数
maxk=5000;
rho=0.6;
sigma=0.4;
k=0;
epsilon=1e-4;
n=length(x0);
while (k<maxk)
g=feval(gfun,x0);%计算梯度
itern=k-(n+1)*floor(k/(n+1));
itern=itern+1;
%计算搜索方向
if (itern==1)
d=-g;
else
beta=(g'*g)/(g0'*g0);
d=-g+beta*d0;
gd=g'*d;
if (gd>=0.0)
d=-g;
end
end
if (norm(d)<epsilon),break ;end %检验终止准则
m=0;
mk=0;
while (m<20) %用Armijo 搜索求步长
if (feval(fun,x0+rho^m*d)<feval(fun,x0)+sigma*rho^m*g'*d) mk=m;
break ;
end
m=m+1;
end
x0=x0+rho^mk*d;
val=feval(fun,x0);
g0=g;
d0=d;
k=k+1;
end
x=x0;
val=feval(fun,x);
二、程序运行结果
>> x0=[-0.5,1]';
>> [x,val,k]=frcg('fun','gfun',x0)
x =
1.0000
2.0000
val =
-12.0000
k =
10
即22212122min ()44412x R f x x x x x x ∈=+--的极小值点x=[1;2];minf(x)= -12。