本文在现有的三项共轭梯度法的基础上,设计了一种新的共轭梯度法JG求解非线性方程组问题,并在一定的假设条件下证明了JG算法的充分下降性和全局收敛性。通过数值实验的结果我们可以看到,JG算法与PRP算法相比具有更好的性质。 Based on the existing three-term conjugate gradient method, this paper designs a new conjugate gradient method JG to solve the problem of nonlinear equations, and proves the sufficient descent and global convergence of JG algorithm under certain assumptions. From the results of numerical experiments, we can see that JG algorithm has better properties than PRP algorithm.
廖若沙
广西大学,数学与信息科学学院,广西 南宁
收稿日期:2019年4月16日;录用日期:2019年5月7日;发布日期:2019年5月14日
本文在现有的三项共轭梯度法的基础上,设计了一种新的共轭梯度法JG求解非线性方程组问题,并在一定的假设条件下证明了JG算法的充分下降性和全局收敛性。通过数值实验的结果我们可以看到,JG算法与PRP算法相比具有更好的性质。
关键词 :共轭梯度法,充分下降性,全局收敛性
Copyright © 2019 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
我们考虑如下非线性方程组:
h ( x ) = 0 , x ∈ R n (1)
其中 h ( x ) = 0 单调并连续可微。令 F ( x ) = 1 2 ‖ h ( x ) ‖ 2 ,则(1)式等价于求解(2)式的全局最优解:
min F ( x ) , x ∈ R n (2)
通常求解非线性方程组的迭代公式为:
x k + 1 = x k + α k d k
其中 α k 为沿搜索方向上的步长, d k 为搜索方向。
随着共轭梯度法的发展,产生了一系列的求解 d k 和 α k 的方法 [
F ( x k + 1 ) − F ( x k ) ≤ c 1 α k g k T d k g k + 1 T d k ≥ c 2 g k T d k
其中 0 < c 1 < c 2 < 1 为任意常数, g k : = ∇ F ( x k ) 。
我们利用Yuan和Lu [
− g ( x k + α k d k ) T d k ≥ σ α k ‖ g ( x k + α k d k ) ‖ ‖ d k ‖ 2 (3)
其中 α k = max { s , ρ s , ρ 2 s , ⋯ } , σ , s > 0 , ρ ∈ ( 0 , 1 ) 。在一定的假设条件下,得到全局收敛性和超线性收敛。
Zhang [
d k = { − g k + β k P R P d k − 1 − v k y k if k ≥ 1 − g k if k = 0
其中 g k = g ( x k ) , β k P R P = g k − 1 T y k ‖ g k − 1 ‖ 2 , v k = g k T d k − 1 ‖ g k − 1 ‖ 2 , y k = g k − g k − 1 。由 d k 的定义易得:
d k T g k = − ‖ g k ‖ 2
根据上述算法及线搜索,本文给出一种新的三项共轭梯度算法JG:
d k = { − g k + g k T y k * d k − 1 − g k T d k − 1 y k * μ ‖ d k − 1 ‖ ‖ y k * ‖ + v ‖ y k * ‖ 2 + ‖ g k − 1 ‖ 2 + η ‖ g k − 1 ‖ ‖ d k − 1 ‖ + r ‖ d k − 1 ‖ 2 if k ≥ 1 − g k if k = 0 (4)
其中 μ > 0 , v > 0 , η > 0 , r > 0 , y k * = g k − ‖ g k − 1 ‖ ‖ g k ‖ g k − 1 。
新的三项共轭梯度算法JG的步骤如下:
Step 0:令初始点 x 0 ∈ R , μ > 0 , v > 0 , η > 0 , r > 0 ; ρ , ε ∈ ( 0 , 1 ) 。 k : = 1 ;
Step 1:若 ‖ g ( x ) ‖ ≤ ε ,停止;否则转到Step 2;
Step 2:通过(4)式计算搜索方向 d k ;
Step 3:选择满足条件(3)的步长 α k ;
Step 4:令迭代公式为 w k = x k + α k d k ;
Step 5:若 ‖ g ( x ) ‖ ≤ ε ,停止,令 x k + 1 = w k ;否则令
x k + 1 = x k − g ( w k ) T ( x k − w k ) ‖ g ( w k ) ‖ 2 g ( w k ) (5)
Step 6:令 k : = k + 1 ,转Step 1。
注:(5)式 [
我们给出如下两个假设条件:
假设1:(1)式的解集非空。
假设2: g ( x ) 在 R n 上Lipschitz连续,即存在 L > 0 使得
‖ g ( x ) − g ( y ) ‖ ≤ L ‖ x − y ‖ , ∀ x , y ∈ R n (6)
于是可以得到
‖ g k ‖ ≤ ς
其中 ς > 0 。
引理1:(4)式中的 d k 满足:
g k + 1 d k + 1 ≤ − ‖ g k + 1 ‖ 2 (7)
和
‖ g k ‖ ≤ ‖ d k ‖ ≤ ( 1 + 2 μ ) ‖ g k ‖ (8)
证明:由 d k 的定义可以直接得(7)式的结果,而利用(7)式可以得到(8)式的左半部分,接下来证明(8)式的右半部分。
‖ d k ‖ = ‖ − g k + g k T y k * d k − 1 − g k T d k − 1 y k * μ ‖ d k − 1 ‖ ‖ y k * ‖ + v ‖ y k * ‖ + ‖ g k − 1 ‖ 2 + η ‖ g k − 1 ‖ ‖ d k − 1 ‖ + r ‖ d k − 1 ‖ 2 ‖ ≤ ‖ − g k ‖ + ‖ g k T y k * d k − 1 − g k T d k − 1 y k * μ ‖ d k − 1 ‖ ‖ y k * ‖ + v ‖ y k * ‖ + ‖ g k − 1 ‖ 2 + η ‖ g k − 1 ‖ ‖ d k − 1 ‖ + r ‖ d k − 1 ‖ 2 ‖ ≤ ‖ − g k ‖ + 2 ‖ g k T ‖ ‖ y k * ‖ ‖ d k − 1 ‖ μ ‖ d k − 1 ‖ ‖ y k * ‖ = ( 1 + 2 μ ) ‖ g k ‖
得证,故(8)式成立。 □
引理2:若假设1,假设2均成立, { x k } 和 { w k } 是由算法JG产生的点列,可得:
α k ≥ min { s , ρ L + σ ‖ g ( w ^ k ) ‖ ‖ g ( x k ) ‖ 2 ‖ d k ‖ 2 }
其中 w ^ k = x k + α ^ k d k , α ^ k = α k ρ − 1 。
证明:这里 α k 由(3)式给出,如果 α k ≠ s ,那么 α ^ k = α k ρ − 1 不满足(3)式,即:
− g ( x k + α k d k ) T d k < σ α k ‖ g ( x k + α k d k ) ‖ ‖ d k ‖ 2
成立。
由Lipschitz条件和(7)式:
‖ g k ‖ 2 ≤ − g k T d k ≤ ( g ( w ^ k ) − g ( x k ) ) T d k + σ α ^ k ‖ g ( w ^ k ) ‖ ‖ d k ‖ 2 ≤ α ^ k ( L + σ ‖ g ( w ^ k ) ‖ ) ‖ d k ‖ 2
则
α k ≥ ρ L + σ ‖ g ( w ^ k ) ‖ ‖ g ( x k ) ‖ 2 ‖ d k ‖ 2
得证。 □
引理3:若假设1,假设2均成立, { x k } 是由算法JG产生的点列,若 x * 是(1)的解,即 h ( x * ) = 0 成立,那么:
‖ x k + 1 − x * ‖ 2 ≤ ‖ x k − x * ‖ 2 − ‖ x k + 1 − x k ‖ 2 (9)
和
∑ k = 0 ∞ ‖ x k + 1 − x k ‖ 2 < ∞ (10)
均成立。
证明:由g和超平面 H k 的单调性,可得:
〈 g ( w k ) − g ( x * ) , x * − w k 〉 = 〈 g ( w k ) , x * − w k 〉 ≤ 0
x k + 1 为 x k 在 M k = { x ∈ R n | 〈 g ( w k ) , x − w k 〉 ≤ 0 } 上的投影。如果 x * 在 M k 上,则 〈 x k − x k + 1 , x k + 1 − x * 〉 ≥ 0 。可得:
‖ x k − x * ‖ 2 = ‖ x k − x k + 1 ‖ 2 + ‖ x k + 1 − x * ‖ 2 + 2 〈 x k − x k + 1 , x k + 1 − x * 〉 ≥ ‖ x k − x k + 1 ‖ 2 + ‖ x k + 1 − x * ‖ 2
整理得:
‖ x k + 1 − x k ‖ 2 ≤ ‖ x k − x * ‖ 2 − ‖ x k + 1 − x * ‖ 2
故(9)式成立。令 k → + ∞ ,对该式进行累加,得(10)式成立,得证。 □
由(3)、(5)二式,得:
‖ x k + 1 − x k ‖ = | g ( w k ) T ( x k − w k ) | ‖ g ( w k ) ‖ = − α k g ( w k ) T d k ‖ g ( w k ) ‖ ≥ σ α k 2 ‖ d k ‖ 2
由(10)式可知,当 k → + ∞ 时:
‖ x k + 1 − x k ‖ → 0
综上可得:
lim k → + ∞ α k d k = 0 (11)
定理1若假设1,假设2均成立,序列 { α k , d k , x k + 1 , g k + 1 } 由算法JG产生,则有
lim k → ∞ inf ‖ g k ‖ = 0 (12)
证明:若(12)式不成立,则存在 δ > 0 使得对任意 K ≥ 0 都有 ‖ g k ‖ ≥ δ 。结合式(8),有:
c 3 δ ≤ c 3 ‖ g k ‖ ≤ ‖ d k ‖ ≤ c 4 ‖ g k ‖ ≤ c 4 ζ
这里 0 < c 3 < 1 , c 4 = 1 + 2 μ 。由引理2可得:
α k ‖ d k ‖ ≥ min { s , ρ L + σ ‖ g ( w ^ k ) ‖ ‖ g ( x k ) ‖ 2 ‖ d k ‖ 2 } ‖ d k ‖ ≥ min { c 3 δ s , ρ δ c 4 ζ ( L + σ ς ) } > 0
与(11)式矛盾,故(12)式成立,得证。 □
下面我们将JG算法与PRP算法作比较,选取九个测试函数 [
函数 | 初始点 | |
---|---|---|
1 | Exponential function 1 | x 0 = ( n n − 1 , n n − 1 , ⋯ , n n − 1 ) T |
2 | Exponential function 2 | x 0 = ( 1 n 2 , 1 n 2 , ⋯ , 1 n 2 ) T |
3 | Trigonometric function | x 0 = ( 101 100 n , 101 100 n , ⋯ , 101 100 n ) T |
4 | Singular function | x 0 = ( 1 , 1 , 1 , ⋯ , 1 ) T |
5 | Logarithmic function | x 0 = ( 1 , 1 , ⋯ , 1 , 1 ) T |
6 | Broyden Tridiagonal function | x 0 = ( − 1 , − 1 , ⋯ , − 1 ) T |
7 | Variable dimensioned function | x 0 = ( 1 − 1 n , 1 − 2 n , ⋯ , 1 n , 0 ) T |
8 | Discrete boundry value problem | x 0 = [ t ( t − 1 ) , t ( 2 t − 1 ) , ⋯ , t ( n t − 1 ) ] T , t = 1 n + 1 |
9 | Troesch problem | x 0 = ( 0 , 0 , ⋯ , 0 , 0 ) T |
表1. 测试函数
数值实验的参数设置: μ = 0.0001 , v = 0.0001 , η = 0.0001 , r = 0.0001 , ε = 10 − 5 ,终止条件为 ‖ g ( x ) ‖ ≤ 10 − 5 ,其中CI为循环次数;CT为计算次数;GN为梯度值的范数。结果见表2:
Dim | 算法JG | 算法PRP | |||||
---|---|---|---|---|---|---|---|
CI/CT | GN | Cputimes/s | CI/CT | GN | Cputimes/s | ||
1 | 3000 | 121/122 | 9.984983e−06 | 1.218683 | 129/130 | 9.969876e−06 | 1.062489 |
5000 | 102/103 | 9.951562e−06 | 1.406245 | 109/110 | 9.912214e−06 | 1.421314 | |
10000 | 80/81 | 9.993524e−06 | 2.453154 | 86/87 | 9.942864e−06 | 2.281245 | |
2 | 3000 | 53/203 | 9.445482e−06 | 1.201245 | 58/220 | 9.947542e−06 | 1.123458 |
5000 | 25/101 | 9.413541e−06 | 0.826587 | 24/97 | 9.752145e−06 | 0.907852 | |
10000 | 100/463 | 9.551023e−06 | 7.859952 | 105/479 | 9.810142e−06 | 6.513145 | |
3 | 3000 | 43/86 | 8.560854e−06 | 0.686589 | 48/95 | 8.646852e−06 | 0.671754 |
5000 | 42/84 | 8.282587e−06 | 1.000121 | 46/91 | 9.738878e−06 | 1.048721 | |
10000 | 40/80 | 9.126475e−06 | 1.842445 | 44/87 | 9.983354e−06 | 1.877724 | |
4 | 3000 | 299/658 | 3.719134e−02 | 5.705445 | 299/584 | 3.218877e−02 | 4.793553 |
5000 | 299/721 | 6.924588e−01 | 9.172574 | 299/584 | 2.866659e−02 | 7.671957 | |
10000 | 299/760 | 5.063289e−01 | 17.592875 | 299/637 | 2.730917e−02 | 15.250000 | |
5 | 3000 | 5/6 | 1.009850e−08 | 0.046765 | 11/12 | 1.012350e−08 | 0.078226 |
5000 | 5/6 | 6.263368e−09 | 0.093875 | 11/12 | 8.539635e−09 | 0.156789 | |
10000 | 5/6 | 3.618125e−09 | 0.156364 | 11/12 | 7.621875e−09 | 0.359330 | |
6 | 3000 | 95/190 | 9.498546e−06 | 1.140075 | 104/208 | 9.243558e−06 | 1.250000 |
5000 | 97/194 | 9.049356e−06 | 2.078486 | 106/212 | 9.130544e−06 | 1.936852 | |
10000 | 99/198 | 9.441758e−06 | 3.703354 | 108/216 | 9.878274e−06 | 3.843549 | |
7 | 3000 | 1/2 | 0.000000e+00 | 0.031250 | 1/2 | 0.000000e+00 | 0.000000 |
5000 | 1/2 | 0.000000e+00 | 0.000000 | 1/2 | 0.000000e+00 | 0.031250 | |
10000 | 1/2 | 0.000000e+00 | 0.031250 | 1/2 | 0.000000e+00 | 0.031250 | |
8 | 3000 | 35/71 | 9.252585e−06 | 0.564574 | 40/80 | 9.908979e−06 | 0.593585 |
5000 | 34/69 | 8.639254e−06 | 0.859358 | 39/78 | 9.198357e−06 | 0.938896 | |
10000 | 32/65 | 9.299685e−06 | 1.671241 | 37/74 | 9.416458e−06 | 1.822575 | |
9 | 3000 | 0/1 | 0.000000e+00 | 0.000000 | 0/1 | 0.000000e+00 | 0.031250 |
5000 | 0/1 | 0.000000e+00 | 0.015625 | 0/1 | 0.000000e+00 | 0.000000 | |
10000 | 0/1 | 0.000000e+00 | 0.000000 | 0/1 | 0.000000e+00 | 0.031250 |
表2. 数值结果
我们根据计算次数(CT)给出图1,可以直观看到在相同条件下,算法JG所需迭代次数更少,图1如下所示:
图1. JG算法与PRP算法的性能比较(CT)
针对求解非线性单调方程组,本文采用文献6的线搜索,给出了一个三项共轭梯度算法JG,并且在一定的假设条件下得到了充分下降性和全局收敛性,从数值实验的结果可以看到,JG算法在与PRP算法比较起来具有更好的性质。
廖若沙. 一种新的三项共轭梯度法求解非线性方程组A New Three-Term Conjugate Gradient Method for Solving Nonlinear Equations[J]. 应用数学进展, 2019, 08(05): 869-875. https://doi.org/10.12677/AAM.2019.85097