非线性方程组数值解法的正文
n个变量n个方程(n >1)的方程组表示为
(1)
式中ƒi(x1,x2,…,xn)是定义在n维欧氏空间R 的开域D上的实函数。若ƒi中至少有一个非线性函数,则称(1)为非悄逗线性方程组。在R 中记
ƒ=
则(1)简写为ƒ(尣)=0。若存在尣∈D,使ƒ(尣)=0,则称尣为非线性方程组的解。方程组(1)可能有一个解或多个解,也可能有无穷多解或无解。对非线性方程组解的存在性的研究远不如线性方程组那样成熟,现有的解法也不象线性方程组那样有效。除极特殊的方程外,一般不能用直接方法求得精确解,目前主要采用迭代法求近似解。根据不同思想构造收敛于解尣的迭代序列{尣}(k=0,1,…),即可得到求解非线性方程组的各种迭代法,其启卜卖中最著名的是牛顿法。
非线性方程组数值解法 - 牛顿法及其变形 牛顿法基本思想是将非线性问题逐步线性化而形成如下迭代程序:
(2)
式中
是ƒ(尣)的雅可比矩阵,尣是方程(1)的解尣的初始近似。
这个程序至少具有2阶收敛速度。由尣算到尣的步骤为:①由尣算出ƒ(尣)及
;②用直接法求线性方程组
的解Δ尣;③求
。
由此看到迭代一次需计算n个分量函数值和 n个分量偏导数值,并求解一次n阶线性方程组。
为了评价非线性方程组不同迭代法的优劣,通常用效率
作为衡量标准,其中P为迭代法的收敛阶,W为每迭代步计算函数值ƒi及偏导数值
的总个数(每迭代步中求一次逆的工作量相同,均不算在W 内)。效率e越大表示此迭代法花费代价越小,根据效率定义,牛顿法(2)的效率为
。
牛顿法有很多变形,如当
奇异或严重病态时,可引进阻尼因子λk,得到阻尼牛顿法,即
式中I是单位矩阵。牛顿法是局部收敛方法,因而对初始近似尣限制较严,为放宽对尣的要求,扩大收敛范围,通常可引进松弛因子ωk,得到牛顿下降法:
(3)
式中ωk的选择应使
成立。
为减少解线性方程组次数,提高效率,可使用修正牛顿程序
(4)
这种算法也称为萨马斯基技巧,它的收敛阶为 p =m+1,由尣 计算
的工作量为W =n+mn,于是该法的效率
。当n=10,m=7时,
当n=100,m=37时,
,由此看到修正牛顿法(4)比牛顿法效率高,且m 越大效果越明显。
在计算机上往往采用不计算偏导数的弊滚离散牛顿法,即
(5)
式中
,
其中ej为基向量,
,若取
,则(5)仍具有2阶收敛速度。其效率与牛顿法相同。
若在牛顿法(2)中解线性方程组不用直接法,而采用迭代法则得到一类解非线性方程组的双重迭代法。按解线性方程组采用的方法不同就得到不同名称的迭代法,如牛顿-赛德尔迭代法,牛顿-SOR迭代法,牛顿-ADI迭代法,等等。这些方法都具有超线性收敛速度,工作量也比牛顿法大,除了对某些特殊稀疏方程组外,通常用得校少。若将解线性方程组迭代法的思想直接用于非线性方程组(1),然后把(1)化为一维方程求解,可得到另一类双重迭代法,由于采用的迭代法与解一维非线性方程的方法不同,则得到不同的双重迭代法。如果利用SOR迭代法后再用牛顿法解一维方程则得SOR-牛顿迭代法,在牛顿法中只计算一步而不进行迭代,则得一步的SOR-牛顿迭代,其计算公式可表示为
式中记号嬠iƒi表示
;ω为迭代参数,当ω=1时就是赛德尔-牛顿迭代法,这类方法对解维数高的稀疏的非线性方程组是有效的。
2024-04-02 广告