李占松
【摘 要】自然界的所有现象严格来讲都是非线性的。非线性代数方程式是描述自然现象的基本数学形式。牛顿—拉普森切线法是求解非线性代数方程式常用方法之一。线性代数方程组常用的求解方法有迭代法和列主元消去法。非线性代数方程式和线性代数方程组求解方法可分别给出如下启示:事物的发展可能会有不同的结果,立足点不同发展结果可能不同,能且高效地得到理想的结果必须适时调整立足点;凡事都有先后顺序,做事必须按部就班、循序渐进,切忌一蹴而就的心态。
【关键词】非线性代数方程式;线性代数方程组;求解方法;启示
0 引言
自然界所有的现象严格来讲都是非线性的。描述非线性现象最简单的数学模型就是非线性代数方程式。非线性代数方程式存在多解性。迭代法是求解非线性方程式常用的方法之一。初值的选取对迭代结果有着决定性的影响。推而广之,与时间相关的微分方程解对初始条件具有敏感依赖性的特征,这两者之间有着密切的联系。为了使问题得以简化,非线性代数方程式通常都先简化成线性代数方程式的形式。多个相联系的线性代数方程式就构成了线性代数方程组。迭代法和高斯列主元消去法是线性代数方程组常用的两种求解方法[1]。迭代法求解线性代数方程组时,未知量是逐个进行迭代的。高斯列主元消去法,是将方程排序之后,逐列消元然后逆序回代的。先期进行的计算一般都会对后续计算产生影响。对这些数学问题求解过程进行思考,能够给我们的思维方式以有益的启示。
1 非线性代数方程式求解过程及其特征
1.1 求解过程
迭代法通常包括简单迭代法和牛顿—拉普森切线法等。现选取后者,并以求非线性代数方程式x4-1=0的解为例进行分析。
该非线性方程式理论有四个解分别为:1,-1,i,-i。
用复数x=a+bi的形式表示这四个解,其实部和虚部分别为:
a=1,b=0a=-1,b=0a=0,b=1a=0,b=-1(1)
令f(x)=x4-1,則f'(x)=4x3。牛顿—拉普森切线法迭代公式通式为:
x1=x0-(2)
其中,x0表示迭代的初值,x1表示迭代的结果。其原理可用图1示意。
图1 牛顿拉普森切线法示意图
图2 迭代精度为0.001时的图形
那么,该例迭代公式的具体形式为:
x1=x0-(3)
化简得
x1=3x+(4)
而x0=a0+b0i(5)
x20=a20-b20+2a0b0i(6)
x30=(a30-a0b20-2a0b20)+[(a20-b20)b0+2a20b0]i
=(a30-3a0b20)+(3a20b0-b30)i(7)
则
=i(8)
那么
(9)
所以
(10)
(10)式中的第一式即为复数实部的迭代公式,第二式即为复数虚部的迭代公式。
1.2 计算结果的图形显示及其特征
每个解用一种颜色表示。四个解分别用红黄蓝绿表示。将解对应的颜色涂在相应的迭代初值位置上。若迭代过程中超出设置的实部和虚部绝对值之和最大限值,则在初值位置上显示为背景色。不同迭代精度则会呈现出不一样的美妙图形。图2为迭代精度为0.001时的图形。
从图形可以看出,收敛于四个解的区域犬牙交错。在相邻两个解对应收敛初值区域边缘,收敛解对初值具有高度的敏感依赖性。
2 线性代数方程组求解方法及其特征
2.1 迭代法
以三元一次方程组为例阐述迭代法求解线性代数方程组的过程:
a11x1+a12x2+a13x3=b1a21x1+a22x2+a23x3=b2a31x1+a32x2+a33x3=b3(11)
先构造迭代方程组的形式:
x1=(b1-a12x2-a13x3)/a11x2=(b2-a21x1-a23x3)/a22x3=(b3-a31x1-a32x2)/a33(12)
选取初值:x、x和x,即可进行第一步迭代计算。
若选取雅可比迭代法,其迭代公式形式为:
x=(b1-a12x-a13x)/a11x=(b2-a21x-a23x)/a22x=(b3-a31x-a32x)/a33(13)
若选取赛德尔迭代法,其迭代公式形式为:
x=(b1-a12x-a13x)/a11x=(b2-a21x-a23x)/a22x=(b3-a31x-a32x)/a33(14)
当然,根据方程组的不同性质,为了使迭代稳定或加快收敛速度,可以分别采用欠松弛迭代法或超松弛迭代法。此处不再一一赘述。
可以视具体情况选择绝对误差和相对误差中的一种形式,设置一定的精度,当进行一次迭代之后,比较所有未知量迭代初值和迭代结果之间的误差,判别是否满足要求。如果满足精度要求,迭代结束;否则,本次迭代结果作为下次迭代初值,继续进行迭代计算,直到满足精度要求为止。
2.2 高斯列主元消去法
以n元一次方程组为例,阐述其求解过程。
a11x1+a12x2+…+a1nxn=a1,n+1a21x1+a22x2+…+a2nxn=a2,n+1 ……an1x1+an2x2+…+annxn=an,n+1(15)
求解过程的计算步骤为:
(1)选主元(第k步)(k=1,2,…,n-1)
假设主元在第l行,也就是从第k行至第n行比较所有第k列的系数,第l行的绝对值最大。即endprint
a=maxa(i=k,k+1,…,n)(16)
换元:把a换为主元
b=aa=aa=bj(j=k,k+1,…n,n+1)(17)
(2)消元(第k步)(k=1,2,…,n)
a=a/a(j=k,k+1,…,n,n+1)(18)
a=a/aa(19)
选主元换元与消元的过程是交替进行的,整体上需要进行n步。仅仅是第n步由于仅剩一个方程(第n个方程),就没有了选主元换元的过程,消元也仅仅是将其主系数化为1即可。
进行到第n步得:
x+ax+ax+…+ax=ax+ax+…+ax=a ┇x+ax=ax=a(20)
(3)回代:
xn=a(21)
xk=a-ax(k=n-1,n-2,…,2,1)(22)
2.3 求解方法的特征
迭代法求解线性代数方程组,无论是(13)式对应的雅克比迭代法,还是(14)式对应的赛德尔迭代法,求解时都是由第一个方程至第三个方程顺序进行,雅克比迭代法各未知量的本次迭代结果相互之间没有影响,仅对下次迭代结果相互之间有影响;而赛德尔迭代法及其松弛迭代法,本次迭代时迭代结果之间就有相互影响,以第一个方程式至第三个方程式顺序求解,则第一个未知量的迭代值将影响第二个未知量的迭代值,依此类推,并可推广至n元一次方程组。
高斯列主元消去法求解线性代数方程组时,第(1)步选主元换元之后,第(2)步消元时是从第k+1列直至第n列,将所有系数行列式左下角的元素均消为零,第(3)步回代是由第n-1个方程直至第1个方程求出相应的未知量。也就是说,整个的求解过程也是有先后顺序的。实际编程计算时,可把线性代数方程组作为矩阵方程式,利用矩阵进行运算,表面上看是所有未知量同时求解的,其实矩阵运算的(下转第52页)(上接第6页)原理和线性代数方程组求解方法之间并没有实质性的不同,只是程序结构不同而已。
可见,无论是采用赛德尔迭代法还是采用高斯列主元消去法求解线性代数方程组,都不可能所有未知量并行同时求解。每一步求解时,后求解的未知量都要受已求解未知量的影响;每一步求解都是在上一步求解的基础上进行的。这样按顺序一步一步求解下去,才能得出最终的结果。
当然,如果最终是要求解非线性代数方程组,而非线性代数方程组解对初值有敏感的依赖性,求解顺序不同其求解过程亦不相同,初值所包含的不可避免的误差传播特性也不相同,也有可能得到不同的结果。这属于另外一个研究的热点领域。
4 结语
对非线性代数方程式与线性代数方程组求解过程及其特征分析,可分别得到如下启示:(1)对于复杂问题,可以有不同的结果。想要得到理想的结果,就必须有相应的理想的出发点,然后坚持不懈的走下去。如果有质的或量的偏差,就要及时的调整,前者可以改变结果,后者可以提高工作效率。(2)无论做什么事情,都是有先后顺序的。切忌做事情一开始就抱着一蹴而就的心态。凡事都要按部就班、脚踏实地,分步骤分阶段,循序渐进一步一步解决,集阶段成果才能得到最终整体的成果。
【参考文献】
[1]杨景芳编著.微機水力学[M].大连理工大学出版社,1991年5月第1版:1-21.endprint