§2.6 非线性方程组的简单迭代法
非线性方程组的简单迭代法与一元非线性方程 的迭代法有相似之处。
为简单起见,以二元方程组为例。 已知二元非线性方程组:
f1x1,x20 (2-17)
f2x1,x20将式(2-17)改写为
x11x1,x2 (2-18) x22x1,x2式(2-18)可以简记为
XX (2-19) 其中:Xx1,x2
将(2-19)写成迭代格式:
X(k1)X(k) (2-20)
T在求解区间内任取初值X(0),按式(2-20)迭代,如果 迭代序列X(k)最终收敛到X*,满足X*X*,
则X*即为原方程的解。而如果迭代序列不收敛, 则不能说明原方程无解,仅说明该迭代法失败。
在给出收敛性定理之前,首先定义 雅可比(Jacobi)矩阵:
111xx2xn1222 Jx1x2xn 简记:J
nnnxnx1x2 (2-21)
定理2-2:设X*是XX的解,X在
RXXX*内连续可微,且
XM1,则对任何在R中的初始向量X(0), 迭代X(k1)X(k)产生的序列X(k)都收敛于X*, 且有误差估计:
1Mk(k)(k1)(k)X*XXXX(1)X(0)
1M1M (2-22)
定理2-2可以看作是定理2-1对于非线性方程组 的推广。
[例题2-4] 用简单迭代法求如下方程组的根。
330x1xy6x30R: 3 3xy6y200y1解:改写原方程组为
1313xxy1x,y62
11yx3y32x,y63容易验证:当XR时,XR。
实际上,当X(0)x0,y0R时,有
131113133y0, x0y0 0x063666根据1x,y、2x,y表达式,就有
1511 xk, yk
2662即,以后各次迭代X(k)均在此区域内。
再考察雅可比矩阵:
11x2y2xy222 XJ2 xy22y22xT按上面确定的X(k)取值区间,计算该矩阵的行和范数: x2y2x2y2 Xmax,0.473M1
2211根据定理2-2,取初值x0、y0,则迭代
221313xx,yxy1kkkkk162
1133yk12xk,ykxkyk63收敛,计算结果如下:
X(1)0.541666667,0.333333333T
X(8)0.532370397,0.351257464TT
X(9)0.532370377,0.3512574501X(9)X(8)38.108 X*X(8)1M
§2.7 非线性方程组的牛顿法
解非线性方程组的牛顿法,属于线性化的方法,
它是将非线性方程组以一线性方程组来近似,由此 构造一种迭代格式,用以逐次逼近最终的解。 考虑如下非线性方程组
f1x,y0 (2-23)
fx,y02设已知式(2-23)解的一组近似值x0,y0,在 此近似值附近将非线性函数f1、f2做级数展开, 仅保留线性项: f1x,yf1x0,y0xx0f1x0,y0yy0f1x0,y0xy(2-24) f2x,yf2x0,y0xx0f2x0,y0yy0f2x0,y0xy令:
xxx0 , yyy0 (2-25) 将式(2-24)、(2-25)代入到式(2-23),得到一个关于 x、y的线性方程组
xfx,yyf1x0,y0f1x0,y0100xy(2-26) xf2x0,y0yf2x0,y0f2x0,y0xy如果式(2-26)的系数行列式不等于零,即
f1x0,y0f1x0,y0xy0 (2-27) Jfx,yfx,yx200y200那么,就可从式(2-26)解线性方程组求得x、y, 再由式(2-25)得到原非线性方程组的一组新近似值:
xx0x 1 (2-28)
y1y0y以x1,y1代替x0,y0,重复以上过程,直至满足 条件:
maxf1,f2 (2-29)
为止。最后得到的近似值即为所求解。这里的是 给定的允许误差。
可以证明,在式(2-27)条件下,当初值充分接 近原方程的解时,牛顿迭代过程收敛速度很快。但 如果初值不好,很有可能发散。
§2.8 非线性方程组的最速下降法
最速下降法属于求函数极小值的方法,它是由 已知非线性函数构造一个模函数,然后求出模函数 的极小值点,而此极小值点就是非线性方程组的一 组解。
一、计算方法
设已知非线性方程组
f1x,y0 (2-30)
f2x,y0构造模函数
x,yf1x,y2f2x,y (2-31)
2显然,方程组(2-30)的解是模函数x,y的零极小 值点,反之亦然。因此,可以通过求x,y的零 极小值点来得到方程组(2-30)的解。
模函数x,y在几何上是一个空间曲面,它 与xoy平面相切的点即是它的零极小值点。 见图2-8(a)。
图2-8 最速下降法
如果从求解区间内的某点x0,y0出发,沿着 使值下降的方向行进,一直降到它的零极小值点, 那么就可以得到所求问题的解。
在一点处等高线的法向是函数的梯度方向
, G (2-32) xyT
是使值上升最快的方向,因此其反方向G就是 下降最快的方向。最速下降法就是沿着这样的方 向来逐步下降值从而求解的,因此得名。
具体做法如下:设x0,y0是解的一个近似值, 计算在此点的梯度 G0gx0,gy0T (2-33)
其中
f1f22f1f2gx0xxx00
f1f2g2f1f2y0y0y0y角标“0”表示括号内的函数在x0,y0点取值。
从x0,y0点出发,沿该点负梯度方向G0 跨出一适当步长,得到一组新的近似值
x1x0gx0 (2-34)
yyg0y01参数用来调整步长,其值应使新点x1,y1是
x,y在此G0方向上的相对极小值点,即
x1,y1x0,y0 (2-35) 为了求得恰当的值,将x1,y1在x0,y0 附近作级数展开,并略去3及高次项,得到的
近似式
x0gx0,y0gy022f1f12f1f1gy0gy0f12f1gx0gx0xyxy
2fffff222f2gx02gy022gx02gy02xyxy (2-36)
为使x1,y1取极小,令
0x0gx0,y0gy00 (2-37) 由此解得
f1f1f2f2gx0gy0gy0f1gx0f2xyxy 22f2f2gx0f1gy0f1gy0gx0xyxy0 (2-38)
将值代入到式(2-34)得到新点x1,y1,以此作为 沿G0方向的相对极小值点的近似值。
不过这里要注意,如果所得值能使式(2-35) 成立,则就取该值;否则,就要缩小值,例如 取2代入式(2-34),直至式(2-35)满足为止。
这样就完成了第一步计算,然后以x1,y1取代
x0,y0重复以上过程,直至降至充分小为止。
关于值的确定,上面是较精确的作法,下面 是简化方法:
将x1,y1在x0,y0附近作级数展开时, 只保留的一次项(上面作法是保留到2项),得到 的近似式
x1,y1x0,y0x1x0y1y0xy0x0,y0gx0gy0xy0 由于目标是使x1,y1取极小,可令 x1,y10 由此解得
x0,y0x0,y022gx0xgy0y0xy0
10224f2f1f2f1ffff1212xxyy0 (2-39)
以此值替换式(2-38)继续前述过程。
二、几点说明
1、一般来讲,最速下降法对任意初值都能收 敛,而且开始阶段收敛较快,但接近真解时,收敛 速度十分缓慢,这与牛顿法刚好相反。因此,在实 际计算中,可将两者结合:开始采用最速下降法, 离真解较近时,改用牛顿法。
2、对难于求偏导数或偏导数计算过于繁复的 问题,可以用差商来近似微商(详见本书第五章):
fixh,yfix,yfihx i1,2
fix,yhfix,yfihy关于步长h可以这样选取:
开始如取h103,在第k次迭代时,取
31 hkminxxk1,yk1 10,ma10f12f22
其中xk1xk1xk2;yk1yk1yk2为上一次 的迭代修正量。
3、因为机器字长的原因,当模函数值较小 时,可能影响计算精度,这时可取 f1f2
4、关于非线性方程组的蒙特卡洛解法详见本 书第八章。
因篇幅问题不能全部显示,请点此查看更多更全内容