Note_NAA_线性方程组直接解法
在有限元分析中,经过单元推导-->组装-->边界条件之后,最终求解的方程一般有形如【一般[A]的大小在1w+】:
对于规模线性方程组的求解,直接法(如高斯消元法,Choleski 分解法等)比迭代法(如牛顿法,SOR法等)会更加受欢迎.本文介绍高斯消元法和Choleski法的数值求解方法.
高斯消元法
公式1展开后如下,上标(0)表示初始值.
首先,消元\(x_1\),有:
将\(x_1\)带入剩下的公式,有:
接下,消元\(x_2\)和其余\(x_p(p=3...n)\).可以发现,当消元\(x_k\)时:
经过n-1此消元后,有:
这样就可以以\(x_n,x_{n-1},...,x_{1}\)的顺序完成求解.
如果每一步的消元过程中,如果对角系数\(a_{11}^{(0)},a_{22}^{(1)},a_{33}^{(2)}....\)出现0值,我们需要进行行变换来得到非0值.如果行变换行不通,那就说明[A]是奇异矩阵
Choleski法
该方法基于一个事实:任何方阵[a]都可以表示为上下三角矩阵的乘积.
将A分解为A=LU
系统方程为\([A]X=b\),[A]可以写作:
满足A=LU的唯一因式分解的[L],[U]可以逐个元素求得,求解顺序是:
\(l_{ij},u_{ij}\)满足:
至此,完成LU分解.
求解方程组
将A=LU带入到[A]X=b可得:LUX=b.方程求解步骤为:
令:
其中Z满足:
展开后:
以上,第一个式子可以求出z1,之后就可以依次求出z2,z3,....,zn【只要\(l_{ii}\)中没有0值】,一旦z_i求得后,则有:
类似高斯消元,以\(x_n,x_{n-1},...,x_{1}\)的顺序可以完成求解.
对称矩阵的CHOLESKI分解
在大多数的有限元分析中,[A]一般是对称正定矩阵.此时,A有唯一的分解式:
矩阵[U]由下式确定:
对称矩阵的逆
首先进行 \(A=U^TU\)分解,然后:
\(U^{-1}\)满足\(U^{-1}U=[I]\),\(U^{-1}\)的元素\(\lambda_{ij}\)满足:
可以看出\(U^{-1}\)也是上三角阵,\(U^{-1}\)的逆为:
最后,A的逆为: