Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Invertible matrix
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Methods of matrix inversion == === Gaussian elimination === [[Gaussian elimination]] is a useful and easy way to compute the inverse of a matrix. To compute a matrix inverse using this method, an [[augmented matrix]] is first created with the left side being the matrix to invert and the right side being the [[identity matrix]]. Then, Gaussian elimination is used to convert the left side into the identity matrix, which causes the right side to become the inverse of the input matrix. For example, take the following matrix: <math display=block>\mathbf{A} = \begin{pmatrix}-1 & \tfrac{3}{2} \\ 1 & -1\end{pmatrix}. </math> The first step to compute its inverse is to create the augmented matrix <math display=block>\left(\!\!\begin{array}{cc|cc} -1 & \tfrac{3}{2} & 1 & 0 \\ 1 & -1 & 0 & 1 \end{array}\!\!\right) .</math> Call the first row of this matrix <math>R_1</math> and the second row <math>R_2</math>. Then, add row 1 to row 2 <math>(R_1 + R_2 \to R_2).</math> This yields <math display=block>\left(\!\!\begin{array}{cc|cc} -1 & \tfrac{3}{2} & 1 & 0 \\ 0 & \tfrac{1}{2} & 1 & 1 \end{array}\!\!\right).</math> Next, subtract row 2, multiplied by 3, from row 1 <math>(R_1 - 3\, R_2 \to R_1),</math> which yields <math display=block>\left(\!\!\begin{array}{cc|cc} -1 & 0 & -2 & -3 \\ 0 & \tfrac{1}{2} & 1 & 1 \end{array}\!\!\right).</math> Finally, multiply row 1 by −1 <math>(-R_1 \to R_1)</math> and row 2 by 2 <math>(2\, R_2 \to R_2).</math> This yields the identity matrix on the left side and the inverse matrix on the right:<math display=block>\left(\!\!\begin{array}{cc|cc} 1 & 0 & 2 & 3 \\ 0 & 1 & 2 & 2 \end{array}\!\!\right).</math> Thus, <math display=block>\mathbf{A}^{-1} = \begin{pmatrix} 2 & 3 \\ 2 & 2 \end{pmatrix}.</math> It works because the process of Gaussian elimination can be viewed as a sequence of applying left matrix multiplication using elementary row operations using [[Elementary matrix|elementary matrices]] (<math>\mathbf E_n</math>), such as <math>\mathbf E_n \mathbf E_{n-1} \cdots \mathbf E_2 \mathbf E_1 \mathbf A = \mathbf I.</math> Applying right-multiplication using <math>\mathbf A^{-1},</math> we get <math> \mathbf E_n \mathbf E_{n-1} \cdots \mathbf E_2 \mathbf E_1 \mathbf I = \mathbf I \mathbf A^{-1}.</math> And the right side <math>\mathbf I \mathbf A^{-1} = \mathbf A^{-1}, </math> which is the inverse we want. To obtain <math> \mathbf E_n \mathbf E_{n-1} \cdots \mathbf E_2 \mathbf E_1 \mathbf I,</math> we create the augumented matrix by combining {{math|'''A'''}} with {{math|'''I'''}} and applying [[Gaussian elimination]]. The two portions will be transformed using the same sequence of elementary row operations. When the left portion becomes {{math|'''I'''}}, the right portion applied the same elementary row operation sequence will become {{math|'''A'''{{sup|−1}}}}. === Newton's method === A generalization of [[Newton's method]] as used for a [[Multiplicative inverse#Algorithms|multiplicative inverse algorithm]] may be convenient if it is convenient to find a suitable starting seed: : <math>X_{k+1} = 2X_k - X_k A X_k.</math> [[Victor Pan]] and [[John Reif]] have done work that includes ways of generating a starting seed.<ref>{{Citation | first1 = Victor | last1 = Pan | first2 = John | last2 = Reif | title = Efficient Parallel Solution of Linear Systems | series = Proceedings of the 17th Annual ACM Symposium on Theory of Computing | year = 1985 | place = Providence | publisher = [[Association for Computing Machinery|ACM]] }}</ref><ref> {{Citation | first1 = Victor | last1 = Pan | first2 = John | last2 = Reif | title = Harvard University Center for Research in Computing Technology Report TR-02-85 | year = 1985 | place = Cambridge, MA | publisher = [[Aiken Computation Laboratory]] }}</ref> Newton's method is particularly useful when dealing with [[family (set theory)|families]] of related matrices that behave enough like the sequence manufactured for the [[homotopy]] above: sometimes a good starting point for refining an approximation for the new inverse can be the already obtained inverse of a previous matrix that nearly matches the current matrix. For example, the pair of sequences of inverse matrices used in obtaining [[Matrix square root#By Denman–Beavers iteration|matrix square roots by Denman–Beavers iteration]]. That may need more than one pass of the iteration at each new matrix, if they are not close enough together for just one to be enough. Newton's method is also useful for "touch up" corrections to the Gauss–Jordan algorithm which has been contaminated by small errors from [[round-off error|imperfect computer arithmetic]]. === Cayley–Hamilton method === The [[Cayley–Hamilton theorem]] allows the inverse of {{math|'''A'''}} to be expressed in terms of {{math|det('''A''')}}, traces and powers of {{math|'''A'''}}:<ref>A proof can be found in the Appendix B of {{cite journal | last1 = Kondratyuk | first1 = L. A. | last2 = Krivoruchenko | first2 = M. I. | year = 1992 | title = Superconducting quark matter in SU(2) color group | url = https://www.researchgate.net/publication/226920070 | journal = Zeitschrift für Physik A | volume = 344 | issue = 1 | pages = 99–115 | doi = 10.1007/BF01291027 | bibcode = 1992ZPhyA.344...99K | s2cid = 120467300 }}</ref> : <math>\mathbf{A}^{-1} = \frac{1}{\det(\mathbf{A})} \sum_{s=0}^{n-1} \mathbf{A}^s \sum_{k_1,k_2,\ldots,k_{n-1}} \prod_{l=1}^{n-1} \frac{(-1)^{k_l + 1}}{l^{k_l}k_l!} \operatorname{tr}\left(\mathbf{A}^l\right)^{k_l},</math> where {{mvar|n}} is size of {{math|'''A'''}}, and {{math|tr('''A''')}} is the [[trace (linear algebra)|trace]] of matrix {{math|'''A'''}} given by the sum of the [[main diagonal]]. The sum is taken over {{mvar|s}} and the sets of all <math>k_l \geq 0</math> satisfying the linear [[Diophantine equation]] : <math>s + \sum_{l=1}^{n-1} lk_l = n - 1.</math> The formula can be rewritten in terms of complete [[Bell polynomials]] of arguments <math>t_l = - (l - 1)! \operatorname{tr}\left(A^l\right)</math> as : <math>\mathbf{A}^{-1} = \frac{1}{\det(\mathbf{A})} \sum_{s=1}^n \mathbf{A}^{s-1} \frac{(-1)^{n - 1}}{(n - s)!} B_{n-s}(t_1, t_2, \ldots, t_{n-s}).</math> That is described in more detail under [[Cayley–Hamilton theorem#Determinant and inverse matrix|Cayley–Hamilton method]]. === Eigendecomposition === {{Main article|Eigendecomposition of a matrix}} If matrix {{math|'''A'''}} can be eigendecomposed, and if none of its eigenvalues are zero, then {{math|'''A'''}} is invertible and its inverse is given by : <math>\mathbf{A}^{-1} = \mathbf{Q}\mathbf{\Lambda}^{-1}\mathbf{Q}^{-1},</math> where {{math|'''Q'''}} is the square {{math|(''N'' × ''N'')}} matrix whose {{mvar|i}}th column is the [[eigenvector]] <math>q_i</math> of {{math|'''A'''}}, and {{math|'''Λ'''}} is the [[diagonal matrix]] whose diagonal entries are the corresponding eigenvalues, that is, <math>\Lambda_{ii} = \lambda_i.</math> If {{math|'''A'''}} is symmetric, {{math|'''Q'''}} is guaranteed to be an [[orthogonal matrix]], therefore <math>\mathbf{Q}^{-1} = \mathbf{Q}^\mathrm{T} .</math> Furthermore, because {{math|'''Λ'''}} is a diagonal matrix, its inverse is easy to calculate: : <math>\left[\Lambda^{-1}\right]_{ii} = \frac{1}{\lambda_i}.</math> === Cholesky decomposition === {{Main article|Cholesky decomposition}} If matrix {{math|'''A'''}} is [[Positive definite matrix|positive definite]], then its inverse can be obtained as : <math>\mathbf{A}^{-1} = \left(\mathbf{L}^*\right)^{-1} \mathbf{L}^{-1} , </math> where {{math|'''L'''}} is the [[lower triangular]] [[Cholesky decomposition]] of {{math|'''A'''}}, and {{math|'''L'''*}} denotes the [[conjugate transpose]] of {{math|'''L'''}}. === Analytic solution === {{Main article|Cramer's rule}} Writing the transpose of the [[matrix of cofactors]], known as an [[adjugate matrix]], may also be an efficient way to calculate the inverse of ''small'' matrices, but the [[Recursion|recursive]] method is inefficient for large matrices. To determine the inverse, we calculate a matrix of cofactors: : <math>\mathbf{A}^{-1} = {1 \over \begin{vmatrix}\mathbf{A}\end{vmatrix}}\mathbf{C}^\mathrm{T} = {1 \over \begin{vmatrix}\mathbf{A}\end{vmatrix}} \begin{pmatrix} \mathbf{C}_{11} & \mathbf{C}_{21} & \cdots & \mathbf{C}_{n1} \\ \mathbf{C}_{12} & \mathbf{C}_{22} & \cdots & \mathbf{C}_{n2} \\ \vdots & \vdots & \ddots & \vdots \\ \mathbf{C}_{1n} & \mathbf{C}_{2n} & \cdots & \mathbf{C}_{nn} \\ \end{pmatrix} </math> so that : <math>\left(\mathbf{A}^{-1}\right)_{ij} = {1 \over \begin{vmatrix}\mathbf{A}\end{vmatrix}}\left(\mathbf{C}^{\mathrm{T}}\right)_{ij} = {1 \over \begin{vmatrix}\mathbf{A}\end{vmatrix}}\left(\mathbf{C}_{ji}\right) </math> where {{math|{{abs|'''A'''}}}} is the [[determinant]] of {{math|'''A'''}}, {{math|'''C'''}} is the matrix of cofactors, and {{math|'''C'''<sup>T</sup>}} represents the matrix [[transpose]]. ==== Inversion of 2 × 2 matrices ==== The ''cofactor equation'' listed above yields the following result for {{nowrap|2 × 2}} matrices. Inversion of these matrices can be done as follows:<ref>{{cite book |title=Introduction to linear algebra |edition=3rd |first1=Gilbert |last1=Strang |publisher=SIAM |year=2003 |isbn=978-0-9614088-9-3 |page=71 |url=https://books.google.com/books?id=Gv4pCVyoUVYC }}, [https://books.google.com/books?id=Gv4pCVyoUVYC&pg=PA71 Chapter 2, page 71] </ref> : <math>\mathbf{A}^{-1} = \begin{bmatrix} a & b \\ c & d \\ \end{bmatrix}^{-1} = \frac{1}{\det \mathbf{A}} \begin{bmatrix} \,\,\,d & \!\!-b \\ -c & \,a \\ \end{bmatrix} = \frac{1}{ad - bc} \begin{bmatrix} \,\,\,d & \!\!-b \\ -c & \,a \\ \end{bmatrix}. </math> This is possible because {{math|1/(''ad'' − ''bc'')}} is the [[reciprocal (mathematics)|reciprocal]] of the determinant of the matrix in question, and the same strategy could be used for other matrix sizes. The Cayley–Hamilton method gives : <math>\mathbf{A}^{-1} = \frac{1}{\det \mathbf{A}} \left[ \left( \operatorname{tr}\mathbf{A} \right) \mathbf{I} - \mathbf{A} \right] .</math> ==== Inversion of 3 × 3 matrices ==== A [[computationally efficient]] {{nowrap|3 × 3}} matrix inversion is given by : <math>\mathbf{A}^{-1} = \begin{bmatrix} a & b & c\\ d & e & f \\ g & h & i\\ \end{bmatrix}^{-1} = \frac{1}{\det(\mathbf{A})} \begin{bmatrix} \, A & \, B & \,C \\ \, D & \, E & \, F \\ \, G & \, H & \, I\\ \end{bmatrix}^\mathrm{T} = \frac{1}{\det(\mathbf{A})} \begin{bmatrix} \, A & \, D & \,G \\ \, B & \, E & \,H \\ \, C & \,F & \, I\\ \end{bmatrix} </math> (where the [[Scalar (mathematics)|scalar]] {{mvar|A}} is not to be confused with the matrix {{math|'''A'''}}). If the determinant is non-zero, the matrix is invertible, with the entries of the intermediary matrix on the right side above given by : <math>\begin{alignat}{6} A &={}& (ei - fh), &\quad& D &={}& -(bi - ch), &\quad& G &={}& (bf - ce), \\ B &={}& -(di - fg), &\quad& E &={}& (ai - cg), &\quad& H &={}& -(af - cd), \\ C &={}& (dh - eg), &\quad& F &={}& -(ah - bg), &\quad& I &={}& (ae - bd). \\ \end{alignat}</math> The determinant of {{math|'''A'''}} can be computed by applying the [[rule of Sarrus]] as follows: : <math>\det(\mathbf{A}) = aA + bB + cC.</math> The Cayley–Hamilton decomposition gives : <math>\mathbf{A}^{-1} = \frac{1}{\det (\mathbf{A})}\left( \tfrac{1}{2}\left[ (\operatorname{tr}\mathbf{A})^{2} - \operatorname{tr}(\mathbf{A}^{2})\right] \mathbf{I} - \mathbf{A}\operatorname{tr}\mathbf{A} + \mathbf{A}^{2}\right). </math> {{anchor|Inversion of 3×3 matrices based on vector products}} The general {{nowrap|3 × 3}} inverse can be expressed concisely in terms of the [[cross product]] and [[triple product]]. If a matrix <math>\mathbf{A} = \begin{bmatrix} \mathbf{x}_0 & \mathbf{x}_1 & \mathbf{x}_2\end{bmatrix}</math> (consisting of three column vectors, <math>\mathbf{x}_0</math>, <math>\mathbf{x}_1</math>, and <math>\mathbf{x}_2</math>) is invertible, its inverse is given by : <math>\mathbf{A}^{-1} = \frac{1}{\det(\mathbf A)}\begin{bmatrix} {(\mathbf{x}_1\times\mathbf{x}_2)}^\mathrm{T} \\ {(\mathbf{x}_2\times\mathbf{x}_0)}^\mathrm{T} \\ {(\mathbf{x}_0\times\mathbf{x}_1)}^\mathrm{T} \end{bmatrix}.</math> The determinant of {{math|'''A'''}}, {{math|det('''A''')}}, is equal to the triple product of {{math|'''x'''{{sub|0}}}}, {{math|'''x'''{{sub|1}}}}, and {{math|'''x'''{{sub|2}}}}—the volume of the [[parallelepiped]] formed by the rows or columns: : <math>\det(\mathbf{A}) = \mathbf{x}_0\cdot(\mathbf{x}_1\times\mathbf{x}_2).</math> The correctness of the formula can be checked by using cross- and triple-product properties and by noting that for groups, left and right inverses always coincide. Intuitively, because of the cross products, each row of {{math|'''A'''{{sup|–1}}}} is orthogonal to the non-corresponding two columns of {{math|'''A'''}} (causing the off-diagonal terms of <math>\mathbf{I} = \mathbf{A}^{-1}\mathbf{A}</math> be zero). Dividing by : <math>\det(\mathbf{A}) = \mathbf{x}_0\cdot(\mathbf{x}_1\times\mathbf{x}_2)</math> causes the diagonal entries of {{math|1='''I''' = '''A'''{{sup|−1}}'''A'''}} to be unity. For example, the first diagonal is: : <math>1 = \frac{1}{\mathbf{x_0}\cdot(\mathbf{x}_1\times\mathbf{x}_2)} \mathbf{x_0}\cdot(\mathbf{x}_1\times\mathbf{x}_2).</math> ==== Inversion of 4 × 4 matrices ==== With increasing dimension, expressions for the inverse of {{math|'''A'''}} get complicated. For {{math|1=''n'' = 4}}, the Cayley–Hamilton method leads to an expression that is still tractable: :<math>\begin{align} \mathbf{A}^{-1} = \frac{1}{\det(\mathbf{A})}\Bigl( &\tfrac{1}{6}\bigl( (\operatorname{tr}\mathbf{A})^{3} - 3\operatorname{tr}\mathbf{A}\operatorname{tr}(\mathbf{A}^{2}) + 2\operatorname{tr}(\mathbf{A}^{3})\bigr) \mathbf{I} \\[-3mu] &\ \ \ - \tfrac{1}{2}\mathbf{A}\bigl((\operatorname{tr}\mathbf{A})^{2} - \operatorname{tr}(\mathbf{A}^{2})\bigr) + \mathbf{A}^{2}\operatorname{tr}\mathbf{A} - \mathbf{A}^{3} \Bigr). \end{align}</math> === Blockwise inversion === Let <math> \mathbf M = \begin{bmatrix} \mathbf{A} & \mathbf{B} \\ \mathbf{C} & \mathbf{D} \end{bmatrix}</math> where {{math|'''A'''}}, {{math|'''B'''}}, {{math|'''C'''}} and {{math|'''D'''}} are [[block matrix|matrix sub-blocks]] of arbitrary size and <math>\mathbf M / \mathbf A := \mathbf D - \mathbf C \mathbf A^{-1} \mathbf B </math> is the [[Schur complement]] of {{math|'''A'''}}. ({{math|'''A'''}} must be square, so that it can be inverted. Furthermore, {{math|'''A'''}} and {{math|'''D''' − '''CA'''{{sup|−1}}'''B'''}} must be nonsingular.<ref> {{cite book |last=Bernstein |first=Dennis |title=Matrix Mathematics |publisher=Princeton University Press |year=2005 |isbn=978-0-691-11802-4 |pages=44}}</ref>) Matrices can also be ''inverted blockwise'' by using the analytic inversion formula:<ref>{{cite journal |last1=Tzon-Tzer |first1=Lu |last2=Sheng-Hua |first2=Shiou |title=Inverses of 2 × 2 block matrices |journal=Computers & Mathematics with Applications |date=2002 |volume=43 |issue=1–2 |pages=119–129 |doi=10.1016/S0898-1221(01)00278-4}}</ref> {{NumBlk |: | <math>\begin{bmatrix} \mathbf{A} & \mathbf{B} \\ \mathbf{C} & \mathbf{D} \end{bmatrix}^{-1} = \begin{bmatrix} \mathbf{A}^{-1} + \mathbf{A}^{-1}\mathbf{B}\ (\mathbf M / \mathbf A)^{-1}\mathbf{CA}^{-1} & -\mathbf{A}^{-1}\mathbf{B}\left(\mathbf M / \mathbf A \right)^{-1} \\ -\left(\mathbf M / \mathbf A \right)^{-1}\mathbf{CA}^{-1} & \left(\mathbf M / \mathbf A \right)^{-1} \end{bmatrix}, </math> | {{EquationRef|1}} }} The strategy is particularly advantageous if {{math|'''A'''}} is diagonal and {{math|'''M''' / '''A'''}} is a small matrix, since they are the only matrices requiring inversion. The [[nullity theorem]] says that the nullity of {{math|'''A'''}} equals the nullity of the sub-block in the lower right of the inverse matrix, and that the nullity of {{math|'''B'''}} equals the nullity of the sub-block in the upper right of the inverse matrix. The inversion procedure that led to Equation ({{EquationNote|1}}) performed matrix block operations that operated on {{math|'''C'''}} and {{math|'''D'''}} first. Instead, if {{math|'''A'''}} and {{math|'''B'''}} are operated on first, and provided {{math|'''D'''}} and {{math|1='''M''' / '''D''' := '''A''' − '''BD'''{{sup|−1}}'''C'''}} are nonsingular,<ref> {{cite book | last = Bernstein | first = Dennis | title = Matrix Mathematics | publisher = Princeton University Press | year = 2005 | pages = 45 | isbn = 978-0-691-11802-4 }} </ref> the result is {{NumBlk |: | <math> \begin{bmatrix} \mathbf{A} & \mathbf{B} \\ \mathbf{C} & \mathbf{D} \end{bmatrix}^{-1} = \begin{bmatrix} \left( \mathbf M / \mathbf D \right)^{-1} & -\left( \mathbf M / \mathbf D \right)^{-1}\mathbf{BD}^{-1} \\ -\mathbf{D}^{-1}\mathbf{C}\left(\mathbf M / \mathbf D\right)^{-1} & \quad \mathbf{D}^{-1} + \mathbf{D}^{-1}\mathbf{C}\left(\mathbf M / \mathbf D\right)^{-1}\mathbf{BD}^{-1} \end{bmatrix}. </math> | {{EquationRef|2}} }} Equating the upper-left sub-matrices of Equations ({{EquationNote|1}}) and ({{EquationNote|2}}) leads to {{NumBlk |: | <math>\begin{align} \left(\mathbf{A} - \mathbf{BD}^{-1}\mathbf{C}\right)^{-1} &= \mathbf{A}^{-1} + \mathbf{A}^{-1}\mathbf{B}\left(\mathbf{D} - \mathbf{CA}^{-1}\mathbf{B}\right)^{-1}\mathbf{CA}^{-1} \\ \left(\mathbf{A} - \mathbf{BD}^{-1}\mathbf{C}\right)^{-1}\mathbf{BD}^{-1} &= \mathbf{A}^{-1}\mathbf{B}\left(\mathbf{D} - \mathbf{CA}^{-1}\mathbf{B}\right)^{-1} \\ \mathbf{D}^{-1}\mathbf{C}\left(\mathbf{A} - \mathbf{BD}^{-1}\mathbf{C}\right)^{-1} &= \left(\mathbf{D} - \mathbf{CA}^{-1}\mathbf{B}\right)^{-1}\mathbf{CA}^{-1} \\ \mathbf{D}^{-1} + \mathbf{D}^{-1}\mathbf{C}\left(\mathbf{A} - \mathbf{BD}^{-1}\mathbf{C}\right)^{-1}\mathbf{BD}^{-1} &= \left(\mathbf{D} - \mathbf{CA}^{-1}\mathbf{B}\right)^{-1} \end{align}</math> | {{EquationRef|3}} }} where Equation ({{EquationNote|3}}) is the [[Woodbury matrix identity]], which is equivalent to the [[binomial inverse theorem]]. If {{math|'''A'''}} and {{math|'''D'''}} are both invertible, then the above two block matrix inverses can be combined to provide the simple factorization {{NumBlk |: | <math>\begin{bmatrix} \mathbf{A} & \mathbf{B} \\ \mathbf{C} & \mathbf{D} \end{bmatrix}^{-1} = \begin{bmatrix} \left(\mathbf{A} - \mathbf{B} \mathbf{D}^{-1} \mathbf{C}\right)^{-1} & \mathbf{0} \\ \mathbf{0} & \left(\mathbf{D} - \mathbf{C} \mathbf{A}^{-1} \mathbf{B}\right)^{-1} \end{bmatrix} \begin{bmatrix} \mathbf{I} & -\mathbf{B} \mathbf{D}^{-1} \\ -\mathbf{C} \mathbf{A}^{-1} & \mathbf{I} \end{bmatrix}. </math> | {{EquationRef|2}} }} By the [[Weinstein–Aronszajn identity]], one of the two matrices in the block-diagonal matrix is invertible exactly when the other is. This formula simplifies significantly when the upper right block matrix {{math|'''B'''}} is the [[zero matrix]]. This formulation is useful when the matrices {{math|'''A'''}} and {{math|'''D'''}} have relatively simple inverse formulas (or [[Moore–Penrose inverse|pseudo inverses]] in the case where the blocks are not all square. In this special case, the block matrix inversion formula stated in full generality above becomes :<math>\begin{bmatrix} \mathbf{A} & \mathbf{0} \\ \mathbf{C} & \mathbf{D} \end{bmatrix}^{-1} = \begin{bmatrix} \mathbf{A}^{-1} & \mathbf{0} \\ -\mathbf{D}^{-1}\mathbf{CA}^{-1} & \mathbf{D}^{-1} \end{bmatrix}.</math> If the given invertible matrix is a symmetric matrix with invertible block {{math|'''A'''}} the following block inverse formula holds<ref name="Cormen"/> {{NumBlk |: | <math>\begin{bmatrix} \mathbf{A} & \mathbf{C}^T \\ \mathbf{C} & \mathbf{D} \end{bmatrix}^{-1} = \begin{bmatrix} \mathbf{A}^{-1} + \mathbf{A}^{-1}\mathbf{C}^T \mathbf{S}^{-1}\mathbf{C}\mathbf{A}^{-1} & -\mathbf{A}^{-1}\mathbf{C}^T\mathbf{S}^{-1} \\ -\mathbf{S}^{-1}\mathbf{C}\mathbf{A}^{-1} & \mathbf{S}^{-1} \end{bmatrix}, </math> | {{EquationRef|4}} }} where <math>\mathbf{S} = \mathbf{D} - \mathbf{C}\mathbf{A}^{-1}\mathbf{C}^T</math>. This requires 2 inversions of the half-sized matrices {{math|'''A'''}} and {{math|'''S'''}} and only 4 multiplications of half-sized matrices, if organized properly <math display=block>\begin{align} \mathbf{W}_1 &= \mathbf{C}\mathbf{A}^{-1}, \\[3mu] \mathbf{W}_2 &= \mathbf{W}_1\mathbf{C}^{T}=\mathbf{C}\mathbf{A}^{-1}\mathbf{C}^T, \\[3mu] \mathbf{W}_3 &= \mathbf{S}^{-1}\mathbf{W}_1=\mathbf{S}^{-1}\mathbf{C}\mathbf{A}^{-1}, \\[3mu] \mathbf{W}_4 &= \mathbf{W}_1^T\mathbf{W}_3=\mathbf{A}^{-1}\mathbf{C}^T \mathbf{S}^{-1}\mathbf{C}\mathbf{A}^{-1}, \end{align}</math> together with some additions, subtractions, negations and transpositions of negligible complexity. Any matrix <math>\mathbf{M}</math> has an associated positive semidefinite, symmetric matrix <math>\mathbf{M}^T\mathbf{M}</math>, which is exactly invertible (and positive definite), if and only if <math>\mathbf{M}</math> is invertible. By writing <math>\mathbf{M}^{-1}=\left(\mathbf{M}^T\mathbf{M}\right)^{-1}\mathbf{M}^T</math> matrix inversion can be reduced to inverting symmetric matrices and 2 additional matrix multiplications, because the [[Definite_matrix#Decomposition|positive definite matrix]] <math>\mathbf{M}^T\mathbf{M}</math> satisfies the invertibility condition for its left upper block {{math|'''A'''}}. Those formulas together allow to construct a [[divide and conquer algorithm]] that uses blockwise inversion of associated symmetric matrices to invert a matrix with the same time complexity as the [[matrix multiplication algorithm]] that is used internally.<ref name="Cormen">T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, ''Introduction to Algorithms'', 3rd ed., MIT Press, Cambridge, MA, 2009, §28.2.</ref> [[Computational complexity of matrix multiplication|Research into matrix multiplication complexity]] shows that there exist matrix multiplication algorithms with a complexity of {{math|''O''(''n''<sup>2.371552</sup>)}} operations, while the best proven lower bound is {{math|[[Big O notation#Family of Bachmann–Landau notations|Ω]](''n''{{sup|2}} log ''n'')}}.<ref>[[Ran Raz]]. On the complexity of matrix product. In Proceedings of the thirty-fourth annual ACM symposium on Theory of computing. ACM Press, 2002. {{doi|10.1145/509907.509932}}.</ref> === By Neumann series === If a matrix {{math|'''A'''}} has the property that : <math>\lim_{n \to \infty} (\mathbf I - \mathbf A)^n = 0</math> then {{math|'''A'''}} is nonsingular and its inverse may be expressed by a [[Neumann series]]:<ref> {{cite book | last = Stewart | first = Gilbert | title = Matrix Algorithms: Basic decompositions | publisher = SIAM | year = 1998 | pages = 55 | isbn = 978-0-89871-414-2 }}</ref> : <math>\mathbf A^{-1} = \sum_{n = 0}^\infty (\mathbf I - \mathbf A)^n.</math> Truncating the sum results in an "approximate" inverse which may be useful as a [[preconditioner]]. Note that a truncated series can be accelerated exponentially by noting that the Neumann series is a [[geometric sum]]. As such, it satisfies : <math>\sum_{n=0}^{2^L-1} (\mathbf I - \mathbf A)^n = \prod_{l=0}^{L-1}\left(\mathbf I + (\mathbf I - \mathbf A)^{2^l}\right)</math>. Therefore, only {{math|2''L'' − 2}} matrix multiplications are needed to compute {{math|2{{sup|''L''}}}} terms of the sum. More generally, if {{math|'''A'''}} is "near" the invertible matrix {{math|'''X'''}} in the sense that : <math>\lim_{n \to \infty} \left(\mathbf I - \mathbf X^{-1} \mathbf A\right)^n = 0 \mathrm{~~or~~} \lim_{n \to \infty} \left(\mathbf I - \mathbf A \mathbf X^{-1}\right)^n = 0</math> then {{math|'''A'''}} is nonsingular and its inverse is : <math>\mathbf A^{-1} = \sum_{n = 0}^\infty \left(\mathbf X^{-1} (\mathbf X - \mathbf A)\right)^n \mathbf X^{-1}~.</math> If it is also the case that {{math|'''A''' − '''X'''}} has [[rank (linear algebra)|rank]] 1 then this simplifies to : <math>\mathbf A^{-1} = \mathbf X^{-1} - \frac{\mathbf X^{-1} (\mathbf A - \mathbf X) \mathbf X^{-1}}{1 + \operatorname{tr}\left(\mathbf X^{-1} (\mathbf A - \mathbf X)\right)}~.</math> === ''p''-adic approximation === If {{math|'''A'''}} is a matrix with [[integer]] or [[rational number|rational]] entries, and we seek a solution in [[arbitrary-precision arithmetic|arbitrary-precision]] rationals, a [[p-adic|{{mvar|p}}-adic]] approximation method converges to an exact solution in {{math|O(''n''{{sup|4}} log{{sup|2}} ''n'')}}, assuming standard {{math|O(''n''{{sup|3}})}} matrix multiplication is used.<ref>{{cite journal | doi = 10.1016/j.cam.2008.07.044 | volume=225 | title=A p-adic algorithm for computing the inverse of integer matrices | journal=Journal of Computational and Applied Mathematics | pages=320–322| year=2009 | last1=Haramoto | first1=H. | last2=Matsumoto | first2=M. | issue=1 | bibcode=2009JCoAM.225..320H | doi-access=free }}</ref> The method relies on solving {{mvar|n}} linear systems via Dixon's method of {{mvar|p}}-adic approximation (each in {{math|O(''n''{{sup|3}} log{{sup|2}} ''n'')}}) and is available as such in software specialized in arbitrary-precision matrix operations, for example, in IML.<ref>{{cite web|url=https://cs.uwaterloo.ca/~astorjoh/iml.html|title=IML - Integer Matrix Library|website=cs.uwaterloo.ca|access-date=14 April 2018}}</ref> === Reciprocal basis vectors method === {{Main|Reciprocal basis}} Given an {{math|''n'' × ''n''}} square matrix <math>\mathbf{X} = \left[ x^{ij} \right] </math>, <math> 1 \leq i,j \leq n </math>, with {{mvar|n}} rows interpreted as {{mvar|n}} vectors <math>\mathbf{x}_{i} = x^{ij} \mathbf{e}_{j}</math> ([[Einstein summation]] assumed) where the <math>\mathbf{e}_{j}</math> are a standard [[orthonormal basis]] of [[Euclidean space]] <math>\mathbb{R}^{n}</math> (<math>\mathbf{e}_{i} = \mathbf{e}^{i}, \mathbf{e}_{i} \cdot \mathbf{e}^{j} = \delta_i^j</math>), then using [[Clifford algebra]] (or [[geometric algebra]]) we compute the reciprocal (sometimes called [[Geometric algebra#Dual basis|dual]]) column vectors: :<math>\mathbf{x}^{i} = x_{ji} \mathbf{e}^{j} = (-1)^{i-1} (\mathbf{x}_{1} \wedge\cdots\wedge ()_{i} \wedge\cdots\wedge\mathbf{x}_{n}) \cdot (\mathbf{x}_{1} \wedge\ \mathbf{x}_{2} \wedge\cdots\wedge\mathbf{x}_{n})^{-1} </math> as the columns of the inverse matrix <math>\mathbf{X}^{-1} = [x_{ji}].</math> Note that, the place "<math>()_{i}</math>" indicates that "<math>\mathbf{x}_{i}</math>" is removed from that place in the above expression for <math>\mathbf{x}^{i}</math>. We then have <math>\mathbf{X}\mathbf{X}^{-1} = \left[ \mathbf{x}_{i} \cdot \mathbf{x}^{j} \right] = \left[ \delta_{i}^{j} \right] = \mathbf{I}_{n} </math>, where <math>\delta_{i}^{j}</math> is the [[Kronecker delta]]. We also have <math>\mathbf{X}^{-1}\mathbf{X} = \left[\left(\mathbf{e}_{i}\cdot\mathbf{x}^{k}\right)\left(\mathbf{e}^{j}\cdot\mathbf{x}_{k}\right)\right] = \left[\mathbf{e}_{i}\cdot\mathbf{e}^{j}\right] = \left[\delta_{i}^{j}\right] = \mathbf{I}_{n}</math>, as required. If the vectors <math>\mathbf{x}_{i}</math> are not linearly independent, then <math>(\mathbf{x}_{1} \wedge \mathbf{x}_{2} \wedge\cdots\wedge\mathbf{x}_{n}) = 0</math> and the matrix <math>\mathbf{X}</math> is not invertible (has no inverse).
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)