共轭梯度法 - 范文中心

共轭梯度法

08/26

共轭梯度法

对于任意形式的目标函数f(X),在极值点X附近展开成泰勒级数,且取前三项,有

T1***T2**

f(X)fXfX.XXXX.fX.XX2

*

2**

因在极值点X处fX*0,而fXH(X)为f(X)在X的二阶偏导数矩阵,

*

*



*

即Hessian矩阵,故

1*T**

f(X)fX*XX.H(X).XX 2

对于二次函数来说,若令

2fX*x1

2

a,

2fX*x1x2

b,

2fX*x2

2

c

ab

H(X*),而fX*d1—常数 

bc

则,得到

1

f(X)d1+x1-x1*

2



2

1

=d1+x1-x1*

2

x1-x*ab1x2-x*

2*

bcx2-x2

ax1-x*bx2-x*

12

x2-x*2bx1-x*cx2-x*

12







1

d1ax1-x1*

2

2bx1-x1*



2

*x2-x*cx-x222

x1*x1*

由上式可知,当XX时,得到目标函数的极小值

*xx22

f(X)fX*d1,当f(X)d2,d2,...时,则有等值线族。

令f(X)d2,代入上式,则有

f(X)d2d1

*

1

ax1-x1*2



2

2bx1-x1*



2

* x2-x*cx-x222



所以目标函数f(X)在X点附近的等值线方程为

*

ax1-x1



2

*

2bx1-x1



*

x2-x*cx-x222



2

d0

式中,d2(d1d2)常数。由极小值点存在的充分必要条件为二阶导数行列式小于零,

b2ac0

在解析几何中已经证明,当b2ac0时为椭圆,所以二元函数的等值线在极值点附近是近似的同心椭圆族。

1. 算法原理

共轭梯度法是利用目标函数梯度逐步产生共轭方向作为线搜索方向的方法,每次搜索方向都是在目标函数梯度的共轭方向,搜索步长通过一维极值算法确定。

T

设二次函数为f(X)CbX

1T

XAX,其中C为常数,b,X为n维列向量,A2

为对称正定矩阵,用共轭梯度法求f(X)的极小点:

共轭梯度法探索的第一步是沿负梯度方向。即X

(k)

点按S

(k)

fX(k)方向找到

X(k1),然后沿着与上一次探索方向S(k)相共轭的方向S(k1)进行探索直达到最小点X*。

令S

(k1)

fX(k1)kS(k)。

(k)

S(k)的一部分即kS(k),加上新的负梯上式的意义就是以原来的负梯度fX



(k1)

度fX,构造S(k1)。



在上式中的选择,应使n维欧氏空间E中的两个非零向量S(k)与S(k1)关于矩阵A共轭。即

(k1)(k)

SAS0

T

kn

(k0,1,2,...n1)

f(X)CbTX

若令

1T

XAX,故有f(X)bAX 2

g(k)fX(k)bAX(k) g(k1)fX(k1)bAX(k1)

二式相减,得

g(k1)g(k)A(X(k1)X(k))

设在第k1次迭代中

X(k1)X(k)(k)S(k)

代入上式,得

g(k1)g(k)A(k)S(k),(k0,1,2,...n1)

式中(k)为第k1次迭代的最优步长。

由式S

(k1)T

(k)

AS0

(k0,1,2,...n1)和式

g(k1)g(k)A(k)S(k),(k0,1,2,...n1),得

(k1)(k1)

