本文研究了区间参数非线性方程组的求解问题,通过改进区间Krawczyk算子并结合牛顿降阶法提出了求解区间参数非线性方程组的区间算法,给出了相关的理论结果和数值有效性测试。数值算例表明提出的算法可以有效的求解区间参数非线性方程组。 In this paper, the problem of solving nonlinear equations with interval parameters is considered. By improving interval Krawczyk operator and applying Newton order-reduction method, we pro-pose an interval algorithm to solve nonlinear equations with interval parameters. The theoretical result and numerical test are given and numerical result shows that proposed interval algorithm can effectively solve nonlinear equations with interval parameters.
王琪,肖旺,王海军*
中国矿业大学数学学院,江苏 徐州
收稿日期:2017年10月8日;录用日期:2017年10月24日;发布日期:2017年10月31日
本文研究了区间参数非线性方程组的求解问题,通过改进区间Krawczyk算子并结合牛顿降阶法提出了求解区间参数非线性方程组的区间算法,给出了相关的理论结果和数值有效性测试。数值算例表明提出的算法可以有效的求解区间参数非线性方程组。
关键词 :区间参数非线性方程组,牛顿降阶法,Krawczyk算子
Copyright © 2017 by authors and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
非线性方程组在数学、经济、工程等领域有着广泛的应用,如机器人学中的几何设计问题 [
f ( x , [ p ] ) = 0 , (1)
这里 f = ( f 1 , ⋯ , f n ) T , x = ( x 1 , ⋯ , x n ) T , f i : R n × I R → I R , [ p ] ∈ I R , I R 表示所有实区间集合。我们称(1)为区间参数非线性方程组,为了方便起见,我们将区间参数非线性方程组表示成以下形式:
f ( x ) = 0 , (2)
这里 f : R n × I R → R n , x ∈ R n 。
区间参数非线性方程组的解集定义为:
∑ = { x ∈ R n : ∃ f ( x ) ∈ f ( x ) s . t . f ( x ) = 0 } .
显然,区间参数非线性方程组解的情况有三种:无解、有限个解和无穷多解。因为(2)的系数是不断变化的,所以它的解也是不断变化的。但是,(2)的解是由所有非线性方程组 f ( x ) ∈ f ( x ) 的解构成的。当(2)有无穷多解时,这些解通常会构成一个封闭的区域。我们的目的是获取解集 Σ 的区间包,即求解尽可能小的区间 [ x ] 使得 Σ ⊆ [ x ] 。
1966年Moore在 [
本文基于区间Krawczyk算子,将区间Krawczyk算子推广到求解区间参数非线性方程组,并结合区间Newton降阶法得到改进的区间Krawczyk算子。第二部分介绍了区间Krawczyk算子与区间扩展;第三部分改进了区间Krawczyk算子并证明了改进的区间Krawczyk算子及其分量形式在指定初始区间内解的存在性;第四部分利用改进的区间Krawczyk算子和区间Newton降阶法设计了求解区间参数非线性方程组的算法;第五部分给出了数值算例,证明该算法的可行性与有效性。
1996年Moore [
N ( [ x ] ) = : m − F ( x ) F ′ ( [ x ] ) ,
其中:m是 [ x ] 内的任意一点(通常取m为 [ x ] 的中点),F和 F ′ 是f和 f ′ 在区间 [ x ] 上的区间扩展函数。
1969年Krawczyk [
K ( [ x ] ) = : m − Y f ( m ) + ( I − Y F ′ ( [ x ] ) ) ( [ x ] − m )
其中:m是 [ x ] 内的任意一点(通常取m为 [ x ] 的中点), F ′ 是 f ′ 在区间 [ x ] 上的区间扩展函数,Y为任意非奇异矩阵。
对于向量函数 f : R n → R n ,目前存在着很多求解函数区间包含的区间方法,这些方法被应用到很多领域 [
自然扩展: F N ( [ x ] ) = F ( [ x ] ) ,
中值扩展: F M ( [ x ] , c ) = f ( c ) + F ( [ x ] ) ( [ x ] − c ) ,
这里 c ∈ [ x ] , F ′ ( [ x ] ) = ( F ′ 1 ( [ x ] ) , ⋯ , F ′ n ( [ x ] ) ) T , F ′ j ( [ x ] ) 是 ∂ f ( x ) ∂ x j 在区间 [ x ] 上的区间扩展, F ( [ x ] ) 是用区间 [ x ] 代替点变量x求解函数值所得。
对于中值扩展 F M ( [ x ] , c ) ,Baumann [
设 F ′ ( [ x ] ) = [ l _ , l ¯ ] , i = 1 , 2 , ⋯ , n ,点向量 c _ 与 c ¯ 定义为:
c _ i = { x ¯ i , l ¯ i ≤ 0 , x _ i , l _ i ≥ 0 , ( l ¯ i x _ i − l _ i x ¯ i ) / ( l ¯ i − l _ i ) , 其 他 情 形 , (3)
c _ i = { x _ i , l ¯ i ≤ 0 , x ¯ i , l _ i ≥ 0 , ( l _ i x _ i − l ¯ i x ¯ i ) / ( l _ i − l ¯ i ) , 其 他 情 形 , (4)
则对于任意的 c ∈ [ x ] ,有
inf F M ( [ x ] , c ) ≤ inf F M ( [ x ] , c _ ) , sup F M ( [ x ] , c ¯ ) ≤ sup F M ( [ x ] , c ) .
我们称最优中心形式为:
F o ( [ x ] , c ¯ , c _ ) = [ inf F M ( [ x ] , c _ ) , sup F M ( [ x ] , c ¯ ) ] = [ inf { f ( c _ ) + F ′ ( [ x ] ) ( [ x ] − c _ ) } , sup { f ( c ¯ ) + F ′ ( [ x ] ) ( [ x ] − c ¯ ) } ] .
很显然
{ f ( x ) : x ∈ [ x ] } ⊆ F o ( [ x ] , c ¯ , c _ ) ⊆ F M ( [ x ] , c ) , (5)
即最优中心形式改善了中值扩展的效率。Wang-Cao [
引理1 [
F N ( [ x ] ) ⊆ F o ( [ x ] , c ¯ , c _ ) ,
这里c是由(3)和(4)定义的, α > 0 为一常数。
例1:对于函数 f ( x ) ,我们考虑用区间扩展求解其值域的区间包含,结果见表1。
f ( x ) = { x 1 3 + [ 0.9 , 1.1 ] x 2 2 − 5 , ( x 1 + 1 ) x 2 − ( 3 x 1 + [ 0.9 , 1.1 ] ) .
从表中可以明显看出,利用区间扩展方法求解值域的区间包含, F N ( [ x ] ) ∩ F o ( [ x ] , c _ , c ¯ ) 是一种较好的选择。
区间参数非线性方程组(2)等价于
x = p ( x ) = x − C f ( x ) ,
其中c为非奇异点矩阵,通常取 C = { m ( F ′ ( [ x ] ) ) } − 1 。
定义1:对任意区间向量 [ x ] ∈ I R n ,点向量 c ∈ [ x ] ,非奇异矩阵 C ∈ R n × n , F ′ ( [ x ] ) 为区间函数 f ( x ) 导数的区间扩展,区间映射
K ( [ x ] , c ) = c − C f ( c ) + ( I − C F ′ ( [ x ] ) ) ( [ x ] − c )
称为改进的区间Krawczyk算子,c通常取区间向量 [ x ] 的中点。
定理1:假设区间参数非线性函数 f : D ⊂ R n → R n 连续可微, x ∗ 为区间参数非线性方程组(2)的任意实数解。则
1) 如果 x ∗ ∈ [ x ] ,则 x ∗ ∈ K ( [ x ] , c ) ;
2) 如果 K ( [ x ] , c ) ∩ [ x ] = ∅ ,则区间 [ x ] 不含有区间参数非线性方程组(2)的任何解;
3) 如果 K ( [ x ] , c ) ⊆ [ x ] ,则 [ x ] 一定包含区间参数非线性方程组(2)的一个解。
证明:
[ x ] | F N ( [ x ] ) | F o ( [ x ] , c _ , c ¯ ) | F N ( [ x ] ) ∩ F o ( [ x ] , c _ , c ¯ ) |
---|---|---|---|
( [ 0.5 , 1.5 ] [ 1.5 , 2.5 ] ) | ( [ − 2.8501 , 5.2501 ] [ − 3.3501 , 3.8501 ] ) | ( [ − 7.2501 , 9.6501 ] [ − 2.8501 , 2.3501 ] ) | ( [ − 2.8501 , 5.2501 ] [ − 2.8501 , 2.3501 ] ) |
( [ − 0.5 , 0.5 ] [ − 0.5 , 0.5 ] ) | ( [ − 5.1251 , − 4.5999 ] [ − 3.3501 , 1.3501 ] ) | ( [ − 5.1251 , − 4.5999 ] [ − 3.3501 , 1.3501 ] ) | ( [ − 5.1251 , − 4.5999 ] [ − 3.3501 , 1.3501 ] ) |
表1. 区间扩展有效性比较
1) 由于 x ∗ 为区间参数非线性方程组(2)的一个解,则存在 f ( x ) ∈ f ( x ) 使得 f ( x ) ∈ f ( x ) ,故
x ∗ = x ∗ − C f ( x ∗ ) = c − C f ( c ) + x ∗ − c − C ( f ( x ∗ ) − f ( c ) ) = c − C f ( c ) + x ∗ − c − C f ′ ( c + θ ( x ∗ − c ) ) ( x ∗ − c ) = c − C f ( c ) + ( I − C f ′ ( c + θ ( x ∗ − c ) ) ) ( x ∗ − c ) ∈ c − C f ( c ) + ( I − C F ′ ( [ x ] ) ) ( [ x ] − c ) ⊆ K ( [ x ] , c ) .
2) 假设 x ∗ ∈ [ x ] 为区间参数非线性方程组(2)的一个解,由(1)可知 x ∗ ∈ K ( [ x ] , c ) 这与条件相矛盾。所以 [ x ] 不包含区间参数非线性方程组(2)的解。
3) 对于任意的 f ( x ) ∈ f ( x ) ,定义 p 1 ( x ) = x − C f ( x ) ,则
p 1 ( x ) = c − C f ( c ) + x − c − C ( f ( x ) − f ( c ) ) = c − C f ( c ) + x − c − C f ′ ( c + θ ( x − c ) ) ( x − c ) = c − C f ( c ) + ( I − C f ' ( c + θ ( x − c ) ) ) ( x − c ) .
因为 x , c ∈ [ x ] ,故 c + θ ( x − c ) ∈ [ x ] ,所以
p 1 ( x ) ∈ c − C f ( c ) + ( I − C F ′ ( [ x ] ) ) ( x − c ) ⊆ K ( [ x ] , c ) .
因为 p ( x ) 在区间向量 [ x ] 内连续且 [ x ] 为非空有界闭凸集,如果 K ( [ x ] , c ) ⊆ [ x ] ,则 { p 1 ( x ) : x ∈ [ x ] } ⊆ [ x ] ,由Brouwer不动点定理可知至少存在 p 1 ( x ) 的一个不动点 x ∗ ∈ [ x ] 使得 C f ( x ∗ ) = 0 。又因为C为非奇异矩阵,所以 f ( x ∗ ) = 0 ,即 [ x ] 一定包含非线性方程组 f ( x ) = 0 的一个解,最后可得 [ x ] 至少包含区间参数非线性方程组(2)的一个解。
命题1:设p为区间参数非线性方程组(1)中的区间参数,如果 ω ( P ) = 0 ,则改进的区间Krawczyk算子等价于区间Krawczyk算子。
很显然,改进的Krawczyk算子 K ( [ x ] , c ) 是映射 p ( x ) 的区间扩展。基于Baumann的中点c的取值方法和引理1,定义
K ( [ x ] , c _ , c ¯ ) = [ x ] − C F ( [ x ] , c _ , c ¯ ) = [ x ] − C ( F N ( [ x ] ) ) ∩ F o ( [ x ] , c ¯ , c _ ) = [ x ] − C ( F N [ x ] ) ∩ F M ( [ x ] , c _ ) ∩ F M ( [ x ] , c ¯ )
其中 c _ 与 c ¯ 的定义见(3)和(4)。同时 K ( [ x ] , c _ , c ¯ ) 与改进的Krawczyk算子具有相同的性质。
定理2:假设区间参数非线性函数 f : D ⊂ R n → R n 连续可微, x ∗ 为区间参数非线性方程组(2)的任一实数解。则
1) K ( [ x ] , c ) ⊇ K ( [ x ] , c _ , c ¯ ) ;
2) 如果 x ∗ ∈ [ x ] ,则 K ( [ x ] , c _ , c ¯ ) ;
3) 如果 K ( [ x ] , c _ , c ¯ ) ∩ [ x ] = ∅ ,则区间 [ x ] 内不含有区间参数非线性方程组(2)的任何解;
4) 如果 K ( [ x ] , c _ , c ¯ ) ⊆ [ x ] ,则 [ x ] 一定包含区间参数非线性方程组(2)的一个解。
证明:
1) 因为
K ( [ x ] , c ) = c − C f ( c ) + ( I − C F ′ ( [ x ] ) ) ( [ x ] − c ) = [ x ] − C ( f ( c ) + F ′ ( [ x ] ) ( [ x ] − c ) ) = [ x ] − C F M ( [ x ] , c ) ,
由式(5)可知
F M ( [ x ] , c ) ⊇ F o ( [ x ] , c _ , c ¯ ) ∩ F N ( [ x ] ) ,
所以
K ( [ x ] , c ) ⊇ K ( [ x ] , c _ , c ¯ ) .
2)、3)、4)的证明与定理1的证明类似,不再赘述。
对于区间参数非线性方程组,如果我们知道某区域一定存在解,可以用降阶的方法进行求解,每一步均可获得解的误差。其主要思想是将区间参数非线性方程组转化为区间参数非线性方程来进行求解。对于区间参数非线性方程组(2),设 [ x ] ( k ) = ( [ x ] 1 ( k ) , [ x ] 2 ( k ) , ⋯ , [ x ] n ( k ) ) T 为包含解的k次近似区间。在第i个分量方程 f i ( x 1 , x 2 , ⋯ , x n ) = 0 中, x = ( x 1 , ⋯ , x n ) T 的前 i − 1 个分量 x 1 , ⋯ , x i − 1 用新求出的 [ x ] 1 ( k + 1 ) , ⋯ , [ x ] i − 1 ( k + 1 ) 代替,而未计算出来的后 n − i 个分量 x i + 1 , ⋯ , x n 仍用 [ x ] i + 1 ( k ) , ⋯ , [ x ] n ( k ) 来代替。可得关于 x i 的非线性方程 f i ( [ x ] 1 ( k + 1 ) , ⋯ , [ x ] i − 1 ( k + 1 ) , x i , [ x ] i + 1 ( k ) , ⋯ , [ x ] n ( k ) ) = 0 ,我们可以用求解非线性方程的迭代法进行求解,如牛顿法等。综上可得区间牛顿降阶法如下:
1) 当 i = 1 时,利用区间牛顿法求解关于 x 1 的方程 f i ( x 1 , [ x ] 2 ( k ) , ⋯ , [ x ] n ( k ) ) = 0 ,得 [ x ] 1 ( k + 1 ) ;
2) 当 i = 2 时,利用区间牛顿法求解关于 x 2 的方程 f i ( [ x ] 1 ( k + 1 ) , x 2 , [ x ] 3 ( k ) , ⋯ , [ x ] n ( k ) ) = 0 ,得 [ x ] 2 ( k + 1 ) ;
3) ……;
4) 当 i = n 时,利用区间牛顿法求解关于 x n 的方程 f i ( [ x ] 1 ( k + 1 ) , ⋯ , [ x ] n − 1 ( k + 1 ) , x n ) = 0 ,得 [ x ] n ( k + 1 ) 。
定理3:如果区间向量 [ x ] ( k ) 包含区间参数非线性方程组(2)的解,则由区间牛顿降阶法所得的区间向量 [ x ] ( k ) 一定包含区间参数非线性方程组(2)的解。
证明:由区间牛顿法的性质 [
当 [ x ] ( k + 1 ) = [ x ] ( k ) 且求解出来的区间向量 [ x ] ( k ) 达不到实际应用的需要时,我们可以采取区间二分法进一步细分区间向量,关于区间二分法的具体情况可参阅 [
对于区间参数非线性方程组,我们先利用改进的Krawczyk算子的分量形式寻求解的存在区域,然后利用区间降阶法求解实际问题需要的解区域(详见算法1)。
为了验证本文提出的算法1的可行性,这里选取了四个数值算例,使用区间工具箱INTLAB-V5.5在计算机(Intel i5, 2.6 GHz/4GB, MATLAB 2012b)进行计算,精度 ε = 10 − 13 ( | x ( k + 1 ) − x ( k ) | < ε 时迭代停止)。
例2:对于区间参数非线性方程组:
{ [ 0.9 , 1.1 ] x 1 2 + x 2 2 − 1 = 0 , x 1 2 − [ 0.9 , 1.1 ] x 2 = 0.
初始区间为 D = ( [ 0 , 1 ] , [ 0 , 1 ] ) T 。应用算法1,可得区间向量
[ x ] ∗ = ( [ 0.73622 , 0.83607 ] , [ 0.54710 , 0.68896 ] ) T ,
区间向量的包含情况如图1。
例3:对于区间参数非线性方程组:
{ − x 1 3 − 5 x 1 2 − x 1 + [ 1.9 , 2.1 ] x 2 − 3 = 0 , − [ 0.9 , 1.1 ] x 1 + x 2 3 + x 2 2 − 14 x 2 − 19 = 0.
初始区间为 D = ( [ 4.5 , 5.7 ] , [ 3 , 4.7 ] ) T 。应用算法1,可得区间向量
[ x ] ∗ = ( [ 4.98328 , 5.016821 ] , [ 3.98764 , 4.01245 ] ) T ,
区间向量的包含情况如图2。
例4:对于区间参数非线性方程组:
{ 2 x 1 − [ 0.9 , 1.1 ] x 2 − 2 = 0 , − [ 0.9 , 1.1 ] x 1 2 − 4 x 1 + 3.5 x 2 + 5 = 0.
初始区间为 D = ( [ − 1 , 1 ] , [ − 1 , 1 ] ) T 。应用算法1,可得区间向量
[ x ] ∗ = ( [ 0.85578 , 1.0000 ] , [ − 0.26220 , 0.02857 ] ) T ,
图1. 例2:解集为灰色部分,外侧矩形部分为算法1的计算结果
区间向量的包含情况如图3。
例5:对于区间参数非线性方程组:
{ sin ( x 1 ) + cos ( x 2 ) − [ − 0.52 , − 0.5 ] = 0 , − 2 cos ( x 1 ) − 2 cos ( x 2 ) + [ 2.99 , 3.01 ] = 0.
初始区间为 D = ( [ − 0.5 , 1 ] , [ 0.5 , 1.5 ] ) T 。应用算法1,可得区间向量
[ x ] ∗ = ( [ − 0 .00533,0 .02503 ] , [ 1 .04104,1 .05299 ] ) T ,
区间向量的包含情况如图4。
图2. 例3:解集为灰色部分,外侧矩形部分为算法1的计算结果
图3. 例4:解集为灰色部分,外侧矩形部分为算法1的计算结果
图4. 例5:解集为灰色部分,外侧矩形部分为算法1的计算结果
根据以上算例的数值计算结果可以看出,在计算精度内由算法1计算得到的区间参数非线性方程组的解集可充分包含其实际解集,进而说明了算法1的可靠性与有效性。
本文研究了区间参数非线性方程组的解集,在区间Krawczyk算子基础之上进行改进获得改进的区间Krawczyk算子并结合区间降阶法提出了求解区间参数非线性方程组的区间算法,最后通过数值算例表明算法1的可行性。
本文工作由江苏省自然科学基金(NO.BK20151139)支持。
王琪,肖旺,王海军. 求解区间参数非线性方程组的数值方法Numerical Method for Solving Nonlinear Equations with Interval Parameter[J]. 应用数学进展, 2017, 06(07): 871-880. http://dx.doi.org/10.12677/AAM.2017.67105