Skip to content

19.2.2 非线性方程组

若含有 n 个未知量 x1,x2,,xnn 个方程的非线性方程组

(19.55)Fi(x1,x2,,xn)=0(i=1,2,,n)

有解, 通常数值解仅可由迭代法得到.

19.2.2.1 一般迭代法

若方程 (19.55) 可以转化为不动点形式

(19.56)xi=fi(x1,x2,,xn)(i=1,2,,n),

则可用一般迭代法. 从估计的近似值 x1(0),x2(0),,xn(0) 出发,通过下面的方法得到改进值.

1. 同步迭代

(19.57)xi(μ+1)=fi(x1(μ),x2(μ),,xn(μ))(i=1,2,,n;μ=0,1,2,).

2. 顺序迭代

xi(μ+1)=fi(x1(μ+1),,xi1(μ+1),xi(μ),xi+1(μ),,xn(μ))(19.58)(i=1,2,,n;μ=0,1,2,).

对该方法收敛性特别重要的是,在解的邻域函数 fi 应该较弱地依赖于未知量, 即如果函数 fi 可微,其偏导数的绝对值必须相当小. 我们得到收敛性条件

K<1

其中

(19.59)K=maxi(k=1nmax|fixk|).

带有量 K 的误差估计如下:

(19.60)maxi|xi(μ+1)xi|K1Kmaxi|xi(μ+1)xi(μ)|,

这里 xi 为要求的解的分量, xi(μ)xi(μ+1) 为相应的第 μ 次和第 μ+1 次近似值.

19.2.2.2 牛顿法

牛顿法可以用来求解形如 (19.55) 的问题. 在得到初始近似值 x1(0),x2(0),,xn(0) 后, Fi 作为 n 个独立变量 x1,x2,,xn 的函数按泰勒公式展开 (参见第 630 页 7.3.3.3,1.). 在线性项后终止展开, 由 (19.55) 可得线性方程组, 其迭代改进则通过如下公式得到

Fi(x1(μ),x2(μ),,xn(μ))+k=1nFixk(x1(μ),,xn(μ))(xk(μ+1)xk(μ))=0(19.61)(i=1,2,,n;μ=0,1,2,).

要在每一步迭代中求解的线性方程组 (19.61) 的系数矩阵为

(19.62)F(x(μ))=(Fixk(x1(μ),x2(μ),,xn(μ)))(i,k=1,2,,n),

称之为雅可比矩阵. 若雅可比矩阵在解的邻域内是可逆的, 牛顿法是局部平方收敛的,即收敛基本上依赖于是否适当选取了初始近似值. 若在 (19.61) 中代入 xk(μ+1) xk(μ)=dk(μ) ,则牛顿法可写成校正形式

(19.63)xk(μ+1)=xk(μ)+dk(μ)(i=1,2,,n;μ=0,1,2,).

为降低对初值的依赖性,与松弛法类似,引入所谓阻尼或步长参数 γ (阻尼法):

(19.64)xk(μ+1)=xk(μ)+γdk(μ)(i=1,2,,n;μ=0,1,2,;γ>0).

确定参数 γ 的方法见 [19.31].

19.2.2.3 无导数高斯-牛顿法

为求解最小二乘问题 (19.24), 对非线性问题可以进行如下迭代:

(1) 从适当的初值 x1(0),x2(0),,xn(0) 出发,对于非线性函数 Fi(x1,x2,,xn) (i=1,2,,m;m>n) 由牛顿法 (19.61) 的线性函数 F~i(x1,x2,,xn) 近似,得到迭代步骤如下:

F~i(x1,,xn)=Fi(x1(μ),x2(μ),,xn(μ))+k=1nFixk(x1(μ),,xn(μ))(xkxk(μ))(i=1,2,,m;μ=0,1,2,).

(19.65)

(2) 在 (19.65) 中代入 dk(μ)=xkxk(μ) ,校正项 dk(μ) 由高斯最小二乘法,即求解线性最小二乘问题确定

(19.66)i=1mF~i2(x1,,xn)=min,

例如借助正则方程 (见 (19.42)), 或豪斯霍尔德方法 (参见第 1280 页 19.6.2.2).

(3)所求解的近似值由以下公式给出:

(19.67a)xk(μ+1)=xk(μ)+dk(μ)

(19.67b)xk(μ+1)=xk(μ)+γdk(μ)(k=1,2,,n),

其中 γ(γ>0) 类似于牛顿法为步长参数.

重复步骤 (2) 与步骤 (3),用 xk(μ+1) 代替 xk(μ) 得到高斯-牛顿法. 于是得到近似值序列,其收敛性依赖于初值的准确性. 误差的平方和可以通过引入参数 γ 而降低.

如果偏导数 Fixk(x1(μ),,xn(μ))(i=1,2,,m;k=1,2,,n) 的计算量过大, 偏导数可由以下差分近似得到

Fixk(x1(μ),,xk(μ),,xn(μ))1hk(μ)[Fi(x1(μ),,xk1(μ),xk(μ)+hk(μ),xk+1(μ),,xn(μ))Fi(x1(μ),,xk(μ),,xn(μ))](19.68)(i=1,2,,m;k=1,2,,n;μ=0,1,2,).

所谓离散步长 hk(μ) 可能依赖于迭代步数和变量值.

若用 (19.68) 近似,则高斯-牛顿法仅需计算函数值 Fi ,即该方法是与导数无关的.

version 1.24.0