g(k))0 S(g

T

将式S

(k1)

fX(k1)kS(k)和式g(k1)fX(k1)bAX(k1)代入上式,得

[g(k1)kS(k)]T(g(k1)g(k))0

因为g(k1),g(k),...,g(0)是一正交系,故有[g(k1)]Tg(k)0或[g(k1)]TS(k)0

故上式可简化为

[g(k1)]Tg(k1)(k)[g(k)]Tg(k)0

(k)

g[g]g

[g(k)]Tg(k)g(k)

(k1)T

(k1)

(k1)2

2

fX(k1)fX

(k)

22

(k)用一维探索最优化方法确定,即求

minf(X(k)S(k))f(X(k)(k)S(k))

a

或用解析法,使

df(X(k)(k)S(k))

0

d

求得

(k)

(k1)

或由式g

g(k)A(k)S(k),(k0,1,2,...n1),得

g(k1)g(k)A(k)S(k)

fX(k1)fX(k)(k)AS(k)

又由于进行一维最优化搜索,故有

fX(k1)S(k)0 

T

由上两式可求得

(k)

fX(k)S(k)

(k)T(k)SAS

T

如此,即可得到共轭梯度法的一组计算公式为

X(k1)X(k)(k)S(k)

(k)

fX(k)S(k)fX(k)S(k)

 (k)T(k)(k)T(k)(k)

SASSHXS

S(k1)fX(k1)kS(k)

TT

(k)

g[g]g

(k)T(k)

[g]gg(k)

(k1)T

(k1)

(k1)2

2

fX

(k1)(k)

fX

22

2. 算法步骤

用共轭梯度法求无约束多维极值问题minf(x),xRn的算法步骤如下: (1) 给定初始点x(0),及精度0;

(0)(0)

(2) 若f(x),停止,极小值点为x,否则转步骤(3);

(3) 取p

(0)

f(x(0)),且置k0;

(k)

(k)

t0

(4) 用一维搜索法求tk,使得f(xktp)minf

k())

