Upload
cathal
View
144
Download
0
Embed Size (px)
DESCRIPTION
第四章 非线性方程和非性方程组的解法. 4.1 非线性方程的解法 4.2 非线性方程组的 线性化解法 4.3 非线性方程组的 极值求解法 4.4 最速下降法 4.5 共轭梯度法 4.6 牛顿过程及变度量法 4.7 直接法 4.8 方法的选择与总结. 1 . 非线性方程的解法 2 . 非线性方程组的 线性化解法 --牛顿迭代法 3 . 非线性方程组的 极值求解法 --最速下降法 | 单纯形法 --共轭梯度法 | Powell 方法 --变尺度法 | (可变矩阵方法) | 直接法 - PowerPoint PPT Presentation
Citation preview
浙江大学研究生学位课程
《实用数值计算方法》 1
第四章 非线性方程和非性方程组的解法
4.1 非线性方程的解法
4.2 非线性方程组的线性化解法
4.3 非线性方程组的极值求解法
4.4 最速下降法
4.5 共轭梯度法
4.6 牛顿过程及变度量法
4.7 直接法
4.8 方法的选择与总结
浙江大学研究生学位课程
《实用数值计算方法》 2
1 . 非线性方程的解法
2 . 非线性方程组的线性化解法
--牛顿迭代法
3 . 非线性方程组的极值求解法
--最速下降法 | 单纯形法
--共轭梯度法 | Powell 方法
--变尺度法 |
(可变矩阵方法) | 直接法
DFP 方法 |
浙江大学研究生学位课程
《实用数值计算方法》 3
4 .1 引言
在科学研究中,常常会遇到非线性方程 或非线性方程组的问题。例如解方程
或
一般的,我们记非线性方程为
14024503510 234 xxxx
2402
sin
x
e x
340 xf
浙江大学研究生学位课程
《实用数值计算方法》 4
4.1
非线性方程组的一般形式是:
0,,,
0,,,
0,,,
21
212
211
nn
n
n
xxxf
xxxf
xxxf
其中 fi ( i=1,2,…,n )是 n 维实空间R n 上的
实值函数。用向量形式表示:
这里 均是 n 维向量。为了方便
计,还是用 分别表示上述向量。
简记为:
440 xf
0,, xf
0,, xf
0xf
浙江大学研究生学位课程
《实用数值计算方法》 5
4.1
c a
d
c a
d
b
3axy dcxy 3
2axy
dcxy 2
图 4.1 非线性方程求根示意图
浙江大学研究生学位课程
《实用数值计算方法》 6
4.1
方程的解亦称方程的根或函数的零点。
根可能是实数或复数。
若 则 称为单根;
若
而 ,则 称为 k 重根。
常见的求解问题有两种:
(1) 要求定出在给定范围内的某个解。
(2) 要求定出在给定范围内的全部解。
非线性问题,除少数情况外,一般不能
不利用公式求解。而要采用某种迭代解法。
即构造出一近似值序列
逼近真解 。
,0,0 ' ff
01' kfff
0kf
n ,,, 10
浙江大学研究生学位课程
《实用数值计算方法》 7
4.1
迭代过程的收敛性一般与初值的选取和方
程的性态有关,某些解法仅与初值有关。
收敛速度一般由迭代方法所决定,方程的
性态也会起一些作用。
本章主要介绍非线性方程组的解法,
而方程的解法用较少的篇幅在 4.2 中扼要介绍。
解非线性方程和方程组有很大区别。后者
要困难得多。主要的区别在于一维情形可
以找到一个根的范围,然后缩小,最终找
到根。而多维情况则很难确定根的存在。
直到你求得它的解。
浙江大学研究生学位课程
《实用数值计算方法》 8
4.2 非线性方程的解法 4.2.1 二分法
对于连续函数 ,如果在
和 处异号:
则 在 内至少有一个根。
xf
ax bx 0 bfaf
xf ba,
同号与否。与
取决于代替前一步的
或的方法,称二分法。用
减小一倍,即二分每步使长度的解。近似作为用
足够小时,。当区间当=0时已找到解
,并保持逐步缩小区间
2
,2
,
,2
,
,
02
,
0,
baf
afbaba
a
bba
ba
ba
xfba
ba
bfafba
浙江大学研究生学位课程
《实用数值计算方法》 9
4.2.1
用图来表示这个过程:
0
y
x
a ba ba b
时零点。、只能求实函数的一个
、方法稳定,只要求、收敛速度慢,线性。
3
,
2
1
0 bacxf
确定根所在的范围[ a,b ]对有的函数
也是一件困难的事。所幸的是,在实际应
用中,根据其物理或工程的背景,在绝大
部分场合是不困难的。对给定的函数也有
确定范围的方法。
图 4.2 二分法方程求根
浙江大学研究生学位课程
《实用数值计算方法》 10
a
b
ba
x1
x1 x2 x3dcfc
a
b
4.2.1
图 4.3 寻找隔根区间示意1
浙江大学研究生学位课程
《实用数值计算方法》 11
x
c1
sin
cx
d1
a cb
4.2.1
图 4.4 寻找隔根区间示意 2
图 4.5 寻找隔根区间示意 3
浙江大学研究生学位课程
《实用数值计算方法》 12
例如,在[ a,b ]之间寻找 f(x) 可能有
的根可以用等分试探法:
a b
4.2.1
图 4.6 等分试探法寻找隔根区间示意
浙江大学研究生学位课程
《实用数值计算方法》 13
用二分法求函数 FUNC 位于( x1,x2 )之间的根,准确性为 XACC 。
FUNCTION RTBIS (FUNC,X1,X2,XACC)
PARAMETER (JMAX=40)
FMID=FUNC(X2)
F=FUNC(X1)
IF (F*FMID.GE.0.) PAUSE ' 函数 FUNC 在 x1,x2 处不异号 '
IF (F.LT.0.) THEN
RTIBIS=X1
DX=X2-X1
ELSE
RTBIS=X2
DX=X1-X2
ENDIF
DO 11 J=1, JMAX
DX=DX*0.5
XMID=RTBIS+DX
FMID=FUNC(XMID)
IF (FMID.LE.0.) RTBIS=XMID
IF (ABS(DX) .LT. XACC .OR. FMID .EQ. 0.) RETURN
11 CONTINUE
PAUSE ' 迭代次数越界 '
END
4.2.1
浙江大学研究生学位课程
《实用数值计算方法》 14
FUNCTION FF(X)
FF = X*X + 2.5*X + 0.5+SIN(X)
END
PROGRAM ROOTFIND
EXTERNAL FF
X1=-1.0
X2=0.0
ROOT=RTBIS(FF, X1, X2, 1.0E-5)
PRINT *, ' 方程在( -1 , 0 )区间内有一个根, X=', ROOT
STOP
END
内的一个根解题示例。,在区间
求
01
)sin(5.05.2: 2
xxxxf
4.2.1
浙江大学研究生学位课程
《实用数值计算方法》 15
4.2.2 线性插值法(又称弦位法)
为止。逼近解如此反复,直到充分
,重复上述过程得到,代替似值。用
的一个新的近为
:的零点,并记为求
构造一线性函数,通过
且。,的两个近似解的解设
4
13
3
3
1
21
3
12
1222
212
122
221
2211
,,
,
0
fff
xL
xff
fxL
ff
ffff
xf
x
f(x)
241
3
图 4.7 Secant Method
浙江大学研究生学位课程
《实用数值计算方法》 16
4.2.2
c
c
33
23
323
设迭代控制:
21
2
3
3
3
,
0
1
,则当附近在零点如果
程是发散的。当超过这个数时认为过,迭代次数故一般提供一个最多的
收敛的,由于有时这个过程是不。作为解
时认为过程收敛,或
满足。则迭代过程如果一般取数。为绝对或相对误差控制其中
Cxf
k
f
C
浙江大学研究生学位课程
《实用数值计算方法》 17
4.2.2
降低了收敛速度。,但是却法增加了收敛的可能性
。简称个修改后的方法叫做
。。这定包含了解最近得到的。但它们一不一定是,解使它所保留的两个近似
修正一下这个算法,的原因之一。我们如果敛。。这也是不能保证收不总是包含解
之间并,的近似值解两个最近的
是所保留的线性插值法的一个缺点
阶。即超线性收敛。其收敛速度为的。时,线性插值法是收敛充分接近于
FPM
FPMMehtodPositionFalse .
618.1
21
21
浙江大学研究生学位课程
《实用数值计算方法》 18
4.2.2
收敛还要慢。插值法比二分法可以举出例子说明线性
。。根必须包含,值法的初始
所示。图解的迭代过程如
法及近似
21
8.4
FPM
FPMf(x)
x
1
43
2
图 4.8 线性插值法求根示意
浙江大学研究生学位课程
《实用数值计算方法》 19
4.2.2
f(x)
x
1
3 4 5
图 4.9 线性插值法发散示例
浙江大学研究生学位课程
《实用数值计算方法》 20
4.2.3 Newton 法
'1112
1'
1
1''
1
11
'
0
0
ff
xL
fxfxL
ff
ff
xfxf
得
令
作
记:存在。附近在解设
F(x)
x
2 1
11, fx
图 4.10 Newton 法示意
浙江大学研究生学位课程
《实用数值计算方法》 21
4.2.3
。故求弦位法每迭代一次只需
求值。必须对
存在
:法的收敛阶为
k
kk
k
k
k
k
fa
ff
fkf
ce
e
Newton
.
,3
,2,102
0lim
21
'
''
1
F(x)
2 1 x
11, f0'2 f
图 4.11 导数变化对算法的影响
浙江大学研究生学位课程
《实用数值计算方法》 22
每次函数求值相当的收敛阶为:
b. 求 fk' 有时工作量大,甚至不可能。
(4) 选用收敛域较大的方法(如二分法)
先进行迭代,然后再用 Newton 法。
--组合方法。
4.2.4 二次插值法
设 f(x)=0 的三个近似解及函数值
构造二次函数 g(y) 使得:
。332211 ,,,,, fff
414.12 618.1
浙江大学研究生学位课程
《实用数值计算方法》 23
4.2.4
PQX
y
ffff
fyfy
ffff
fyfy
ffff
fyfyygx
Lagrange
ifgx ii
则求新的近似根,令
插值:利用
,0
3,2,1
1232
213
3121
132
2313
311
浙江大学研究生学位课程
《实用数值计算方法》 24
4.2.4
1
3
3
2
2
1
213
313
2
232
1
1
111
ffT
ffS
ffR
fff
fff
fff
Q
TSRP
其中:
F(x)
x
g(x)f(x)
14
32
图 4.12 二次插值法求根示意
浙江大学研究生学位课程
《实用数值计算方法》 25
4.2.4
(1) 要有三个初始值
(2) 当 。且收敛速度
是 1.84 阶。(单根)
二重根的收敛阶是 1.23 。
(3)
(4) 发生超射、越界。
21111 ,,,, 且
时收敛 ,03Cxf
不同值。
不同值。3,2,1
3,2,1
if
i
i
i
方法名称 收敛速度 有效指数 重根情况
二分法 1 1 1, 偶重失败
线性插值法 1.618 1.618 1
牛顿法 2 1.414 1
二次插值法 1.84 1.84 二重时 1.23
表 4.1 各种插值方法的比较
浙江大学研究生学位课程
《实用数值计算方法》 26
4.2.5 组合方法( Brent Method )
能否有一种方法综合上述方法的优
点呢? Brent 做了一些工作。
Brent 把二分法和二次插值法结合
起来。
(1)一定收敛。
(2)收敛速度至少线性。
(3)在解附近足够光滑时,收敛速度
将是 1.84 或 1.23 。
有关多项式的求根还有一些特殊方法。
浙江大学研究生学位课程
《实用数值计算方法》 27
4.3 非线性方程组及牛顿法
非线性方程组的向量形式可表示为 Tn
Tn
x
ffff
xf
,,,
,,,
540
21
21
其中
解法:
1. 几乎不可能用直接法
2. 线性化,迭代逼近。牛顿法
3. 最优化,求函数极小值。下降法。
例如,
求 的极小值点。
最速下降法,共轭梯度法,变尺度方法。
2xfx i
浙江大学研究生学位课程
《实用数值计算方法》 28
4.3.1 牛顿法
为方便计,用二维情形来讨论。 64
0,
0,
212
211
f
f
假定( 4-6 )的解 ,0,, 021
xCffx
。且存在一阶偏导数。设 ,0 xx k
kkkxx 2121 ,,, 这里,
作线性函数( Taylor 展开,取一阶精度)
74
222
211
1
222
222
111
1
111
k
x
k
x
k
k
x
k
x
k
kk
kk
ffxfxl
ffxfxl
浙江大学研究生学位课程
《实用数值计算方法》 29
4.3.1
在 内用线性函数( 4-7 )代替
非线性方程组 (4-6) 中的 f1,f2, 从而 ,0 x
kkkk
kkk
x
kkk
x
xfff
xfff
kxk
kxk
222111
222
21
2
2
122
11
1
1
,
这里,
如果在 中矩阵(称 Jacobi 矩阵) ,0 x
84
2
2
1
2
2
1
1
1
kx
k
ff
ff
xDf
非奇异,则可解出。
浙江大学研究生学位课程
《实用数值计算方法》 30
4.3.1
94
2
11
2
1
k
kkxk
k
xf
xfDf
矩阵。从而称为向量函数的JacobixDf
kkk
kkk
221
2
111
1
104
11 kk
xkk xfDfxx
于是
kxn
nnn
n
n
k
fff
fff
fff
xDf
n
21
2
2
2
1
2
1
2
1
1
1
64
维情形:的牛顿迭代公式非线性方程组
浙江大学研究生学位课程
《实用数值计算方法》 31
4.3.1
79.0
73.0
0.53.4
6.10.3
12.8
1
79.0
73.0
0.33.4
6.10.5
0.33.4
6.10.5
23,34
122,28
79.0,
73.0,
9.0,4.0
0332,
0224,
1
12
11
'2
'2
'1
'10
21'
221'
2
21'
121'
1
02
012
02
011
0
2221
21212
22122
21211
0
21
21
21
21
因此
故
再算
解:设初始近似解为
的近似解
例:用牛顿法求方程组
x
T
ff
ffxDf
ff
ff
f
f
x
f
f
浙江大学研究生学位课程
《实用数值计算方法》 32
4.3.1
0.0
000000.1,500000.0
000138.0,000174.0
999862.0,500174.0
000138.0
013826.0
070392.0
084784.0
524.3056.5
028.2112.6
524.3056.5
028.2112.6
070392.0,084784.0,
000.1,514.0
100.0,114.0
32
31
223
2
112
1
12
11111
1
12
11
001
0
xfxf
xxx
x
xxx
xf
xfxDfx
xDf
xfxf
xxx
x
T
T
T
TT
T
T
且
故
再重复做一次,得
故
重复上述过程,故
得:
浙江大学研究生学位课程
《实用数值计算方法》 33
迭代式。
的改进为克服上述三个缺点,
的逆矩阵工作量大。计算
可能出现病态。
很小。初始要求高,即
。收敛。且收敛速度阶为迭代式充分小,则且初值
非奇。矩阵当
104
3
2
2104
,,0
,1,010
k
k
k
xDf
xDf
xx
kxDfJacobi
4.3.2 牛顿法的改进
改进1 带松弛因子的牛顿迭代格式改善了
对初始值近似程度的要求。
浙江大学研究生学位课程
《实用数值计算方法》 34
4.3.2
(4-10) 中引入了松弛因子 ,有k
二次插值法求解。它可以用黄金分割法或
极值问题。是一维的求取时,按
即是牛顿法。收敛最快
收敛。时当
或
的选取满足而
1241243
,12
114021
124min
114,2,1,0
1
1
11
k
k
k
kkk
kk
k
kkkkk
xfxDfxf
xfxf
k
xfxDfxx
浙江大学研究生学位课程
《实用数值计算方法》 35
4.3.2
满足以上条件。
上的凸函数,则是显然,若
,当
,当
内满足:在设内的极小值。在
法(优选法)求函数
bax
xxxaxx
bxxxxx
bax
xba
x
,
,
,,
618.01
2112
2121
a b ax x b
图 4.13 凸函数示例
浙江大学研究生学位课程
《实用数值计算方法》 36
4.3.2
继续进行。否则,令
若成立,则
判别:
显然,
否则取取则
若
计算两个实验点
11
11
11
11
11
11
11
,2
1
?
618.0
,
618.0
382.0
bbaa
abx
ab
abab
bax
bbca
dbaa
dc
abad
abac
浙江大学研究生学位课程
《实用数值计算方法》 37
4.3.2
1 5 4
3
2
a c d b
x
2
1561803.0
,1
1
,1
2
ww
ww
wab
ad
w
w
wad
acw
ab
ac
解得故
从而
则若
根据等比收缩原则;
1a 1c 1d 1b
图 4.14 0.618 法搜索极小点过程
浙江大学研究生学位课程
《实用数值计算方法》 38
4.3.2
(2) 二次插值法求一维函数极小值:
1
3
24
5
a cb
3,2,1
2,4,1
afbfcbcfbfab
afbfcbcfbfabbx
x
cfcbfbafa
22
2
1
,,,,,
坐标:抛物线的极小点的通过
图 4.15 二次插值法进行一维极小点搜索
浙江大学研究生学位课程
《实用数值计算方法》 39
4.3.2
改进2 . 带阻尼因子的牛顿迭代格式
克服了矩阵 的奇异或病态。 (4-10) 中
引入阻尼因子 :
kxDf
k
,2,1,0
13411
k
xfIxDfxx kkkkk
的选取可以在满足 (4-12) 的前提下取很大值。
(1)改善对初值的要求
(2)当 =0时为牛顿法,收敛最快。
(3)为满足 (4-12) ,实际上需要多次试算,
工作量大。
改进 3. 修正牛顿法
尽可能减少矩阵求逆次数。
k
k
浙江大学研究生学位课程
《实用数值计算方法》 40
4.3.2
一种简单的办法是每次使用同一个 Jacobi
矩阵的逆。
2,1,010
1 kxDfxDf k令
但大大影响收敛速度。
另一种办法是若干次迭代后求一个矩阵逆:
144,1,0
,,1
,1
1,1
1,,
0,
kxx
mixfxDfxx
xx
mkk
ikkikik
kk
令
它减少了矩阵求逆,又保证了收敛。
换一个角度看,如果说它的求逆次数与
牛顿法相同 (k 次 ) ,则它的收敛阶为 m+1 。
浙江大学研究生学位课程
《实用数值计算方法》 41
4.3.2
1,1
1,2,1
0,1
0,1,
0,
kkkkk
kkkk
kk
xfxDfxxx
xfxDfxx
xx
或
154,1,0
111
k
xfxDfxfxfxDfxx kkkkkkk
迭代格式 (4-15)具有3阶收敛速度。
对一维情况, Newton 法
在几何上表现为 m步迭代
过程保持斜率 f'(xk) 不变。
如图 4.16 :
f(x)
x00,kx
kx1,kx2,kx
1kx1,1kx
2,1kx
2kx
图 4.16 m=2 的迭代效果
作为特例,取 m=2:
浙江大学研究生学位课程
《实用数值计算方法》 42
4.3.2
非线性代数方程组求解问题
1. Newton--Raphson 迭代法
2. 极值化求解。
问题的转化:
xfxfxf
xxxf
nixxxf
i
nx
ni
0
,,,min
,,2,10,,,
21
21
是一个非负函数,且设
无约束最优化问题
nibxaDx
xxxx
xxxfxf
xxxfxf
iii
Tn
n
ini
n
ini
,,2,1,
,,,
,,,
,,,
21
1
221
121
这里,
例:
浙江大学研究生学位课程
《实用数值计算方法》 43
4.4 最速下降法
方程组的主要方法。
方法是解非线性最优化极值化
4.4.1 极值化
求解
164
,,2,10,,,
1
2
21
n
ii
ni
xfxf
nixxxf
等价于求解
的零极值点。
求解 (4-16) 的极值点也是一个无约束的最
优化问题。
浙江大学研究生学位课程
《实用数值计算方法》 44
4.4.1
求解最优化问题,通常采用下降法。下降法
一般描述如下:
增加最快的方向。显然:梯度方向是函数
的梯度。称为
其中:
有
即
的初始估计。是
点。是无约束问题局部极小设
xf
x
xf
x
xfxf
xf
xfxf
xx
x
T
n
Dx
,,
0
1
0
min
浙江大学研究生学位课程
《实用数值计算方法》 45
4.4.1
下降法的迭代步骤
,迭代结束。置
,转置
则转且
若
计算
,以保证选择步长因子
,使确定下降的搜索方向
1
21
11
1
:.6
11:.5
6
.4
.3
0.2
0),(
.1
k
kk
k
kkkk
kkkk
k
kk
k
xx
kk
xfxf
xf
hxx
xfhxf
hxf
h
浙江大学研究生学位课程
《实用数值计算方法》 46
4.4.1
最速下降法取
因此
,kk xfh
,2,1,0
1
k
xfxx kkkk
kkk
k
kk
kkkk
k
k
xfxf
ii
xfxfxf
i
0min:
2
1
0
通过一维搜索确定
,再检验。不成立时,让
检验,为给定常数取
有为步长因子。它的取法其中
浙江大学研究生学位课程
《实用数值计算方法》 47
4.4.1
等高线图:
f(x)=Ci
f(x1,x2)=Ci
x
0x
1x
0h
kx
1h
1kx
kh
k
k
kkkk
k
kkk
kkk
h
hxx
h
hxf
hh
1min其大小应满足
方向步长,为沿为反梯度方向,
xf
x
kxxx
f
kx
xf
1
2
kk
kx 21 ,
kxf
kxx
f
1
kxx
f
2
图 4.17 等高线
图 4.18 偏导数示意
浙江大学研究生学位课程
《实用数值计算方法》 48
xfxf
xf
kk
k
0lim
单调下降这样,
4.4.2 讨论与改进
优点:
1 . 程序简单,每步迭代计算量少,存储省。
2 . 对于不太好的初始点 x0 ,往往也能收敛。
缺点:
最速下降法是名不符实的,一般来说,
它只有线性的收敛速度。
浙江大学研究生学位课程
《实用数值计算方法》 49
4.4.2
收敛很慢。出现锯齿形。对于一族扁椭圆,迭代
则
可以证明:若好。
这个方向并非最最快的方向,从整体看只是局部下降得究其原因,
ii
xfxfi
xfxfxf
xf
kT
k
kkk
k
0
,min
1
1
0x
1x
2xkx
1kx
x
图 4.19 锯齿形搜索路径情况
浙江大学研究生学位课程
《实用数值计算方法》 50
4.4.2
成立。序列速下降法生成的使用精确一维搜索的最
对正定二次函数
或
从而
故
而
所以
则证明:令
k
TT
kT
k
kT
k
kT
k
kT
k
kxxn
kxxkxxxx
xx
kkk
kk
x
cxbAxxxf
xfxf
xfxf
hxf
hxf
hf
hf
hf
d
xdfd
xdf
hxfxf
hxf
nk
kkk
k
2
1
0
0
0
0
min
1
1
1
1
21
01
1
21111
1
浙江大学研究生学位课程
《实用数值计算方法》 51
4.4.2
法收敛慢。严重。故此时最速下降偏离指向极小点方向椭圆扁长,负梯度方向
时,的椭圆。当离心率很大等高线是离心率为
为例:
中的正定二次函数以
偏长的情形。几何上可解释为等高线,收敛速度越慢。越接近于时,当
的接近程度。和可见,收敛速度依赖于的最小、最大特征值。分别为这里
其中:
b
a
ba
baq
b
aA
baxf
R
cxf
qMm
mM
AMm
xfxfm
c
mM
mMq
cqxx
xfxfqxfxfk
k
kk
2
22
22
2
2
2
22
2
21
2
2
0
2
2
0
10
01
2
1
:
1
,
1
浙江大学研究生学位课程
《实用数值计算方法》 52
4.4.2
一般来说,开始几步下降速度
较快,但越靠近极小值点越慢。
改进:
elsexf
iikifxxh
khxx
Par
Newton
k
kkk
kkkk
,2,1,3{
,2,1,0
tan.2
.1
2
1
其中
法
法。后改用前几步用最速下降法,
浙江大学研究生学位课程
《实用数值计算方法》 53
4.4.2
最速下降法算法框图:
0,0 误差控制取初值 nRx
?00 xfg
00,0 ghk
kkk
kkkk
hxfxf
hxx
01
1
min
:求一维极值得
?11 kk xfg
11 kk gh
1kk
停yes
0xx 解
停yes
1 kxx解
图 4.20 最速下降法算法框图
浙江大学研究生学位课程
《实用数值计算方法》 54
4.4.2
表数据:重复以上过程,可得下
故
求一维极值得
设
解:
用最速下降法求取
例:设
T
Rx
T
xfxx
xfxfx
xfxf
xfx
xf
17
38,
17
26
175
26180306
6
12,
23
min,4,2
22
1
2
3
0001
0
200
012
21
0
12122
21
2
k
0 -2 4
1 1.52941 2.23529
2 0.941770 1.05882
3 1.01038 1.02422
4 0.998847 1.00115
5 1.00020 1.00048
6 0.999977 1.00002
7 1.00000 1.00001
8 1.00000 1.00000
1 2 2
1
0x
1x2x
3xx
图 4.21 搜索路径示意
浙江大学研究生学位课程
《实用数值计算方法》 55
4.5 共轭梯度法 ( Conjugate Gradient Methods )
4.5.1 共轭方向
A
B
D
C
O
0h
0h
0
0
||
,
hCDOCD
hBA
D
点且过
的两个切点给定方向椭圆中心
为共轭方向。与
为共轭直径。与则
CDAB
CDAB
图 4.22 共轭方向
浙江大学研究生学位课程
《实用数值计算方法》 56
4.5.1
共轭。关于这种关系称则有那么若令方向
由下式决定
并且及两个初始点给定方向
其中
维二次函数
引理:对称正定为凸函数
:时的二次函数可表示为“ ”共轭 关系:对二次函数来讨论这种
Ahh
Ahhxxh
hxfxf
hxfxf
hxxhxx
xxh
AA
cxbAxxxfn
AxxAxf
cxbAxx
cbbaa
aa
cbb
aaaxf
n
T
T
TT
T
TT
,,
0,
min
min
,
,,
0
2
1
0
2
1
2
1
2
1
2
1
2
10
01111
000
1
000
1
01010001
000
2
121
2
1
2212
121121
2211
22222112
2111
浙江大学研究生学位课程
《实用数值计算方法》 57
4.5.1
0
0
0
0
0
2
1
2
12
1
01011
011
011
01
01
11
1
111
2211
2211
2
222222
1121122
111
AhhAhxx
hxxA
hxfxf
hxf
hxf
bAx
b
b
aa
aa
xf
baaaf
cbbb
a
aa
aaaxf
TT
T
T
T
T
nnnnn
n
inniiii
nn
nnn
nn
nn
所以
故
又
故
所以
证明:
浙江大学研究生学位课程
《实用数值计算方法》 58
4.5.1
0h 0h
1x1x
1h
0x0x
cbxAxxxf TT 2
1
0,x
xf
2
1
图 4.23 二次函数的共轭方向
图 4.24 二次函数
浙江大学研究生学位课程
《实用数值计算方法》 59
4.5.1
0)(
0
,,2,11
,,2,1,
,,2,1,
,,,
,,1,;02
,01
,
,,,
2211
2211
21
21
21
21
mmTi
mm
i
i
i
m
jTi
T
nn
nm
hhhAh
hhh
mih
mih
mihIA
Ahhh
mjijiAhh
Ahh
Ahh
ARRA
Rhhh
得
事实上,由
线性无关。:共轭向量组性质具有以下性质:共轭向量组
是共轭的特殊情况。交的向量。因此,正交
是一组正时,显然,当
共轭的向量组。是则称
若
共轭的;是和则称向量若
为对称正定。
定义:
浙江大学研究生学位课程
《实用数值计算方法》 60
4.5.1
bAxxf
nkhxf
fxxxf
hxfxf
hhh
nih
mi
miAhhA
miAhh
mih
kT
k
nn
kkk
ni
i
i
iTi
iTii
i
2
,,2,10
1
0
min
,,,
,,2,1.2
,,2,10
,,2,10
,,2,10
,,2,1,
1
11
01
2
一维搜索满足:证明:
为凸若和有
为搜索方向的搜索方法向量
共轭,则相继以设性质
可知的正定性。即由
共轭,故有因为
浙江大学研究生学位课程
《实用数值计算方法》 61
4.5.1
毕为凸函数,故又设
,得由性质
的共轭性。得及,由
.
01
,,2,10
3
,,2,121
1
1
111
111
1
1
111
xxf
xf
nj
hAhAhxf
hAhAhxf
hAhxf
hxf
nih
Ahxf
xxAxf
AxxfAxxf
n
n
jTjj
Tnn
Tj
jTnn
Tnn
Tn
jTnn
Tn
jT
n
i
kkk
kkk
kkkk
浙江大学研究生学位课程
《实用数值计算方法》 62
4.5.2 共轭梯度法 Conjugate Gradient Method
利用共轭方向,对二次型求极值问题
可以得到 n步收敛的结果。
现在的问题是:
1. 如何构造 n 个共轭方向?
2. 对一般的非线性函数 f(x)怎么办?
3. 由于舍入误差等影响, n 次迭代不收敛
时怎么办?
如下:和定义向量序列
为任意向量
阶对称正定矩阵是设
ii
T
hg
g
bxAxxxf
nnA
0
2
1
浙江大学研究生学位课程
《实用数值计算方法》 63
4.5.2
双正交化方法。一般称其为共轭向量序列的方法。
和一是构造一正交向量序列故
可以证明:
因此一共轭正交
使选择
SchmidtGram
njijihAh
jigg
hAh
AhghAhAhg
Ahg
ggAhggg
AhAh
gg
hgh
Ahgg
hg
jTi
jTi
iTi
iTi
iiTiii
Ti
iTi
iTi
iiTiii
Ti
iTi
iTi
ii
iiii
iiii
184,174
194,00
0
184
0
0
0
,,
174
11
1
1
11
1
00
浙江大学研究生学位课程
《实用数值计算方法》 64
4.5.2
毕而
,由
事实上,
引理:
证明:
改写,把公式为尽可能不使用矩阵
iTi
iTi
iTi
iiiTi
iTi
iTi
iTi
iTi
iTi
iTi
i
iTiii
Tiiiii
Tii
Ti
iTiii
Ti
Tii
Ti
iiiTiii
Ti
iiiTii
Ti
iTii
Tiii
Ti
iT
iiiiTi
iTi
iTii
Ti
iTi
iTi
i
iTi
iT
ii
iTi
iTi
i
Ahh
hg
Ahh
hhg
Ahg
gg
gg
gg
Ahh
Ahg
AhhAhgAhgggg
Ahggg
gghg
hghg
hgghg
AhgAhhAhg
AhhgAhh
hg
AhhAhg
Ahh
hg
gg
ggg
gg
gg
A
11
111
1
111
010101
2121111
1111
11
11
1
1111
174
0
0
204
184
浙江大学研究生学位课程
《实用数值计算方法》 65
4.5.10
kTk
kT
kk
kTk
kTk
k
kkkk
kTk
kTk
k
kkkk
ii
i
iTi
iTi
i
iTi
iT
ii
iTi
iTi
i
gg
ggg
gg
gg
ghhgh
Ahh
hg
hxx
k
xfg
h
Ahh
hg
gg
ggg
gg
gg
1111
0011
1
1111
234
2,1,0
184174
224
214
共轭梯度法:
为时,下面的极值算法称当令
是共轭的,并且构成的向量,由
浙江大学研究生学位课程
《实用数值计算方法》 66
4.5.2
kkk
kkkk
i
Ahg
bhxAg
g
xfghx
1
0000
1184
,
式:的第满足容易说明:这样定义的其中,初始近似为
0
0
min
min
1
1
1
kTk
kT
k
kk
k
k
gg
xfxf
hxf
xf
即
时,
的选取用一维极值当
方法。式子时,叫做
个取第方法,而方法或称为一个等式时,叫做
取第中的当共轭梯度法
RPRibierePolak
RF
evesFletcher
k
k
2
Re
234
浙江大学研究生学位课程
《实用数值计算方法》 67
4.5.2
共轭梯度法是从梯度向量出发构造
共轭向量。
* 由于误差积累等因素,对二次型,迭代
n 次也未能达到极小点。
* F-R 方法和 P-R 方法的区别在于它们对二
次型是一样的。而对一般函数用 P-R 方法
可能更合适。
* 共轭梯度法具有二次收敛速度。
那么对一般的函数的共轭梯度法
又是怎样的呢?
浙江大学研究生学位课程
《实用数值计算方法》 68
4.5.2
在极小值点附近进行二次逼近:
Axxbxc
xxxx
fx
x
fPfxf
T
jijiP
jiiiP
i
i
2
1
2
1
,
2
kkkkk
kxx
k
Pji
ij
hxfhxf
f
xf
A
xx
fA
PfbPfc
ji
0
''
2
min
:,
.234
244
我们采用一维搜索求避免求
的二阶偏导数。为因此需要计算
时要用到知,求由共轭梯度法
其中
浙江大学研究生学位课程
《实用数值计算方法》 69
4.5.2
但是求导数 f(xk) 是必须的。
另外,我们总假定 f(x) 在极值点附近
性质足够好,满足各种要求。
对一般函数 f(x) ,共轭梯度法 (4-23) 有
限步收敛几乎是不可能的。如果迭代 k 步
达到精度( kn ) , 则 xk就作为 x* 的近似。
当经过 n步迭代仍不可能满足要求时,令
再进行第二次循环。
但是,实际计算中,不一定迭代
k=n 步才进行“重置”。
nn xfgkxx 000 而
浙江大学研究生学位课程
《实用数值计算方法》 70
4.5.2
(1) 在极小点附近是一个高度偏心的二次
函数。
则进行( m+n )次迭代(1 m<n )就
收敛了。而进行 k 次迭代( k n )就
重置的话,有可能会不收敛。
(2) 在极小点附近或稍远处不是二次函数。
此时称“扭曲”现象。
则 留有非二次函数的痕迹,故
可能对收敛很有害。此时最好重置。
kkh
浙江大学研究生学位课程
《实用数值计算方法》 71
4.5.2
共轭梯度法 Conjugate Gradient Methods
算法框图0,0 误差控制取初值 nRx
?00 xfg
00,0 ghk
kkk
kkkk
hxfxf
hxx
01
1
min
:求一维极值得
?00 xfg
?nk
kkkk
kTk
kT
kk
kTk
kTk
k
hgh
gg
ggg
gg
gg
11
1111
1kk
10
10
k
k
gg
xx
停yes
0xx 解no
停
1 kxx解
yes
no
noyes
图 4.25 共轭梯度法算法框图
浙江大学研究生学位课程
《实用数值计算方法》 72
4.5.2
(3) 如何判别是高度偏心的二次函数还是
扭曲的函数呢?
启发性的办法是:
对一般非二次函数,若 x0离 x* 较远,
则迭代 n 次不收敛时,就重置。但以后不
再重置。
对既高度偏心,又严重扭曲的函数,
则经常性的重置是有好处的。
52102010
4110
121
22
212
41
21
2212
xxxxxxxf
xxxxf
即:
函数
例如:
浙江大学研究生学位课程
《实用数值计算方法》 73
4.5.2
它在点( 1,1 )处有极小值 4.
其图象为:
1x
2x
图 4.26 函数等高线图
浙江大学研究生学位课程
《实用数值计算方法》 74
4.5.2
表 4.3 最速下降法计算结果
X1 X2 f X1 X2 f
-1.200-0.993-0.793-0.663-0.552-0.388-0.3060.6330.6250.6540.648
1.0001.0710.4930.5380.2180.2750.0370.3610.3820.3920.411
10.7768.0457.4036.8626.4836.0815.7394.1514.1414.1324.125
0.6720.6670.6890.6830.7030.6980.7160.7110.7280.724
…
0.4200.4370.4440.4600.4660.4810.4870.5000.5050.517
…
4.1184.1124.1064.1014.0964.0914.0874.0834.0804.077
…
浙江大学研究生学位课程
《实用数值计算方法》 75
4.5.2
表 4.4 各种重置循环的共轭梯度法计算结果
A B C
x1 x2 f x1 x2 f x1 x2 f-1.200G-.993-.657-.409-.241-.112-.0030.010.191.287.390.504.636.792.986
1.2491.418
1.0001.071.275-.073-.227-.302-.335-.342-.327-.290-.226-.125.029.267.649
1.3011.943
10.7768.0456.9926.5646.3556.2246.1296.0485.9735.8935.8025.6895.5425.3405.0454.6024.186
-1.200G-.993-.657-.409-.241G.059.289.582.767
G.792.928.965.969
G.9691.0001.000
1.0001.071.275-.073-.227-.100.008.235.628.616.834.935.937.938.998.999
10.7768.0456.9926.5646.3554.9794.5654.2834.0704.0444.0134.0014.0014.0014.0004.000
-1.200G-.993-.657G-.49-.132G.837.833
G.842.972
G.9651.000
G1.000
1.0001.071.275.346-.098.681.688.694.926.930.999.999
10.7768.0456.9926.3325.4164.0304.0284.0274.0044.0014.0004.000
浙江大学研究生学位课程
《实用数值计算方法》 76
4.6 牛顿过程及变度量法
4.6.1 Newton--Raphson 迭代
把函数 f(x) 在第 k 次近似解 xk 附近进行
Taylor展开:
xxf
xf
xxJxx
xxxfxfxf
kkT
k
kT
kk
之极小点:求
记2
1
浙江大学研究生学位课程
《实用数值计算方法》 77
4.6.1
考查下例
可能奇异。收敛到鞍点。有些问题可能发散,或
敛。是二次函数,则一步收若收敛阶为收敛快。
迭代格式。这就是
即
k
kkkk
kkkk
kkkk
xi
i
Jiv
iii
xfii
i
raphsonNewton
xfJxx
xfxJxJ
xxJxfxf
nif
xf
.2
0
,,2,10
11
浙江大学研究生学位课程
《实用数值计算方法》 78
4.6.1
稍有增加。出发的第一步,函数值从极小点支配。
的二次函数受到极小点,因为其附近敛更接近鞍点,但它却收虽比
小点;受极小点影响收敛到极鞍点;在鞍点的影响下收敛到
所示。见图出发的几条极小化路径方法分别从应用
设
Civ
ACiii
Bii
Ai
CBARaphoonNewton
xxxx
xxxxxxf
27.4
,,
442
92
22
2121
22
212
21
41
浙江大学研究生学位课程
《实用数值计算方法》 79
4.6.1
A
C
B
1x
2x
图 4.27 初值对 Newton-Raphson 方法的影响
浙江大学研究生学位课程
《实用数值计算方法》 80
4.6.1
下降法避免收敛到极大点。
敛可能性。加快收敛速度和增加收其优点有:
极小化。使这里
进是:这个方法一个有效的改
一个鞍点是
该函数的极值点为:
ii
i
xf
f
f
kk 1
493.1,6117.0
5134.0028.1,053.1
9855.0854.3,941.1
kkkkk xfJxx
11
浙江大学研究生学位课程
《实用数值计算方法》 81
然而这个方法的致命弱点是要计算
Jk-1 。 4.2提供的办法,即迭代若干次修
改一次 Jk-1 ,是一种方案。但不是最好的。
4.6.2 变量的尺度变换
为改变函数的偏心程度,从而改变极
小化方法的收敛性质,采用变量替换是个
很好的措施。
2
1
2
1
2122
21
44
4144
84144
x
x
x
x
xxxxxfT
例:
浙江大学研究生学位课程
《实用数值计算方法》 82
4.6.2
多。的极小化方法要稳定得求
此的偏心程度小得多。因比
的等高线图,显然和比较
得:
作变换
xf
xfxf
xfxf
x
x
x
x
xxxx
xxfxf
x
x
x
x
T
~
~
~
~
~
16
16
11
~
~
~~3
1~~
~,~~
~
~
2
10
012
1
2
1
2
1
212
22
1
21
2
1
2
1
浙江大学研究生学位课程
《实用数值计算方法》 83
4.6.2
1x
2x
2~x
1~x
图 4.28 函数进行尺度变换的效果
浙江大学研究生学位课程
《实用数值计算方法》 84
4.6.2
尺度变换目的是把函数的偏心程度降
到最低限度(它放大或缩小各个坐标),
但并不能完全消除偏心问题。
把尺度变换应用于各种算法,都有一
定效果。
一般地
IATTT
A
xATTx
cBxAxx
nnT
xTx
T
TT
T
使
是正定的,则若
则二次项为
考虑极小化二次函数
阶矩阵。是非奇异的这里
~~2
12
1
~
浙江大学研究生学位课程
《实用数值计算方法》 85
4.6.2
即变换后的二次函数偏心率为0,它是圆。
它用最速下降法一步可以达到极小点。
现在希望直接处理原来的函数,而定
义一个算子。用它产生通过极小点的向量。
考虑这样的T:
1
1
ATT
IATT
TAT
IATT
T
T
T
T
从 Newton--Raphson 过程
kkkkk xfJxx
11
浙江大学研究生学位课程
《实用数值计算方法》 86
4.6.2
变尺度法的基础。的方法思想将是一种收敛很好量变换的不过由此引出的有关度
甚至是奇异的。这是困难的。有时是正定的。实际上但是我们要求
。就可以显著减小偏心率或
如果得到近似的因此我们不用求
,这个向量就是可知,对二次函数来说
k
k
T
k
kT
kk
J
J
TTT
J
xfTTxfAh
1
1
1
,
,
浙江大学研究生学位课程
《实用数值计算方法》 87
4.6.3 变尺度法
—— DFP 方法
—— BFGS 方法
常用的度量是
通过极小点。对于正定二次函数,它
记
方法的搜索方向是:而
方向用这种度量得最速下降
kkkk
kk
n
ii
T
xfAxfJh
RaphsonNewton
xfh
xxxx
11
1
2
2
浙江大学研究生学位课程
《实用数值计算方法》 88
kk
T
k
kT
k
kT
kkk
T
xfh
xxx
xf
xfxf
Oxfxf
xfxfxf
xOxxfxfxxf
而下降方向是
量是故最速下降法采用的度
对充分小的
量最速下降法所采用的度
,
,
'''
2
2
2
2
2
2
4.6.3
浙江大学研究生学位课程
《实用数值计算方法》 89
4.6.3
下的最速下降法。
就是在新度量意义因此,
由于
是正定的,引进度量设
kk
k
k
T
k
k
T
k
k
T
k
kT
kkkk
T
xfAh
xfA
xfAAxfA
xfAAxfA
xfAAxfA
xfAxfxfxfAxf
Axxx
A
1
21
11
11
11
11
2
2
12
1
2
1
的最速下降法。牛顿法就是在新度量下
浙江大学研究生学位课程
《实用数值计算方法》 90
4.6.3
度和性质。
速,并且保持一定的收敛来代替
近似度量简单的说,我们用一个)
它也叫变矩阵法(
变化的。另外,是随的度量矩阵
度量变度量法的名称是因为
。度,又不要计算
顿法的收敛速而变度量法既保持了牛
。及其逆要计算二阶偏导数矩阵
速度,但是它牛顿法具有很好的收敛
1
1
12
1
1
kk
kk
kkTkk
k
k
JH
Methods
MatrixVariable
xJ
xJxx
J
J
浙江大学研究生学位课程
《实用数值计算方法》 91
4.6.3
iikk
v
HHH
Hiv
hxx
hxfhxfiii
gHxfHhii
kHRxi
HHH
H
kkk
k
kkkk
kkkkkk
kkkkk
n
kkk
k
转:不满足结束条件时
令
计算
令
求
记正定矩阵取
算法的步骤:
修正值
的产生又比较方便:而
1
,
,
min:
;0,,
1
1
1
0
00
1
浙江大学研究生学位课程
《实用数值计算方法》 92
4.6.3
使之满足上面等式。构造
,故其中
由中值定理,
记拟牛顿性质
性,稳定性。拟牛顿性质,二次收敛
的原则构造
1
1
1
2
1
1
0
,
,
2
k
kk
kk
kkkk
kkkkkkk
kji
kkk
kkkkk
k
H
xgA
xhxA
xghxgggg
Jxx
fAxxx
gggxfg
i
H
浙江大学研究生学位课程
《实用数值计算方法》 93
4.6.3
k
kkk
kkTkkkk
kk
n
n
kkk
xfxfH
gHgxfxf
kxfxf
iii
AH
Ahhh
n
ii
DFP
xgH
对适当小的正定时,总有故当
事实上,
即稳定性:
轭的向量组,且共构成到极小点,这就要求步达法至多用于凸二次函数时,算
二次收敛性条件此式称为拟牛顿方程
1
1
1
11
21
1
2
1
,2,1,0
,,,
浙江大学研究生学位课程
《实用数值计算方法》 94
4.6.3
kkk
kkTk
kTk
TkT
k
kk
kTkk
Tk
kTkkkk
Tkkkk
Tkkk
Tkkk
kkkkk
kkkk
kkk
k
k
gHg
Hgq
gx
x
q
gqg
gqgHgxgH
qgHxH
gHxgH
xgHH
DFPHHH
DFP
H
H
,
,
1
:3
1
可取为:这样的
即可。只要求
令
故
条件:满足要求
方法。变度量方法。这里介绍
种方法的不同,形成了各构造
具体构造
浙江大学研究生学位课程
《实用数值计算方法》 95
4.6.3
谢如彪,姜培庆《非线性数值分析》,
陈开周《最优化计算方法》,详细证明可参考:
正定二次收敛性可以证明:
变度量算法迭代公式。这就是
得代入
2
1
,3,2
1
kHii
i
DFP
gHg
HggH
gx
xxHH
k
kkTk
Tk
Tkkk
kTk
Tkk
kk
浙江大学研究生学位课程
《实用数值计算方法》 96
4.6.3
变尺度法 Variable Matrix Methods 算法框图:
0,0 误差控制取初值 nRx
?00 xfg yes 停
0xx 解no
IHk 0,0:
kkk
kkkk
hxfxf
hxx
01
1
min
:求一维极值得
kkk gHh
?11 kk xfg yes停
1 kxx解
?nk no
yes
10
10
n
n
gg
xx
no
kTk
Tkk
kTk
Tkk
kk
kkk
kkkkkk
ggx
xxHH
gH
gggxxx
1
11 ,,
1kk
图 4.29 变尺度法算法框图
浙江大学研究生学位课程
《实用数值计算方法》 97
4.6.3
891241
241385
986
1
921
2149
58
1
12
24
17
1
10
01
1790
17210
61712
12176
1730
1760
41738
21726
1712
176
1738
172617
5
212264212
642
1212
2
3
6,12
6,12
,4,2,
22
1
2
3
1
0000
0
0
111
0
2200
000
00
00
12122
21
H
ggH
g
x
xfgx
hxf
gHh
gxf
xfxIH
xf
T
T
T
故
故得按精确一维搜索法不难
而
记首先计算
之极小点。求取
例:设
浙江大学研究生学位课程
《实用数值计算方法》 98
4.6.3
1
12
111
11
1
2
1
111
31
11
2
1
833357
357153986
441189
18981
306
1
744
366
986
1
1712
176
891241
241385
986
1
1712
176,
1721
179
17381
17261
1
1
0
2
31
11
2
1
0
0,
0
2,
01
13
,2
1
1
1
2921
299
17
29
1738
172617
29
2921
299
1712
176
891241
241385
986
1
A
HH
gH
gx
bA
cbA
cxbAxxxfxf
xf
x
gHh
TT
继续计算下去,则
其极小点为
则
写成事实上,将
的极小点。不难验证此即
故作一维搜索,得
再循环一次:
浙江大学研究生学位课程
《实用数值计算方法》 99
4.6.3
,,,,
5
1
4
1
kkkk
kTk
kTk
kTkkkkk
kTkkkkk
Tkkk
Tkkkk
dcba
gv
gu
gHdxcv
gHbxau
vgHuxHH
Huang
个参数这个公式含有
且满足:
其中:
公式:族是一般的变度量算法主要
变度量算法的校正公式
浙江大学研究生学位课程
《实用数值计算方法》 100
4.6.3
数值稳定性最好的。它是当前变度量方法中
公式:即得重要的,,令
族公式。即,令
公式。即,令
较重要的三种公式是:
个独立参数个关系式,故有但有
kTk
kkTk
k
kTk
kTkk
Tkkk
Tkkk
kk
kkk
kk
kk
gx
gHg
gx
HgxxgHxxHH
BFGS
dcbiii
Broydencbii
DFPbci
1
,01
,1
,01
32
1
浙江大学研究生学位课程
《实用数值计算方法》 101
4.6.3
方性 法 质
牛顿法 DFP(拟牛顿法) 共轭梯度法(重置初值)
二次终止性质
一步终止(=1)
n步(精确一维搜索)终止
n步(精确一维搜索)终止
收 敛fC(3)且有界凸,x0充分接近 x*,k
1
fC(3)在 L(x0)上有界凸,L(x0)有界(精确一维搜索)
fC(3)在 L(x0)上有界凸,L(x0)有界(精确一维搜索)
局部收敛性
同上二阶收敛
同上,且f(x)是Lipschitz连续。超线性收敛。
同上,超线性收敛
优缺点
要计算二阶偏导数计算量大。n大时存贮量亦大
计算量少,程序简单;
n大时存贮量也大
计算程序简单,
存贮量相对较小
称水平集。注: ,00 xfxfRxxL n
表 4.5 各种方法比较
浙江大学研究生学位课程
《实用数值计算方法》 102
4.7 直接法直接法( Simplex, Powell )
大量的目标函数是很复杂的,有时连解析式都没有,因而它的导数
f(x)
很难求,有时甚至不存在。
4.7.1 单纯形法 Simplex Method
• Nelder--Mead (1965)提出这种简单的方
法。它不需要求导数(梯度)
• 对变元不多的情况是有效的。
• 程序简单。
浙江大学研究生学位课程
《实用数值计算方法》 103
4.7.1
单纯形的思想是在 n 维空间的 (n+1) 个点
( 它们构成单纯形 ) 上引进函数值比较。丢弃
最坏的点并代之以新点。它们仍然构成单纯
形。以此逐步逼近极小点。
下:则单纯形法迭代过程如
它满足的一个排列是设
个单位向量为
定义初点选取
单纯形的选取:
1,,1,0
,,,1,0
,,2,1
,
,,1,0
1
0
0
nixfxf
niPx
nu
niuPP
P
niP
ii
ii
i
iii
i
浙江大学研究生学位课程
《实用数值计算方法》 104
4.7.1
)几何意义:(
是反射系数,一般
)(
的反射点关于求
形心,令
排列按
2
10
1
1
,,,
1
1
1
0
110
n
xxxxxP
Pxx
xn
xii
xfxfxxxi
nnn
nn
n
ii
iin
1x
x
0x2x
3P
图 4.30 单纯形法中的反射
浙江大学研究生学位课程
《实用数值计算方法》 105
1x
2x
x
0x
3P
4P
4.7.1
)几何意义:(
是延伸系数,一般
:方向的延伸点求沿则延伸。
的大小满足接和若
2
21
)1(
;,,,,)
,,,
111
21
101
1110
n
xPxPxP
PP
xxxPa
PfPxxx
nnn
nn
nn
nnn
图 4.31 单纯形法中的延伸
浙江大学研究生学位课程
《实用数值计算方法》 106
4.7.1
)
;;,
5.010
5.0
:
;,,,,,)
;;,,,,)
;
22
112
2
1110
1110
1
212
e
iPxxfPf
PxxPxP
Px
xPxxxc
iPxxxxxb
i
Px
PxPfPf
nnnn
nnn
n
nnn
nnnn
nn
nnnn
转否则
转则若。为收缩系数,一般
方向的收缩点求沿
则收缩。
;转则
转
否则则若
1nP
浙江大学研究生学位课程
《实用数值计算方法》 107
4.7.1
2x
3P
x
1x
0x
4P
'4P
图 4.32 单纯形法中的收缩
e
iPxxfPf
xxxxxP
Px
Pxxxd
nnnn
nnn
nn
nn
否则转
转则若
如图方向的收缩点求沿
则收缩
;,
2
1
32.4,
;,,,,)
'2
'2
'2
'2
110
浙江大学研究生学位课程
《实用数值计算方法》 108
4.7.1
e) 缩小边长
i
ni
xxxxxx
xxnix
iii
ii
转
令
缩小一半:沿
,,2,12
1
2
1
,,1
000
0
1x
2x 0x
'1x
'2x
1nP
图 4.33 单纯形法中的缩小边长
浙江大学研究生学位课程
《实用数值计算方法》 109
4.7.1
单纯形法( Simplex )框图:0,,1,0,0 ;任取 niP i
niuuPP Tiiii ,1,0,,1,,0,0,0
0xfxf n
nixfxfPx iiii ,1,, 1 并排列:
nn
n
ii xxxPnxx
1
1
0
; 反射
1nPf判别
2nP延伸得 2nP收缩得 2nP收缩得
12 nn PfPf nn xfPf 2 nn xfPf 2
1 nn Px ix缩小边长,求
2 nn Px
解 x*x0
y
n
b
dca
n
yyy
n
图 4.34 单纯形法计算框图
浙江大学研究生学位课程
《实用数值计算方法》 110
以上的迭代过程直到满足精度为止。
精度:
则 x0 作为所求的近似解。
4.7.2 Powelll 方法
Powelll 方法是一种不依赖于目标函数
梯度的直接搜索法。
它逐步构造共轭方向并作为搜索方向,
因此 Powell 方法也是一种共轭方向法。
它的基本过程如下:
n
ii xfxf
0
20
浙江大学研究生学位课程
《实用数值计算方法》 111
4.7.2
则作为搜索方向,取
取两单位标准向量例,设
,2,2
1
0
0
1
,2
0
21
2122
21
Tx
ee
xf
k HkT
k xTk+1 F(xk+1)
012
(0,1)(1,0)(0,1)
-1-1.75
-0.875
(2,1)(0.25,1)
(0.25,0.125)
70.8750.109
0 .8 75
它必然指向极小点。作为搜索方向故若取
,
即:共轭的,是
与可以发现,
13
213
01
0
21
141125.0225.0
xxh
A
exx
5.0 0.1 5.1 0.25.00.15.1
1.0
0.1
1x
0x
2x
3x
1
2
图 4.35 Powell 搜索路径
表 4.6 Powell 方法解题过程
5.02.5
浙江大学研究生学位课程
《实用数值计算方法》 112
4.7.2
nn
nn
nn
ii
iiii
iiii
i
ii
i
uPfPf
uPP
PPu
niuu
uPfPf
uPP
P
uPni
ni
un
P
00
0
0
1
10
1
1
0
min
,3
1,,2,1,2
min
:
,,,2,11
,,2,1
0,,0,1,0,,0
使得求
令
值搜索,令极值点为
方向作一维极小沿对
个单位方向并且令
给定一点
浙江大学研究生学位课程
《实用数值计算方法》 113
4.7.2
Powell 方法过程图示:0
0P nu
0P 1u1P
2u2P
3u3P 4u
1iP
iu
iP3nP 3nu
2nP 2nu1nP 1nu
nP nu
10P
01 PPu nn
11u 1
1P12u 1
2P13u 1
3P14u 1
1iP1iu
1iP
13nu1
3nP1
2nP1
2nu11nP
11nu1
nP1nu
10
12 PPu nn
1nP
10
1 nnn
nn PPu
nP0
nu1 nP1
nu2 nP2
nu3 nP3
nu4 niP 1
niuniP
nnu 3n
nP 3
nnu 2n
nP 2
nnu 1n
nP 1
nnun
nP
,2,1
;1,,2,1,11
j
niuu ji
ji
图 4.36 Powell 方法计算过程图示
浙江大学研究生学位课程
《实用数值计算方法》 114
4.7.2
循环上面 (1)--(3) ,直至 P0 点函数值不再减
小为止。
当循环 k 次 (kn) 以后, un 与它前面的 k-1个
向量 un-k+1,,un-1 共轭。因此对于二次函数,
理论上只要循环 n 次即可求得极小值。即具
有二次收敛性。事实上,因为
P0 和 Pn 是沿相同方向 un 求得的极小值,
所以 PnP0 与 un 方向共轭。
nP 11nP
10P
1nP
nu nu
图 4.37 共轭方向
浙江大学研究生学位课程
《实用数值计算方法》 115
4.7.2
方法Powell
n 22
0P
12P
22
12u
12
12u
11P
11
11u
10P
212u1
2P
2P
22u
0P11u
00P
2u
图 4.38 Powell 方法计算过程示意
浙江大学研究生学位课程
《实用数值计算方法》 116
4.7.2
果为:方法计算的第一循环结用
,搜索方向取
极小点为它是一正定函数,整体
例:设
Powelleu
eueuP
P
xf
T
T
,
,,2
1,1,
2
1
0,0,0
303
2021
010
2321
2132
2321
k uk0 Pk
0 f(Pk0)
0123
e1
e2
e3T
T
T
T
18
5,
3
1,
2
1
2
1,
3
1,
2
1
2
1,1,
2
1
2
1,1,
2
1
8142
32
2
2
。不能替换进行。故
的平面上以后的搜索肯定在
线性相关。,,显然
索方向应是据算法,第二循环的搜
于是
103
1
13
12
11
13
12
11
03
2
1
,9
2,
3
2,0,1,0,0,0,1,0
9
2
3
20
ePP
uuu
uuu
PP
TTT
T
表 4.7 Powell 方法第一次循环计算结果
浙江大学研究生学位课程
《实用数值计算方法》 117
xf
x0P 1P
1x 0x 2P 3P
0x 1x
1x 0x 3P 2P
0x 1x
3P 2P1x 0x
1x 0x
图 4.39 单纯形法求一维极值示意图( 1 )
a
d
c
4.7.2
浙江大学研究生学位课程
《实用数值计算方法》 118
xf
x a
d
d
d
e
a
0P 1P
1x 0x 2P 3P
0x 1x
1x 0x 2P 3P
0x 1x
1x 0x3P 2P
0x1x
1x 3P 0x 2P
1x 0x
1x 3P 0x 2P
1x 0x 图 4.40 单纯形法求一维极值示意图( 2 )
4.7.2
浙江大学研究生学位课程
《实用数值计算方法》 119
4.7.2
但是,实际计算中对二次函数也不能保证
n步内达到极小值点。
因为每一循环都用 Pn--P0“挤掉” u1, 所以
新的向量系 ui(I=1,…,n) 有可能线性相关,
例如,某一循环中,如果 1 0则
这样, u2,u3,…, Pn--P0 是线性相关的。
当发生这种情况时,以后的搜索就在
n 维的子空间中进行。最后的解就不正确。
解决的办法是 Pn--P0 不是挤掉 u1 。而是挤掉
ur, 而 r 0。一般取最大下降方向( the
Direction of the Largest Decrease)
02
0 PPuPP n
n
iiin
平均方向
浙江大学研究生学位课程
《实用数值计算方法》 120
4.7.2
这是因为最大下降方向 ur已经在平均方向
Pn-P0 中得到最充分的体现。
这一简单的思想有两种例外情况:此时
并不修改方向。
0max,0
2
11
1
0
00
iini
rr
n
nn
ffffff
PPff
Pff
Pff
令:
fff
ffffff
PP
nff
E
nEn
n
E
20
200
0
0
222
,1
已不是好的方向。个方向,因为保持原来的
如果:
浙江大学研究生学位课程
《实用数值计算方法》 121
4.7.2
因为下列两个原因之一成立:
a) Pn-P0 方向的下降主要不是因为 f.
b) Pn-P0 方向上二阶导数很大,这表明在
Pn 附近有可能有极小点。
xf
0f
f nf1f
Ef0P
nP
EP
1P
图 4.41 函数变化的影响
浙江大学研究生学位课程
《实用数值计算方法》 122
4.7.2
图 4.42 修正 Powell 算法框图: 0
0000
0 ,0,, PffkeuP ii 及置初值
ki
ki
ki
ki
ki
ki
ki
ki
ki
ki
ki
uPP
uPfuPf
Pni
1
11 min
,,2,1
使:
和进行一维搜索,确定对
knE
knn
kkn
kn PffPffPPP 101 ,2 及计算
ki
ki
ni
kr
kr PfPfPfPfffr 1
11 max,使和求
fEf0
fffffffff EnEn 20
200 22
ki
ki uunrinr 11,, 置时,对当
kn
kn
kn
k
kn
kn
kn
kn
kn
ki
kkn
kkn
kn
uPP
uPfuPf
PPPPu
10
1
100
min
,
并置
使:
并确定置
kPff 00 求
收敛准则 1kk
P*= Pkn, 计算结束 Y
N
Y
YN
N
浙江大学研究生学位课程
《实用数值计算方法》 123
4.7.2
010.0
205.0
000.1
200.1
99.0
995.0
1
0
1
21
872.152.2421.20
)21.20980.22.24(872.15980.322.242
2.24872.15
1
21.2099.31.24
872.15
980.0
790.0
000.1
200.1
990.0
995.022
980.3,990.0,99951.0
990.3,000.1,995.0
,
2.24,0.1,2.1
1100
00
02
12
02
11
2
2
0
010
03
00
20
3
02
02
02
01
01
01
2021
01
00
21
2212
PPu
uu
r
nr
ff
r
PfPff
Pff
PPP
PfP
u
PfP
u
eueu
PfP
xf
Rosenbrock
E
E
T
T
T
计算
前移一位:搜索方向自因
且
因所以而
一维搜索得:沿
一维搜索得:沿
取搜索方向
此时取
函数例,对
浙江大学研究生学位课程
《实用数值计算方法》 124
4.7.2
计算结果表
作一维搜索得沿
所以
8.4
990.0,990.0
0488.0
999.0
206.01021.4
10
12
12
200
02
TPu
u
PP
k (u1k)T (U2
k)T PkT f(Pk)
1 (0, 1) (0.999, -0.0488)P0
1(-0.990, 0.990)P1
1(-0.990, 0.990)P2
1(-0.984, 0.979)
3.9693.9593.948
2 (0, 1) (0.453, -0.892)P0
2(-0.761, 0.540)P0
1(-0.761, 0.579)P0
1(-0.702, 0.462)
3.2573.1012.986
3 (0.453, -0.892) (0.608, -0.744)P0
3(-0.503, 0.203)P1
3(-0.538, 0.273)P2
3(-0.466,0.178)
2.5102.3962.301
2 .3 96
5.05.0 0.1
0.1
1
2
图 4.43 计算结果图示
P*
浙江大学研究生学位课程
《实用数值计算方法》 125
4.8 方法的选择与总结
4.8.1 方法的选择
1. 原则:( 1 )有效性(2)运算量(3)存储量
2. 非线性代数方程(1)二分法具有良好的有效性(2)二次插值和有理插值运算 量少(3)一般采用组合方法
浙江大学研究生学位课程
《实用数值计算方法》 126
4.8.1
3. 非线性方程组
(1)一般采用最优化方法
(2)对于无梯度(或不易求梯度)问题,
一般不用CG方法,因为稳定性太
差。
用有限差商近似导数不是好的选择。
但是当问题很大时( n200 )由于存
贮的限制,POW方法和VM方法
不能用时,只能考虑CG方法。
对小问题( 2 n 10 ) , 选择
POW方法或VM方法(差商近似
导数)均可考虑。有效性依赖于问
题。
浙江大学研究生学位课程
《实用数值计算方法》 127
4.8.1
更要使用精确的梯度。时
病态而梯度时,要利用梯度。精确在计算量不太大能得到
对于有梯度问题
方法较合适。没有连续的梯度,则若
比较可靠。方法一般大问题
方法更好。对于性态差则选对于中等问题
,
3
,20050
,5010
xf
POW
xf
VMn
VM
n
浙江大学研究生学位课程
《实用数值计算方法》 128
4.8.1
艺术。它也是一种方法强烈依赖于问题,用,选择有几种组合方法可以利
。方法要求梯度,存储。方法不用求导数,存储
存贮量大
度,并且而且稳定。但它要求梯方法最有效就方法本身来说,
方法。时,选当或时,当较好。时,当
5
.
4
150
15050
502
2
2
nOCG
nOPOW
nO
VM
CGn
VMCGn
VMn
浙江大学研究生学位课程
《实用数值计算方法》 129
4.8.2 算法思想小结
1. 迭代法,而不是解析法
2. 线性化,极值化方法
3. 降维法
4. 下降法
5. 插值逼近法
6. 组合法
7. 梯度方向
共轭方向
改变度量
浙江大学研究生学位课程
《实用数值计算方法》 130
第四章 习 题
.0,
,,2,1
);
)
,,2,1.3
,
2
1
,
,.2
10)),
10)),
)
,)
)
,)
,126.1
21
21
21
4
3
2
21
2
21
23
1
x
Anihx
iiDD
iA
nihnnA
x
xxJxxFxxFxF
Taylor
F
iviii
iii
fBrentiv
ffNewtoniii
fii
ffi
exxfxxxf
i
i
TT
x
则共轭与是正定的,且A
如果为对角阵AP使得P
试找一个矩阵P,共轭的向量组,是
阶对称矩阵,是设
试证明之。
处的值。这里上横线表示在点
展开式为的点
关于两个变量的非线性函数
取
,取精度控制问题
的根;方法来求用的一个实根;法分别计算用
的根;求线性插值法用割线法的一个实根;用二分法分别计算
设
T
浙江大学研究生学位课程
《实用数值计算方法》 131
T
kkTk
kTkkkk
kk
PxfPowell
y
zxyz
yxxf
xFDFP
xxxxfxfxF
xxf
xxxf
gHg
HggHxHH
DFP
xfxfx
xf
xfxfxxLx
c
ccxfxf
xf
0.2,0.1,0.0
2exp2
1sin
1
1.7
2
1
2
1min
0
0.6
)(.5
0)4(
)3(
,0)2(
;04.0,02.0,01.0,0,01.0,02.0,04.0,2.0,1
,)1(2
1
3
1.4
0
2
2
21
221
22
21
12
211
1
000
22
31
的极大点值,取方法求试用
设
的极小值点。方法分别求试用共轭梯度法和
问题的求解可化为以下极值方程组
条件下式满足拟牛顿方程在变尺度法中,试证明
的极值点。的稳定点,是否为是否为区域中不为有界凸;
为有界凸,那些举例说明在哪些区域中
试绘出水平集设
取以下值:的等高线试绘出
设