1. 引言
本文考虑求解如下非线性方程组的数值方法:
(1.1)
其中
是
到
的连续可微函数,其Jacobian阵记为
。非线性方程组在物理学、经济学和产品管理等许多领域都具有广泛的应用,例如非线性优化问题的KKT系统、非线性微分方程的离散形式都是非线性方程组[1] [2]。因此设计高效求解非线性方程组的算法是计算数学领域的一个重要研究课题。
有许多实用的算法可以求解非线性方程组,其中Levenberg-Marquardt (LM)方法是一种经典方法。在每次迭代中,它都会计算LM方向
其中
,以及LM参数
在每次迭代中更新。
LM参数
的选择对LM方法的计算效率至关重要。为了提高计算效率,许多学者对LM参数进行研究。Yamashita和Fukushima [3]证明,当
时,LM方法在局部误差界这一较弱的条件下具有二次收敛速度。然而,当序列
远离解集
时,
可能非常大,会导致
也很大,这将使得
变得很小,从而降低算法的效率。于是Fan和Yuan [4]使用了
,其中
,
在每次迭代中都使用信赖域方法更新,此时LM方法在一些合适的条件下也具有二次收敛速度。进一步,Ma和Jiang [5]将
引入LM方法用于求解奇异非线性方程组,使用了
和
的凸组合作为新的LM参数
,其中
。随后,Fan和Pan [6]提出了
,并证明了在弱于非奇异性的局部误差条件下仍然保持二次收敛。
为了提高算法的收敛速度和效率,Fan [7]提出了一种两步LM方法。在每次迭代中,首先通过求解
(1.2)
来获得LM方向
,其中
由信赖域方法更新。再通过求解
(1.3)
来获得近似的LM方向
,并设置迭代方向为
。Fan证明了该两步LM方法具有全局收敛性和在局部误差界下具有三次收敛速度。
近年来,非单调方法被应用于多种优化算法中,显著提升了算法的收敛性能。1986年,Grippo等[8]提出了非单调Armijo线搜索,该方法是非线性优化的非单调算法的新突破。随后,Deng等[9]首次将非单调思想与信赖域方法相结合,提出了一种具有强收敛性的非单调信赖域方法。研究表明,使用非单调技术可以提高找到全局最优值的可能性和算法的收敛率[8] [10]。由于非单调信赖域方法的良好数值效果,越来越多的学者致力于对非单调方法的研究。最近,Zhao等[11]在LM方法中采用非单调信赖域方法来确保全局收敛。传统的信赖域方法要求目标函数值
严格单调下降,这有可能会陷入局部最优,而文献[11]通过引入
:
来允许
偶尔上升,只要
整体下降即可,从而提升算法的全局收敛性。并通过与Fan [12]的单调信赖域LM方法进行数值实验比较,表明引入的非单调信赖域方法提高了LM方法的数值性能。
Zhao在文献[11]中还利用
和
的凸组合,提出了一种新的LM参数
,其中
和
。这是LM参数的更通用选择,它不仅包括上述所提到的所有LM选择,而且在局部误差界下,证明了新的LM方法至少具有阶数为
的超线性收敛率。
受上述文献的启发,在本文中,我们旨在提出一种新的LM方法,该方法采用文献[11]中的LM参数以及采用非单调信赖域,将其改进为两步LM方法。在文献[7]中两步LM方法已证明具有三次收敛速度,通过与[7]同样的分析,可以证明本文改进的两步LM方法在
时也具有三次收敛速度。
本文的组织结构如下。在第2节中,我们详细介绍改进型非单调信赖域的两步LM方法。在第3节中,建立了所提方法的全局收敛性。在第4节中,我们应用新的两步LM方法求解一些非线性方程并报告数值结果。最后,我们在第5节进行总结。在整篇论文中,假设
表示的解集是非空的,且在所有情况下
是指2-范数。
2. 算法的提出
我们取
作为(1.1)的评价函数。两步LM方法在每一次迭代中不仅要通过(1.2)计算LM方向
,还要通过(1.3)计算近似LM方向
。
在标准的信赖域方法中,通常我们会将
在第
次迭代时的实际下降量
、预测下降量为
和下降比
分别定义为
(2.1)
(2.2)
(2.3)
但是在两步LM方法中,因为不能证明(2.2)是非负的,所以我们不能像往常一样将预测下降量定义为(2.2),因此需要开发一种新的预测下降量。
注意到LM方向
是下列最小化关于
的优化问题的解:
(2.4)
如果我们令
那么可以验证
也是下列信赖域问题的解:
根据Powell [13]给出的著名结果,我们知道
(2.5)
同理,近似LM方向
不仅是下列最小化关于
的优化问题的解:
(2.6)
也是下列信赖域问题的解:
其中。同样可以得到
(2.7)
现在,根据不等式(2.5)和(2.7),我们可以合理地将新的预测下降量定义为
(2.8)
并且它总是非负的,满足以下不等式
(2.9)
受文献[11]的非单调信赖域方法的启发,我们定义新的实际下降量为
(2.10)
其中
。值得注意的是,
是
和
的凸组合。由于我们设定
,因此
是
的凸组合。从而可以定义新的下降比为
,用于决定是否接受试探步以及如何调整LM参数。
接下来,我们将详细地描述新的两步LM方法。
算法1
步1. 选择一个初始点
,令
,给定参数
,
,
,
和
。置
。
步2. 如果
,则停止计算。否则,令
(2.11)
通过求解以下线性方程组,得到
:
(2.12)
令
;再求解以下方程组,得到
:
(2.13)
再令
。
步3. 通过(2.8)和(2.10)计算下降比
(2.14)
步4. 令
(2.15)
令
(2.16)
步5. 选择
为
(2.17)
置
,转步2。
注:
两步LM方法的计算成本与单步LM方法的计算成本几乎相同,因为(2.13)只涉及
,并且在求解(2.12)之后,可以利用
的可用分解。
3. 全局收敛性
为了证明算法1的全局收敛性,我们做出如下假设。
假设A
(1)
在
上是连续可微的。
(2)
和
在
上是Lipschitz连续的,即对
,存在正的常数
,使得
(3.1)
(3.2)
假设A也意味着,对
,
(3.3)
(3.4)
引理3.1 设
是由算法1产生的序列,则对所有的
,都有
证明. 首先,我们假设对某些
,有
。如果
,那么由(2.15)可得
,则
(3.5)
如果
,那么由(2.15)可得
,再由(2.14)得
,
上式结合(2.9),意味着
(3.6)
于是由(2.16)可知
因为
,所以通过对
进行归纳,我们可以得到对所有的
,都有
这就证得了引理的第一个结果。
然后,结合(3.5)和(3.6)可知对所有的
,
,再由(2.16)可得
,即对所有的
,都有
这就证得了引理的第二个结果。
此外,对所有的
,我们有
这就证得了引理的第三个结果。 □
定理3.1 设
是由算法1产生的序列,若假设A成立,则有
(3.7)
证明. 用反证法。假设
,则存在常数,使得对
,有
(3.8)
定义包含所有成功迭代点的指标集为
我们考虑以下两种情况,并得出矛盾。
情形1.
是无限的。在这种情形下,由(2.9),(2.15),(2.16),(3.4)和(3.8)可得,对所有的
以及
,有
根据引理3.1的第二个结果,序列
单调递减且下有界,即存在一个常数
,使得
。再由(2.16),我们有
于是根据
,可知
。
然而当
时,有
。因此可以得到
上式结合(2.12)和(3.8)可得
(3.9)
根据引理3。1的第三个结果以及(3.4),有
上式结合(2.11)和(3.9)可得
(3.10)
此外,由
的定义和(3.3),对所有充分大的
有
(3.11)
其中
是某个正的常数。于是
故由(2.1),(2.8),(2.9),(3.4),(3.8)和上式,对
,
即得
,有
。根据引理3.1的第一个结果,对
,都有
,于是
。故有
鉴于
的更新规则,存在一个正的常数
,使得
对所有充分大的
都成立,这与(3.10)相矛盾,即当
为无限集时,假设(3.8)不真。
情形2.
是有限的。在这种情形下,存在一个索引
,使得对所有的
,有
。于是,通过算法1的第5步,对所有的
,都有
,因此
(3.12)
由(3.4)和(3.8),我们有
从而
再由(2.11)和(3.12)可得
上式结合(2.12)和(3.8)可得
类似于(3.11),存在一个正的常数
,使得对所有充分大的
,都有
因此对所有充分大的
,有
通过与情形1相同的分析,我们可以得到
。故存在一个正的常数
,使得
对所有充分大的
都成立,这与(3.12)相矛盾,即当
为有限集时,假设(3.8)不真。
总结情形1和情形2,我们得到(3.7)并完成了证明。 □
4. 数值实验
为了验证算法的有效性,我们将文献[11]中的单步LM算法2.1 (记作算法SLM)与本文提出的两步LM算法1 (记作算法TLM)进行数值实验比较。所有程序均在MATLAB R2016a平台上编写,数值结果均在个人电脑上实现。算法所涉及的参数具体如下:
我们选取算法终止条件为
,计算以下两个具有不同初始点和不同大小的问题,测试函数均选自[14]:
(i) 扩展的Rosenbrock函数:
,其中
是偶数,
,
(ii) 扩展的Powell Singular函数:
,其中
是正整数的四倍,
,
表1~3列出了两种算法在两个测试问题上的迭代次数,测试
和
时的LM参数。我们选择
,表1~3中的第三列表示不同的初始点,对于问题(i),取初始点为
,
,
,
,
,
;对于问题(ii),取初始点为
,
,
,
,
,
。如果算法的迭代次数超过1000,则用符号“--”表示。
从表1~3中,我们可以看到,无论在测试问题(i)还是(ii)上,算法TLM的迭代次数几乎都比算法SLM的迭代次数少,说明本文提出的两步LM算法比单步LM算法的收敛速度更快。因此可以认为算法1在实际问题中可行且有效。
Table 1. Number of iterations at
表1.
时的迭代次数
Problem |
n |
x0 |
δ = 0.5 |
δ = 1.0 |
δ = 1.5 |
δ = 2.0 |
δ = 2.5 |
SLM/TLM |
SLM/TLM |
SLM/TLM |
SLM/TLM |
SLM/TLM |
Rosenbrock |
2 |
−10 |
4/3 |
4/3 |
6/4 |
6/5 |
8/10 |
−1 |
2/1 |
2/1 |
3/2 |
3/2 |
4/2 |
0 |
15/1 |
17/1 |
17/1 |
17/1 |
17/1 |
1 |
22/2 |
25/2 |
26/18 |
24/22 |
27/22 |
10 |
4/3 |
5/3 |
6/4 |
7/4 |
7/5 |
100 |
6/5 |
8/5 |
8/6 |
11/8 |
15/10 |
10 |
−10 |
4/3 |
5/4 |
6/5 |
8/11 |
9/11 |
−1 |
2/1 |
3/2 |
4/2 |
4/2 |
4/3 |
0 |
17/1 |
16/1 |
16/1 |
18/1 |
20/1 |
1 |
27/2 |
22/22 |
26/17 |
18/21 |
22/15 |
10 |
5/3 |
5/4 |
6/5 |
8/7 |
9/7 |
100 |
7/5 |
8/6 |
9/7 |
12/9 |
20/13 |
100 |
−10 |
4/3 |
6/4 |
7/6 |
8/6 |
11/12 |
−1 |
2/1 |
3/2 |
4/3 |
5/3 |
6/3 |
0 |
16/2 |
17/2 |
16/2 |
11/2 |
19/10 |
1 |
27/19 |
22/22 |
24/18 |
23/14 |
21/16 |
10 |
5/3 |
6/4 |
7/6 |
10/16 |
11/20 |
100 |
7/5 |
8/6 |
10/10 |
16/14 |
28/25 |
Powell Singular |
4 |
1 |
10/7 |
10/7 |
10/7 |
10/7 |
10/7 |
5 |
12/9 |
12/9 |
12/9 |
12/9 |
13/9 |
10 |
13/9 |
13/9 |
13/9 |
13/10 |
15/11 |
50 |
15/11 |
15/11 |
15/11 |
17/12 |
20/15 |
100 |
16/12 |
16/12 |
16/12 |
19/14 |
23/18 |
150 |
17/12 |
17/12 |
17/12 |
20/14 |
24/19 |
100 |
1 |
11/8 |
11/8 |
11/8 |
11/8 |
11/8 |
5 |
13/9 |
13/9 |
13/9 |
13/10 |
16/12 |
10 |
14/10 |
14/10 |
14/10 |
15/11 |
18/14 |
50 |
16/12 |
16/12 |
16/12 |
20/15 |
24/19 |
100 |
17/12 |
17/12 |
18/13 |
22/16 |
27/21 |
150 |
18/13 |
18/13 |
18/13 |
23/17 |
32/24 |
200 |
1 |
11/8 |
11/8 |
11/8 |
11/8 |
11/8 |
5 |
13/9 |
13/9 |
13/9 |
14/10 |
16/12 |
10 |
14/10 |
14/10 |
14/10 |
16/11 |
19/14 |
50 |
16/12 |
16/12 |
17/12 |
20/15 |
25/20 |
100 |
17/12 |
17/12 |
18/13 |
22/17 |
30/23 |
150 |
18/13 |
18/13 |
19/13 |
23/18 |
39/28 |
Table 2. Number of iterations at
表2.
时的迭代次数
Problem |
n |
x0 |
δ = 0.5 |
δ = 1.0 |
δ = 1.5 |
δ = 2.0 |
δ = 2.5 |
SLM/TLM |
SLM/TLM |
SLM/TLM |
SLM/TLM |
SLM/TLM |
Rosenbrock |
2 |
−10 |
4/3 |
6/5 |
8/7 |
11/9 |
16/16 |
−1 |
2/1 |
4/2 |
4/3 |
5/3 |
7/4 |
0 |
17/1 |
16/1 |
21/1 |
18/1 |
23/1 |
1 |
18/2 |
23/2 |
27/22 |
26/23 |
30/17 |
10 |
10 |
5/3 |
6/5 |
8/5 |
11/8 |
34/13 |
100 |
7/5 |
9/7 |
14/10 |
140/29 |
--/-- |
−10 |
4/3 |
6/5 |
8/7 |
12/12 |
25/19 |
−1 |
3/2 |
4/2 |
4/3 |
6/3 |
8/6 |
0 |
19/1 |
15/2 |
16/2 |
18/2 |
29/2 |
1 |
24/2 |
20/22 |
26/18 |
27/17 |
27/26 |
10 |
5/3 |
6/5 |
9/7 |
12/10 |
24/16 |
100 |
7/5 |
9/7 |
16/12 |
224/78 |
--/-- |
100 |
−10 |
5/3 |
7/6 |
9/7 |
14/11 |
158/92 |
−1 |
3/2 |
4/3 |
6/4 |
7/5 |
11/7 |
0 |
16/2 |
14/2 |
16/3 |
20/3 |
12/12 |
1 |
30/19 |
30/20 |
19/18 |
25/16 |
33/15 |
10 |
5/4 |
7/5 |
9/8 |
16/15 |
108/59 |
100 |
8/6 |
10/7 |
23/17 |
--/686 |
--/-- |
Powell Singular |
4 |
1 |
10/7 |
10/7 |
10/7 |
10/7 |
11/8 |
5 |
12/9 |
12/9 |
13/9 |
15/12 |
19/15 |
10 |
13/9 |
13/9 |
14/10 |
18/14 |
24/19 |
50 |
15/11 |
15/11 |
19/15 |
28/22 |
--/-- |
100 |
16/12 |
17/12 |
22/17 |
87/52 |
--/-- |
150 |
17/12 |
17/12 |
23/18 |
334/176 |
--/-- |
100 |
1 |
11/8 |
11/8 |
11/8 |
12/9 |
14/11 |
5 |
13/9 |
13/9 |
14/11 |
19/15 |
25/20 |
10 |
14/10 |
14/10 |
17/12 |
22/17 |
148/82 |
50 |
16/12 |
16/12 |
22/17 |
121/69 |
--/-- |
100 |
17/12 |
18/13 |
24/19 |
--/777 |
--/-- |
150 |
18/13 |
18/13 |
25/20 |
--/-- |
--/-- |
200 |
1 |
11/8 |
11/8 |
11/8 |
12/9 |
15/12 |
5 |
13/9 |
13/9 |
15/11 |
19/15 |
29/22 |
10 |
14/10 |
14/10 |
17/13 |
22/18 |
318/168 |
50 |
16/12 |
17/12 |
22/17 |
216/117 |
--/-- |
100 |
17/12 |
18/13 |
25/19 |
--/-- |
--/-- |
150 |
18/13 |
19/13 |
26/21 |
--/-- |
--/-- |
Table 3. Number of iterations at
表3.
时的迭代次数
Problem |
n |
x0 |
δ = 0.5 |
δ = 1.0 |
δ = 1.5 |
δ = 2.0 |
δ = 2.5 |
SLM/TLM |
SLM/TLM |
SLM/TLM |
SLM/TLM |
SLM/TLM |
Rosenbrock |
2 |
−10 |
4/3 |
6/5 |
9/6 |
11/10 |
20/17 |
−1 |
2/2 |
4/2 |
4/3 |
6/4 |
7/4 |
0 |
16/1 |
18/1 |
18/1 |
22/1 |
33/1 |
1 |
22/2 |
26/2 |
21/22 |
39/17 |
36/26 |
10 |
5/3 |
6/5 |
8/6 |
13/9 |
18/15 |
100 |
7/5 |
9/7 |
16/12 |
109/41 |
--/-- |
10 |
−10 |
4/3 |
6/5 |
9/8 |
12/11 |
37/27 |
−1 |
3/2 |
4/2 |
5/3 |
6/4 |
8/6 |
0 |
15/2 |
19/2 |
23/2 |
23/2 |
19/2 |
1 |
25/2 |
29/17 |
27/18 |
27/15 |
39/23 |
10 |
5/4 |
7/5 |
9/7 |
13/10 |
29/19 |
100 |
8/6 |
10/7 |
18/14 |
382/166 |
--/-- |
100 |
−10 |
5/4 |
7/6 |
11/9 |
18/14 |
295/156 |
−1 |
3/2 |
4/3 |
7/4 |
9/6 |
11/8 |
0 |
16/2 |
20/2 |
16/3 |
16/3 |
25/11 |
1 |
25/21 |
29/18 |
26/21 |
23/19 |
38/22 |
10 |
6/4 |
7/6 |
10/8 |
16/13 |
192/100 |
100 |
8/6 |
10/8 |
20/77 |
--/-- |
--/-- |
Powell Singular |
4 |
1 |
10/7 |
10/7 |
10/7 |
10/7 |
11/8 |
5 |
12/9 |
12/9 |
13/9 |
16/12 |
20/16 |
10 |
13/9 |
13/9 |
15/11 |
19/15 |
27/21 |
50 |
15/11 |
16/11 |
20/15 |
33/24 |
--/-- |
100 |
16/12 |
17/12 |
22/17 |
148/83 |
--/-- |
150 |
17/12 |
17/12 |
23/18 |
639/329 |
--/-- |
100 |
1 |
11/8 |
11/8 |
11/8 |
12/9 |
15/11 |
5 |
13/9 |
13/9 |
15/11 |
19/15 |
28/21 |
10 |
14/10 |
14/10 |
17/13 |
22/18 |
272/144 |
50 |
16/12 |
17/12 |
22/17 |
216/117 |
--/-- |
100 |
17/12 |
18/13 |
25/19 |
--/-- |
--/-- |
150 |
18/13 |
18/13 |
26/21 |
--/-- |
--/-- |
200 |
1 |
11/8 |
11/8 |
11/8 |
13/10 |
16/12 |
5 |
13/9 |
13/9 |
15/11 |
20/16 |
36/26 |
10 |
14/10 |
14/10 |
18/13 |
23/18 |
612/315 |
50 |
16/12 |
17/12 |
23/18 |
405/211 |
--/-- |
100 |
17/12 |
18/13 |
25/20 |
--/-- |
--/-- |
150 |
18/13 |
19/14 |
27/21 |
--/-- |
--/-- |
5. 总结
本文通过采用一种较为通用的LM参数并结合非单调信赖域方法,提出了改进型的两步Levenberg-Marquardt方法。我们已经证明,新的两步LM方法具有全局收敛性,并通过与单步LM方法的数值实验进行对比,得出新的两步LM方法在解决实际问题上高效且有前途。