首页 理论教育 连续法:扩大方法收敛区域的数值方法

连续法:扩大方法收敛区域的数值方法

时间:2023-06-30 理论教育 版权反馈
【摘要】:连续法可以认为是一种试图扩大某种给定方法的收敛区域的方法。式给出的关系是一个“同伦”的例子,所谓同伦,就是两个函数f和f0嵌入在单个连续函数中。正规地描述,任何两个函数之间的同伦是一个连续映射f,f0:X→Y:H:[0,1]×X→Y 使得式成立。这条路径由一族问题的解构成,它反映了从简单问题的解到所希望问题的解之间的连续形变。连续法是一种跟踪此形变路径的数值方法。

连续法:扩大方法收敛区域的数值方法

到目前为止所讲述的很多迭代法,一般地只有当初始值足够靠近真解x时,才会收敛到fx)=0的一个解x。连续法可以认为是一种试图扩大某种给定方法的收敛区域的方法。在很多物理系统中,用数学方程fx)=0描述的问题可能以某种自然方式依赖于系统的某个参数λ。当这个参数被设置为零时,系统f0x)=0具有一个已知的解x0。但是,当λ变化时,存在一族函数Hxλ),满足:

Hx,0)=f0x),Hx,1)=fx) (3.47)

式中,Hx,0)=0的一个解x0是已知的,而方程Hx,1)=0是希望求解的问题。

即使fx)不是自然地依赖于某个合适的参数λ,满足式(3.47)的一族问题也可以用下式来定义:

Hxλ)=λfx)+(1-λf0x),λ∈[0,1] (3.48)

式中,f0x)=0的解x0已知的。当λ从0变到1时,上式的映射族从f0x)=0变到f1x)=0,而方程f1x)=fx)=0的解是希望求出的解x1=x∗。

作为获得x1=x∗的第1种方法,区间[0,1]可以被分割成

0=λ0<λ1<λ2<…<λN=1

并考虑求解如下问题:

Hxλi)=0,i=1,…,N (3.49)

再假定采用Newton-Raphson法来求解式(3.49)中的每一个问题i,并假定第i个问题的初始值取Hxλi-1)=0的解。当ii+1之间的间隔足够小时,这种做法就解决了确定好的初始值的问题。

式(3.48)给出的关系是一个“同伦”的例子,所谓同伦,就是两个函数fx)和f0x)嵌入在单个连续函数中。正规地描述,任何两个函数之间的同伦是一个连续映射ff0XY

H:[0,1]×XY (3.50)

使得式(3.47)成立。如果这样的映射存在,就说ff0同伦。

同伦函数被用来定义一条解的路径,从一个相对简单的问题(f0x)=0)的解到一个比较复杂的问题的解(fx)=0),而后者正是希望得到的。这条路径由一族问题的解构成,它反映了从简单问题的解到所希望问题的解之间的连续形变。连续法是一种跟踪此形变路径的数值方法。

同伦连续法可以被构造成穷尽性的且全局收敛,即对于一个给定的非线性方程组,不管初始值如何选择,都能求出其所有的解并且是收敛的[58]。由于沿着解的路径,对于λ∈[0,1]的每一点,同伦问题等于0。因此对于路径上连续的两点λ=λkλ=λk+1时它也为0,从而有

0=Hxkλk)=λkfxk)+(1-λkf0xk) (3.51)

0=Hxk+1λk+1)=λk+1fxk+1)+(1-λk+1f0xk+1) (3.52)在解的路径上,同伦参数λk+1与参数集

xk+1=xkx相关。如果参数变化很小,函数f0xk+1)和fxk+1)就可以用在xk处的Taylor级数展开来线性近似,忽略二次及以上的高次项。对式(3.52)应用此技术得

λkλ)[fxk)+Fxxk)Δx]+(1-λkλ)[f0xk)+F0xxk)Δx]=0 (3.53)

式中,FxF0x分别是fx)和f0x)关于x的Jacobi矩阵。从式(3.53)减去式(3.51)得

0=[λk+1Fxxk)+(1-λk+1F0xxk)]Δx+[fxk)-f0xk)]Δλ(3.54)利用xk+1=xkx,式(3.54)可以用同伦函数进行改写,并得到如下的更新方程:

式中,

λk+1=λkλ

Hxxλ)是Hxλ)关于x的Jacobi矩阵。(www.xing528.com)

例3.6 使用同伦映射求解如下方程组

0=f1x1x2)=x21-3x22+3 (3.56)

0=f2x1x2)=x1x2+6 (3.57)

其中起点方程组为

0=f01x1x2)=x21-4 (3.58)

0=f02x1x2)=x22-9 (3.59)

解3.6 构造同伦函数如下:

Hxλ)=λfx)+(1-λf0x),λ∈[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+12-3(x2k+12+3)+(1-λk+1)((x1k+12-4) (3.65)

0=λk+1x1k+1x2k+1+6)+(1-λk+1)((x2k+12-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,是原方程组的另一组解。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