算法设计
LU分解是指把 n ∗ n n*n n∗n的方阵 A = ( a i j ) A=(a_{ij}) A=(aij)分解成一个下三角矩阵 L = ( l i j ) L=(l_{ij}) L=(lij)和一个上三角矩阵 U = ( u i j ) U=(u_{ij}) U=(uij)的乘积:
A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ] = [ 1 0 ⋯ 0 l 21 1 ⋯ 0 ⋮ ⋮ ⋱ ⋮ l n 1 l n 2 ⋯ 1 ] [ a 11 u 12 ⋯ u 1 n 0 a 22 ⋯ u 2 n ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ a n n ] = L U A=\left[ \begin{matrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \\ \end{matrix} \right] =\left[ \begin{matrix} 1 & 0 & \cdots & 0 \\ l_{21} & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ l_{n1} & l_{n2} & \cdots & 1 \\ \end{matrix} \right] \left[ \begin{matrix} a_{11} & u_{12} & \cdots & u_{1n} \\ 0 & a_{22} & \cdots & u_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & a_{nn} \\ \end{matrix} \right] =LU A=⎣⎢⎢⎢⎡a11a21⋮an1a12a22⋮