大型线性方程组求解

出处:按学科分类—工业技术 北京出版社《现代综合机械设计手册上》第192页(1418字)

有限元程序用于求解工程问题时,单元网格剖分很多,组集成线性方程组〔K〕{U}={R}的阶数很高。如何求解大型线性方程组,是有限单元法成功的关键。通常有两大类解法:直接法和迭代法。

(1)直接法

直接法在运算中产生舍入误差的积累,但运算次数较少,一般用于几千阶线性方程组的求解。直接法的解法种类较多,多数源出自高斯消去法。常用的有以下两种:

①三角分解解法:先将总刚矩阵〔K〕分解成二个三角形矩阵和一个对角矩阵的乘积,即

〔K〕=〔L〕T〔D〕〔L〕

式中 〔L〕为单位上三角形矩阵;〔D〕为对角矩阵。

然后由〔L〕T〔D〕〔L〕{U}={R}式求得总体位移矢量{U}。令中间矢量{V}=〔D〕〔L〕{U},则先用前消算法从〔L〕T{V}={R}式中求得中间矢量{V},再用回代算法由〔L〕{U}=〔D〕-1{V}求得总体位移矢量{U}。

②平方根法(乔利斯基Cholesky法):先将总刚矩阵〔K〕分解为

〔K〕=〔L〕T〔L〕

式中 〔L〕为上三角形矩阵。

再由〔L〕T〔L〕{U}={R}求得总体位移矢量{U}。令中间矢量{V}=〔L〕{U},则先用前消算法由〔L〕T{V}={R}求出{V},再用回代算法由〔L〕{U}={V}求得{U}。

(2)迭代法

迭代法是从某种“猜测”的初始迭代矢量{U(0)}开始,进行多次迭代,使迭代矢量序列{U(1)}、{U(2)}、…逐步收敛于精确解。迭代法的每次迭代,都是从头开始运算,没有误差积累,只要增加迭代次数,就能得到需要的求解精度,故通常用于高度稀疏和对角线项占优势的上万阶线性方程组的求解。许多迭代法采用如下形式的迭代公式:

将总刚矩阵〔K〕化成二个矩阵之差,即

〔K〕=〔N〕-〔P〕

迭代公式为:

〔N〕{U(i)}=〔P〕{U(i-1)}+{R}i=1,2。n。知道前一个迭代矢量{U(i-1)},就可以由上式算出下一个迭代矢量{U(t)}。选择的〔N〕矩阵应该是非奇异的,并且使迭代公式易于求解。

①雅可比(Jacobi)迭代法:〔N〕矩阵是对角矩阵,用〔K〕矩阵的对角线项构成,即

则〔P〕=〔K〕-〔N〕.

②高斯——赛德尔(Gauss-Seidel)迭代法:取总刚矩阵〔K〕的下三角形部分形成〔N〕矩阵,即

而〔P〕=〔K〕-〔N〕

若规定求解精度为ε,则满足下列收敛性条件 j=1,2,…n

其中

就停止迭代,得到线性方程组的近似解{U(i)

分享到: