到目前为止所讲述的很多迭代法,一般地只有当初始值足够靠近真解x∗时,才会收敛到f(x)=0的一个解x∗。连续法可以认为是一种试图扩大某种给定方法的收敛区域的方法。在很多物理系统中,用数学方程f(x)=0描述的问题可能以某种自然方式依赖于系统的某个参数λ。当这个参数被设置为零时,系统f0(x)=0具有一个已知的解x0。但是,当λ变化时,存在一族函数H(x,λ),满足:
H(x,0)=f0(x),H(x,1)=f(x) (3.47)
式中,H(x,0)=0的一个解x0是已知的,而方程H(x,1)=0是希望求解的问题。
即使f(x)不是自然地依赖于某个合适的参数λ,满足式(3.47)的一族问题也可以用下式来定义:
H(x,λ)=λf(x)+(1-λ)f0(x),λ∈[0,1] (3.48)
式中,f0(x)=0的解x0已知的。当λ从0变到1时,上式的映射族从f0(x)=0变到f1(x)=0,而方程f1(x)=f(x)=0的解是希望求出的解x1=x∗。
作为获得x1=x∗的第1种方法,区间[0,1]可以被分割成
0=λ0<λ1<λ2<…<λN=1
并考虑求解如下问题:
H(x,λi)=0,i=1,…,N (3.49)
再假定采用Newton-Raphson法来求解式(3.49)中的每一个问题i,并假定第i个问题的初始值取H(x,λi-1)=0的解。当i和i+1之间的间隔足够小时,这种做法就解决了确定好的初始值的问题。
式(3.48)给出的关系是一个“同伦”的例子,所谓同伦,就是两个函数f(x)和f0(x)嵌入在单个连续函数中。正规地描述,任何两个函数之间的同伦是一个连续映射f,f0:X→Y:
H:[0,1]×X→Y (3.50)
使得式(3.47)成立。如果这样的映射存在,就说f与f0同伦。
同伦函数被用来定义一条解的路径,从一个相对简单的问题(f0(x)=0)的解到一个比较复杂的问题的解(f(x)=0),而后者正是希望得到的。这条路径由一族问题的解构成,它反映了从简单问题的解到所希望问题的解之间的连续形变。连续法是一种跟踪此形变路径的数值方法。
同伦连续法可以被构造成穷尽性的且全局收敛,即对于一个给定的非线性方程组,不管初始值如何选择,都能求出其所有的解并且是收敛的[58]。由于沿着解的路径,对于λ∈[0,1]的每一点,同伦问题等于0。因此对于路径上连续的两点λ=λk和λ=λk+1时它也为0,从而有
0=H(xk,λk)=λkf(xk)+(1-λk)f0(xk) (3.51)
0=H(xk+1,λk+1)=λk+1f(xk+1)+(1-λk+1)f0(xk+1) (3.52)在解的路径上,同伦参数λk+1与参数集
xk+1=xk+Δx相关。如果参数变化很小,函数f0(xk+1)和f(xk+1)就可以用在xk处的Taylor级数展开来线性近似,忽略二次及以上的高次项。对式(3.52)应用此技术得
(λk+Δλ)[f(xk)+Fx(xk)Δx]+(1-λk-Δλ)[f0(xk)+F0x(xk)Δx]=0 (3.53)
式中,Fx和F0x分别是f(x)和f0(x)关于x的Jacobi矩阵。从式(3.53)减去式(3.51)得
0=[λk+1Fx(xk)+(1-λk+1)F0x(xk)]Δx+[f(xk)-f0(xk)]Δλ(3.54)利用xk+1=xk+Δx,式(3.54)可以用同伦函数进行改写,并得到如下的更新方程:
式中,
λk+1=λk+Δλ
而Hx(x,λ)是H(x,λ)关于x的Jacobi矩阵。(www.xing528.com)
例3.6 使用同伦映射求解如下方程组
0=f1(x1,x2)=x21-3x22+3 (3.56)
0=f2(x1,x2)=x1x2+6 (3.57)
其中起点方程组为
0=f01(x1,x2)=x21-4 (3.58)
0=f02(x1,x2)=x22-9 (3.59)
解3.6 构造同伦函数如下:
H(x,λ)=λf(x)+(1-λ)f0(x),λ∈[0,1] (3.60)
0=λ(x21-3x22+3)+(1-λ)(x21-4) (3.61)
0=λ(x1x2+6)+(1-λ)(x22-9) (3.62)
采用连续法根据式(3.55)将解向前推进:
λk+1=λk+Δλ (3.63)
采用Newton-Raphson法直接求解如下的同伦方程使解精确化:
0=λk+1((x1k+1)2-3(x2k+1)2+3)+(1-λk+1)((x1k+1)2-4) (3.65)
0=λk+1(x1k+1x2k+1+6)+(1-λk+1)((x2k+1)2-9) (3.66)取Δλ=0.1,从λ0=0开始计算,很容易得到初始值为
x01=2
x02=3
根据式(3.63)和式(3.64)预测k=1时的解得到:
x11=2.3941
x21=2.7646
以此为初始值对式(3.65)和式(3.66)应用Newton-Raphson法使解精确化,得到:
x11=2.3628
x21=2.7585重复这个过程直到λ=1,可得到所求问题的正确解为x1=-3和x2=2。
如果取初始解为x01=-2和x02=-3,也可以进行同样的求解过程。这种情况下,所求问题的解将为x1=3和x2=-2,是原方程组的另一组解。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。