xtkp令,(,

x(k1)x(k)tkp(k),转步骤5;

(k1)

),停止,极小值点为x(k1),否则转步骤(6)(5) 若f(x;

(6) 若k1n,令x

(0)

x(n),转步骤(3),否则转步骤(7);

k(7) 令p(k1)f(x(k1))kp(k),

f(x(k1))f(x)

(k)

22

,置kk1,转步骤(4)。

3. 算法的MATLAB实现

在MATLAB中编程实现的共轭梯度法函数为:minGETD

功能:用共轭梯度法求解多维函数的极值。

调用格式:[x,minf]minGETD(f,x0,var,eps) 其中,f:目标函数;

x0:初始点; var:自变量向量;

x:目标函数取最小值时的自变量值; minf:目标函数的最小值。 共轭梯度法的MATLAB程序代码如下: function [x,minf]=minGETD(f,x0,var,eps) %目标函数:f; %初始点:x0;

%自变量向量:var;

%目标函数取最小值时的自变量值:x; %目标函数的最小值:minf; format long; if nargin==3 eps=1.0e-6; end

x0=transpose(x0); n=length(var); syms l;

gradf=jacobian(f,var); %梯度方向 v0=Funval(gradf,var,x0); p=-transpose(v0); k=0; while 1

v=Funval(gradf,var,x0); tol=norm(v); if tol

y=x0+l*p;

yf=Funval(f,var,y); [a,b]=minJT(yf,0,0.1); xm=minHJ(yf,a,b); x1=x0+xm*p;

vk=Funval(gradf,var,x1); tol=norm(vk); if tol

end

if k+1==n x0=x1; continue; else

lamda=dot(vk,vk)/dot(v,v);

p=-transpose(vk)+lamda*p; %共轭方向 k=k+1; x0=x1; end end

minf=Funval(f,var,x); format short; 例:

用共轭梯度法求函数f(t,s)(t3)2s2的极小值,其中初始值取x0(2,6)。 解:在MATLAB命令窗口中输入:

syms t s;

f=(t-3)^2+s^2;

[x,mf]=minGETD(f,[-2 6],[t s])

所得结果为: x =

3.0000 0.0000 mf =

2.0116e-037

22

例:试用共轭梯度法求解目标函数f(X)x1x2x1x210x14x260的极小值。设初

始点X

(0)

[x1(0)

(0)T

x2]00。

T

解:原函数的梯度为

f(X)[

f(X)

x1f(X)TT

]2x1x2102x2x14 x2f(X(0))104

T

第一次探索的方向:

S(0)g(0)104

T

2f(X)x2

1

2f(X)H(X)2

f(X)x2x1

T

2f(X)

x1x221



2f(X)12

2

x2

T

由式

(k)

fX(k)S(k)fX(k)S(k)

,得 (k)T(k)(k)T(k)(k)

SASSHXS

(0)

fX(0)S(0)fX(0)S(0)

(0)T(0)(0)T

HX(0)S(0)SASS

10

104

11640.763157894

2110152

104

124

TT

由此得

X

求X

(1)

X

(0)

S

(0)(0)

010T0.7631578947.631578943.052631576 04

(1)

点处的梯度为

g(1)2.210526305.52631579

T

(k)

由式

g[g]g

[g(k)]Tg(k)g(k)

(k1)T

(k1)

(k1)2

2

fX(k1)fX

(k)

22

求

(0)

(0)

第二次探索的方向:

g

(1)2

2

g(0)

35.42659278

0.305401661

116

S(1)g(1)(0)S(0)0.84349036.74792243

T

由式

(k)

fXS



(k)T(k)SAS

(k)

T

(k)

fXS(k)

T求探索步长为:

(k)(k)(k)

SHXS

(k)

T

0.8434903

2.210526305.52631579

6.74792243(1)

a

210.8434903

0.84349036.747922436.74792243

12

35.426592830.[1**********].10825193

由此得

X

(2)

X

(2)

aS

(1)(1)

7.99999995.9999999

T

T

x1(2)(2) x2

g(2)0.00000020.0000002

g(2)

则,极小值点为

2

x1(2)T

(2)7.99999995.9999999 x2


相关内容

  • 压力梯度力
    压力梯度力 一.压力梯度力的基本概念 影响大气运动的作用力有很多,大体上可划分为基本力(牛顿力)和视示力(外观力),具体见下表: 压力梯度力 基本力(牛顿力) 地心引力 摩擦力 作用于空气的力 惯性向心力 视示力(外观力) 地转偏向力 其中 ...
  • 高梯度磁分离技术的应用
    高梯度磁分离技术的应用 作者:一新祥宇 高梯度磁分离技术在废水处理中的应用范围非常广泛,几乎涉及到所有水处理领域,这是由于它比传统的废水处理技术有许多独特的优点.该技术广泛应用于造纸废水.糖蜜酒精废水[20].城市污水.含油废水.电镀废水. ...
  • 数种蓝宝石晶体生长方法
    蓝宝石晶体的生长方法 自1885年由Fremy.Feil和Wyse利用氢氧火焰熔化天然红宝石粉末与重铬酸钾而制成了当时轰动一时的"日内瓦红宝石",迄今人工生长蓝宝石的研究已有100多年的历史.在此期间,为了适应科学技术的 ...
  • 动作识别中局部时空特征的运动表示方法研究
    ComputerEngineering andApplications计算机工程与应用 2010.46(34) 7 动作识别巾局部时空特征的运动表示方法研究 雷 LEI 庆1,2,3李绍滋h2Qin91.2.3 LI Shao-zil・2 ...
  • 浅论大气旋转力
    龙源期刊网 http://www.qikan.com.cn 浅论大气旋转力 作者:刘亚娟 来源:<科技视界>2013年第15期 [摘 要]因为地球是旋转式运动,而空气由于有重力.气压梯度力.地转偏向力.惯性离心力.摩擦力等对大气 ...
  • 蛋白质分离纯化方法概况
    蛋白质分离纯化方法概况 摘要:分别概述了根据蛋白质分子大小不同.溶解度不同.所带电荷不同这三个方面性质来分离纯化蛋白质的各种技术的原理和特点,并对分离纯化蛋白质的其它方法作了简单介绍. 关键词:蛋白质:分离纯化:方法 蛋白质在生物体内催化代 ...
  • 变性梯度凝胶电泳 DGGE
    变性梯度凝胶电泳 Denaturing Gradient Gel Electrophoresis 变性梯度凝胶电泳(Denaturing gradient gel electrophoresis ,DGGE) 的方法应用于探究微生物的多样性 ...
  • 乙醇气相脱水制乙烯动力学实验
    化 工 专 业 实 验 报 告 实 验 名 称:乙醇气相脱水制乙烯动力学实验学 院:专 业:班 级:姓 名:同 组 者 姓 名:指 导 教 师:日 期: 化学工程学院 化工.班 . 学 号 . 杨春风 2012年3月8日 一.实验目的 1. ...
  • 光的力学效应
    光的力学效应及光阱PN 力的测量 摘 要:利用光镊技术直观地演示了光的力学效应,介绍了光镊原理,装置和光阱力的测量方法. 一. 科学背景与实验目的 光具有能量和动量,光的动量是光的基本属性.携带动量的光与物质相互作用,它们间会有动量的交换, ...
  • 梯度通俗解释
    记得在高中做数学题时,经常要求曲线的切线.见到形如 管三七二十一直接求导得到,这就是切线的斜率,然后 就得到了处的切线. 之类的函数,不 上大学又学习了曲面切线和法向量的求法,求偏导是法向量,然后套公式求出切线. 一个经典例子如下: (来自 ...