MarketMoore–Penrose inverse
Company Profile

Moore–Penrose inverse

In mathematics, and in particular linear algebra, the Moore–Penrose inverse ⁠⁠ of a matrix ⁠⁠, often called the pseudoinverse, is the most widely known generalization of the inverse matrix. It was independently described by E. H. Moore in 1920, Arne Bjerhammar in 1951, and Roger Penrose in 1955. Earlier, Erik Ivar Fredholm had introduced the concept of a pseudoinverse of integral operators in 1903. The terms pseudoinverse and generalized inverse are sometimes used as synonyms for the Moore–Penrose inverse of a matrix, but sometimes applied to other elements of algebraic structures which share some but not all properties expected for an inverse element.

Notation
In the following discussion, the following conventions are adopted. • {{tmath| \mathbb{K} }} will denote one of the fields of real or complex numbers, denoted {{tmath| \mathbb{R} }}, {{tmath| \mathbb{C} }}, respectively. The vector space of matrices over {{tmath| \mathbb{K} }} is denoted by {{tmath| \mathbb{K}^{m \times n} }}. • For {{tmath| A \in \mathbb{K}^{m\times n} }}, the transpose is denoted {{tmath| A^\mathsf{T} }} and the Hermitian transpose (also called conjugate transpose) is denoted . If \mathbb{K} = \mathbb{R}, then A^* = A^\mathsf{T}. • For {{tmath| A \in \mathbb{K}^{m\times n} }}, {{tmath| \operatorname{ran}(A) }} (standing for "range") denotes the column space (image) of (the space spanned by the column vectors of ) and denotes the kernel (null space) of . • For any positive integer , the identity matrix is denoted {{tmath| I_n \in \mathbb{K}^{n\times n} }}. ==Definition==
Definition
For A \in \mathbb{K}^{m\times n}, a pseudoinverse of A is defined as a matrix {{tmath| A^+ \in \mathbb{K}^{n\times m} }} satisfying all of the following four criteria, known as the Moore–Penrose conditions: • need not be the general identity matrix, but it maps all column vectors of A to themselves: A A^+ A = \; A. • acts like a weak inverse: A^+ A A^+ = \; A^+. • is Hermitian: \left(A A^+\right)^* = \; A A^+. • is also Hermitian: \left(A^+ A\right)^* = \; A^+ A. Note that A^+A and AA^+ are idempotent operators, as follows from (AA^+)^2=A A^+ and (A^+ A)^2=A^+ A. More specifically, A^+A projects onto the image of A^T (equivalently, the span of the rows of A), and AA^+ projects onto the image of A (equivalently, the span of the columns of A). In fact, the above four conditions are fully equivalent to A^+A and AA^+ being such orthogonal projections: AA^+ projecting onto the image of A implies (A A^+)A=A, and A^+A projecting onto the image of A^T implies (A^+A)A^T=A^T. The pseudoinverse A^+ exists for any matrix A \in \mathbb{K}^{m\times n}. If furthermore A is full rank, that is, its rank is {{tmath| \min \{ m,n \} }}, then can be given a particularly simple algebraic expression. In particular: • When has linearly independent columns (equivalently, is injective, and thus is invertible), can be computed asA^+ = \left(A^* A\right)^{-1} A^*.This particular pseudoinverse is a left inverse, that is, A^+A = I. • If, on the other hand, A has linearly independent rows (equivalently, A is surjective, and thus is invertible), can be computed asA^+ = A^* \left(A A^*\right)^{-1}.This is a right inverse, as A A^+ = I. In the more general case, the pseudoinverse can be expressed using the singular value decomposition. Any matrix can be decomposed as A=UDV^* for some isometries U,V and diagonal nonnegative real matrix D. The pseudoinverse can then be written as A^+=V D^{+} U^*, where D^{+} is the pseudoinverse of D and can be obtained by transposing the matrix and replacing the nonzero values with their multiplicative inverses. That this matrix satisfies the above requirement is directly verified observing that AA^+=UU^* and A^+ A=VV^*, which are the projections onto image and support of A, respectively. ==Properties==
Properties
Existence and uniqueness As discussed above, for any matrix there is one and only one pseudoinverse . • The pseudoinverse of the pseudoinverse is the original matrix: \bigl(A^+\bigr)\vphantom)^+ = A. • (AB)^+ = B^+ A^+ • A^+ A BB^* A^* = BB^* A^* and BB^+ A^* A B = A^* A B • \left(A^+ A BB^*\right)^* = A^+ A BB^* and \left(A^* A BB^+\right)^* = A^* A BB^+ • A^+ A BB^* A^* A BB^+ = BB^* A^* A • A^+ A B = B (AB)^+ AB and BB^+ A^* = A^* A B (AB)^+. The following are sufficient conditions for : • has orthonormal columns (then A^*A = A^+ A = I_n), or • has orthonormal rows (then BB^* = BB^+ = I_n), or • has linearly independent columns (then A^+ A = I ) and has linearly independent rows (then BB^+ = I),   or • B = A^*, or • B = A^+. The following is a necessary condition for : • (A^+ A) (BB^+) = (BB^+) (A^+ A) The fourth sufficient condition yields the equalities \begin{align} \left(A A^*\right)^+ &= A^{+*} A^+, \\ \left(A^* A\right)^+ &= A^+ A^{+*}. \end{align} Here is a counterexample where : \Biggl( \begin{pmatrix} 1 & 1 \\ 0 & 0 \end{pmatrix} \begin{pmatrix} 0 & 0 \\ 1 & 1 \end{pmatrix} \Biggr)^+ = \begin{pmatrix} 1 & 1 \\ 0 & 0 \end{pmatrix}^+ = \begin{pmatrix} \tfrac12 & 0 \\ \tfrac12 & 0 \end{pmatrix} \quad \neq \quad \begin{pmatrix} \tfrac14 & 0 \\ \tfrac14 & 0 \end{pmatrix} = \begin{pmatrix} 0 & \tfrac12 \\ 0 & \tfrac12 \end{pmatrix} \begin{pmatrix} \tfrac12 & 0 \\ \tfrac12 & 0 \end{pmatrix} = \begin{pmatrix} 0 & 0 \\ 1 & 1 \end{pmatrix}^+ \begin{pmatrix} 1 & 1 \\ 0 & 0 \end{pmatrix}^+ Projectors P = A A^+ and Q = A^+A are orthogonal projection operators, that is, they are Hermitian (P = P^*, Q = Q^*) and idempotent (P^2 = P and Q^2 = Q). The following hold: • PA = AQ = A and A^+ P = QA^+ = A^+ • is the orthogonal projector onto the range of (which equals the orthogonal complement of the kernel of ). • is the orthogonal projector onto the range of (which equals the orthogonal complement of the kernel of ). • I - Q = I - A^+A is the orthogonal projector onto the kernel of . • I - P = I - A A^+ is the orthogonal projector onto the kernel of . A(BA)^+ = (BA)^+ This can be proven by defining matrices C = BA, D = A(BA)^+, and checking that is indeed a pseudoinverse for by verifying that the defining properties of the pseudoinverse hold, when is Hermitian and idempotent. From the last property it follows that, if {{tmath| A \in \mathbb{K}^{n\times n} }} is Hermitian and idempotent, for any matrix {{tmath| B \in \mathbb{K}^{n\times m} }} (AB)^+A = (AB)^+ Finally, if is an orthogonal projection matrix, then its pseudoinverse trivially coincides with the matrix itself, that is, A^+ = A. Geometric construction If we view the matrix as a linear map {{tmath| A:\mathbb{K}^n \to \mathbb{K}^m }} over the field {{tmath| \mathbb{K} }} then {{tmath| A^+: \mathbb{K}^m \to \mathbb{K}^n }} can be decomposed as follows. We write for the direct sum, for the orthogonal complement, for the kernel of a map, and {{tmath| \operatorname{ran} }} for the image of a map. Notice that \mathbb{K}^n = \left(\ker A\right)^\perp \oplus \ker A and \mathbb{K}^m = \operatorname{ran} A \oplus \left(\operatorname{ran} A\right)^\perp. The restriction A: \left(\ker A\right)^\perp \to \operatorname{ran} A is then an isomorphism. This implies that on {{tmath| \operatorname{ran} A }} is the inverse of this isomorphism, and is zero on \left(\operatorname{ran} A\right)^\perp . In other words: To find for given in {{tmath| \mathbb{K}^m }}, first project orthogonally onto the range of , finding a point in the range. Then form {{tmath| A^{-1}(\{p(b)\}) }}, that is, find those vectors in {{tmath| \mathbb{K}^n }} that sends to . This will be an affine subspace of {{tmath| \mathbb{K}^n }} parallel to the kernel of . The element of this subspace that has the smallest length (that is, is closest to the origin) is the answer we are looking for. It can be found by taking an arbitrary member of {{tmath| A^{-1}(\{p(b)\}) }} and projecting it orthogonally onto the orthogonal complement of the kernel of . This description is closely related to the minimum-norm solution to a linear system. Limit relations The pseudoinverse are limits: A^+ = \lim_{\delta \searrow 0} \left(A^* A + \delta I\right)^{-1} A^* = \lim_{\delta \searrow 0} A^* \left(A A^* + \delta I\right)^{-1} (see Tikhonov regularization). These limits exist even if {{tmath| \left(A A^*\right)^{-1} }} or {{tmath| \left(A^*A\right)^{-1} }} do not exist. Continuity In contrast to ordinary matrix inversion, the process of taking pseudoinverses is not continuous: if the sequence converges to the matrix (in the maximum norm or Frobenius norm, say), then need not converge to . However, if all the matrices have the same rank as , will converge to . Derivative Let x \mapsto A(x) be a real-valued differentiable matrix function with constant rank in a neighborhood of a point . The derivative of x \mapsto A^+(x) at x_0 may be calculated in terms of the derivative of A at x_0: \left.\frac{\mathrm d}{\mathrm d x}\right|_{x = x_0\!\!\!\!\!\!\!} A^+ = -A^+ \left( \frac{\mathrm{d} A}{\mathrm d x} \right) A^+ ~+~ A^+ A^{+\top} \left(\frac{\mathrm{d} A^\top}{\mathrm{d} x} \right) \left(I - A A^+\right) ~+~ \left(I - A^+ A\right) \left(\frac{\mathrm{d} A^\top}{\mathrm{d} x} \right) A^{+\top} A^+, where the functions A, A^+ and derivatives on the right side are evaluated at x_0 (that is, A := A(x_0), A^+ := A^+(x_0), etc.). For a complex matrix, the transpose is replaced with the conjugate transpose. For a real-valued symmetric matrix, the Magnus-Neudecker derivative is established. ==Examples==
Examples
Since for invertible matrices the pseudoinverse equals the usual inverse, only examples of non-invertible matrices are considered below. • For A = \begin{pmatrix} 0 & 0 \\ 0 & 0 \end{pmatrix}, the pseudoinverse is A^+ = \begin{pmatrix} 0 & 0 \\ 0 & 0 \end{pmatrix}. The uniqueness of this pseudoinverse can be seen from the requirement A^+ = A^+ A A^+, since multiplication by a zero matrix would always produce a zero matrix. • For A = \begin{pmatrix} 1 & 0 \\ 1 & 0 \end{pmatrix}, the pseudoinverse is A^+ = \begin{pmatrix} \frac{1}{2} & \frac{1}{2} \\ 0 & 0 \end{pmatrix}. : Indeed, A\,A^+ = \begin{pmatrix} \frac{1}{2} & \frac{1}{2} \\ \frac{1}{2} & \frac{1}{2} \end{pmatrix}, and thus A\,A^+ A = \begin{pmatrix} 1 & 0 \\ 1 & 0\end{pmatrix} = A. Similarly, A^+A = \begin{pmatrix} 1 & 0 \\ 0 & 0 \end{pmatrix}, and thus A^+A\,A^+ = \begin{pmatrix} \frac{1}{2} & \frac{1}{2} \\ 0 & 0 \end{pmatrix} = A^+. : Note that is neither injective nor surjective, and thus the pseudoinverse cannot be computed via A^+ = \left(A^* A\right)^{-1} A^* nor A^+ = A^* \left( A A^*\right)^{-1}, as A^* A and A A^* are both singular, and furthermore A^+ is neither a left nor a right inverse. : Nonetheless, the pseudoinverse can be computed via SVD observing that A=\sqrt2 \left(\frac{\mathbf e_1+\mathbf e_2}{\sqrt2}\right) \mathbf e_1^*, and thus A^+=\frac{1}{\sqrt2} \,\mathbf e_1 \left(\frac{\mathbf e_1+\mathbf e_2}{\sqrt2}\right)^*. • For A = \begin{pmatrix} 1 & 0 \\ -1 & 0 \end{pmatrix}, A^+ = \begin{pmatrix} \frac{1}{2} & -\frac{1}{2} \\ 0 & 0 \end{pmatrix}. • For A = \begin{pmatrix} 1 & 0 \\ 2 & 0 \end{pmatrix}, A^+ = \begin{pmatrix} \frac{1}{5} & \frac{2}{5} \\ 0 & 0 \end{pmatrix}. The denominators are here 5 = 1^2 + 2^2. • For A = \begin{pmatrix} 1 & 1 \\ 1 & 1 \end{pmatrix}, A^+ = \begin{pmatrix} \frac{1}{4} & \frac{1}{4} \\ \frac{1}{4} & \frac{1}{4} \end{pmatrix}. • For A = \begin{pmatrix} 1 & 0 \\ 0 & 1 \\ 0 & 1 \end{pmatrix}, the pseudoinverse is A^+ = \begin{pmatrix} 1 & 0 & 0 \\ 0 & \frac{1}{2} & \frac{1}{2} \end{pmatrix}. : For this matrix, the left inverse exists and thus equals A^+; indeed, A^+A = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}. ==Special cases==
Special cases
Scalars It is also possible to define a pseudoinverse for scalars and vectors. This amounts to treating these as matrices. The pseudoinverse of a scalar is zero if is zero and the reciprocal of otherwise: x^+ = \begin{cases} 0, & \mbox{if }x = 0; \\ x^{-1}, & \mbox{otherwise}. \end{cases} Vectors The pseudoinverse of the null (all zero) vector is the transposed null vector. The pseudoinverse of a non-null vector is the conjugate transposed vector divided by its squared magnitude: \vec{x}^+ = \begin{cases} \vec{0}^\mathsf{T}, & \text{if } \vec{x} = \vec{0}; \\[4pt] \dfrac{\vec{x}^*}{(\vec{x}^* \vec{x})}, & \text{otherwise}. \end{cases} Diagonal matrices The pseudoinverse of a squared diagonal matrix is obtained by taking the reciprocal of the nonzero diagonal elements. Formally, if D is a squared diagonal matrix with D=\tilde D\oplus \mathbf 0_{k\times k} and \tilde D>0, then D^+=\tilde D^{-1}\oplus \mathbf 0_{k\times k}. More generally, if A is any m\times n rectangular matrix whose only nonzero elements are on the diagonal, meaning A_{ij}=\delta_{ij} a_i, a_i\in\mathbb K, then A^+ is a n\times m rectangular matrix whose diagonal elements are the reciprocal of the original ones, that is, A_{ii}\neq 0\implies A^+_{ii}=\frac{1}{A_{ii}}. Linearly independent columns If the rank of is identical to the number of columns, , (for ,) there are linearly independent columns, and is invertible. In this case, an explicit formula is: A^+ = \left(A^*A\right)^{-1}A^*. It follows that is then a left inverse of :   A^+ A = I_n. Linearly independent rows If the rank of is identical to the number of rows, , (for ,) there are linearly independent rows, and is invertible. In this case, an explicit formula is: A^+ = A^*\left(A A^*\right)^{-1}. It follows that is a right inverse of :   A A^+ = I_m. Orthonormal columns or rows This is a special case of either full column rank or full row rank (treated above). If has orthonormal columns (A^*A = I_n) or orthonormal rows (A A^* = I_m), then: A^+ = A^* . Normal matrices If is normal, that is, it commutes with its conjugate transpose, then its pseudoinverse can be computed by diagonalizing it, mapping all nonzero eigenvalues to their inverses, and mapping zero eigenvalues to zero. A corollary is that commuting with its transpose implies that it commutes with its pseudoinverse. EP matrices A (square) matrix is said to be an EP matrix if it commutes with its pseudoinverse. In such cases (and only in such cases), it is possible to obtain the pseudoinverse as a polynomial in . A polynomial p(t) such that A^+=p(A) can be easily obtained from the characteristic polynomial of or, more generally, from any annihilating polynomial of . Orthogonal projection matrices This is a special case of a normal matrix with eigenvalues 0 and 1. If is an orthogonal projection matrix, that is, A = A^* and A^2 = A, then the pseudoinverse trivially coincides with the matrix itself: A^+ = A. Circulant matrices For a circulant matrix , the singular value decomposition is given by the Fourier transform, that is, the singular values are the Fourier coefficients. Let {{tmath| \mathcal{F} }} be the Discrete Fourier Transform (DFT) matrix; then \begin{align} C &= \mathcal{F}\cdot\Sigma\cdot\mathcal{F}^*,\\ C^+ &= \mathcal{F}\cdot\Sigma^+\cdot\mathcal{F}^*. \end{align} ==Construction==
Construction
Rank decomposition Let denote the rank of {{tmath| A \in \mathbb{K}^{m\times n} }}. Then can be (rank) decomposed as A = BC where {{tmath| B \in \mathbb{K}^{m\times r} }} and {{tmath| C \in \mathbb{K}^{r\times n} }} are of rank . Then A^+ = C^+B^+ = C^*\left(CC^*\right)^{-1}\left(B^*B\right)^{-1}B^*. The QR method For \mathbb{K} \in \{ \mathbb{R}, \mathbb{C}\} computing the product or and their inverses explicitly is often a source of numerical rounding errors and computational cost in practice. An alternative approach using the QR decomposition of may be used instead. Consider the case when is of full column rank, so that A^+ = \left(A^*A\right)^{-1}A^*. Then the Cholesky decomposition A^*A = R^*R, where is an upper triangular matrix, may be used. Multiplication by the inverse is then done easily by solving a system with multiple right-hand sides, A^+ = \left(A^*A\right)^{-1}A^* \quad \Leftrightarrow \quad \left(A^*A\right)A^+ = A^* \quad \Leftrightarrow \quad R^*RA^+ = A^* which may be solved by forward substitution followed by back substitution. The Cholesky decomposition may be computed without forming explicitly, by alternatively using the QR decomposition of A = Q R, where Q has orthonormal columns, Q^*Q = I, and is upper triangular. Then A^*A\, =\, (Q R)^*(Q R) \,=\, R^*Q^*Q R \,=\, R^*R , so is the Cholesky factor of . The case of full row rank is treated similarly by using the formula A^+ = A^*\left(A A^*\right)^{-1} and using a similar argument, swapping the roles of and . Using polynomials in matrices For an arbitrary {{tmath| A \in \mathbb{K}^{m\times n} }}, one has that A^*A is normal and, as a consequence, an EP matrix. One can then find a polynomial p(t) such that (A^*A)^+=p(A^*A). In this case one has that the pseudoinverse of is given by If A = U\Sigma V^* is the singular value decomposition of , then A^+ = V\Sigma^+ U^*. For a rectangular diagonal matrix such as , we get the pseudoinverse by transposing and taking the reciprocal of each non-zero element on the diagonal, leaving the zeros in place. In numerical computation, only elements larger than some small tolerance are taken to be nonzero, and the others are replaced by zeros. For example, in the MATLAB or GNU Octave function , the tolerance is taken to be , where ε is the machine epsilon. The computational cost of this method is dominated by the cost of computing the SVD, which is several times higher than matrix–matrix multiplication, even if a state-of-the art implementation (such as that of LAPACK) is used. The above procedure shows why taking the pseudoinverse is not a continuous operation: if the original matrix has a singular value 0 (a diagonal entry of the matrix above), then modifying slightly may turn this zero into a tiny positive number, thereby affecting the pseudoinverse dramatically as we now have to take the reciprocal of a tiny number. Block matrices Optimized approaches exist for calculating the pseudoinverse of block-structured matrices. The iterative method of Ben-Israel and Cohen Another method for computing the pseudoinverse (cf. Drazin inverse) uses the recursion A_{i+1} = 2A_i - A_i A A_i, which is sometimes referred to as hyper-power sequence. This recursion produces a sequence converging quadratically to the pseudoinverse of if it is started with an appropriate satisfying A_0 A = \left(A_0 A\right)^*. The choice A_0 = \alpha A^* (where 0 , with denoting the largest singular value of ) has been argued not to be competitive to the method using the SVD mentioned above, because even for moderately ill-conditioned matrices it takes a long time before enters the region of quadratic convergence. However, if started with already close to the Moore–Penrose inverse and A_0 A = \left(A_0 A\right)^*, for example A_0 := \left(A^* A + \delta I\right)^{-1} A^*, convergence is fast (quadratic). Updating the pseudoinverse For the cases where has full row or column rank, and the inverse of the correlation matrix ( for with full row rank or for full column rank) is already known, the pseudoinverse for matrices related to can be computed by applying the Sherman–Morrison–Woodbury formula to update the inverse of the correlation matrix, which may need less work. In particular, if the related matrix differs from the original one by only a changed, added or deleted row or column, incremental algorithms exist that exploit the relationship. Similarly, it is possible to update the Cholesky factor when a row or column is added, without creating the inverse of the correlation matrix explicitly. However, updating the pseudoinverse in the general rank-deficient case is much more complicated. Software libraries High-quality implementations of SVD, QR, and back substitution are available in standard libraries, such as LAPACK. Writing one's own implementation of SVD is a major programming project that requires a significant numerical expertise. In special circumstances, such as parallel computing or embedded computing, however, alternative implementations by QR or even the use of an explicit inverse might be preferable, and custom implementations may be unavoidable. The Python package NumPy provides a pseudoinverse calculation through its functions matrix.I and linalg.pinv; its pinv uses the SVD-based algorithm. SciPy adds a function scipy.linalg.pinv that uses a least-squares solver. The MASS package for R provides a calculation of the Moore–Penrose inverse through the ginv function. The ginv function calculates a pseudoinverse using the singular value decomposition provided by the svd function in the base R package. An alternative is to employ the pinv function available in the pracma package. The Octave programming language provides a pseudoinverse through the standard package function pinv and the pseudo_inverse() method. In Julia (programming language), the LinearAlgebra package of the standard library provides an implementation of the Moore–Penrose inverse pinv() implemented via singular-value decomposition. In Wolfram Mathematica the built-in function PseudoInverse works for both symbolic and numerical matrices. In the numerical case SVD is used and a tolerance parameter t is provided to specify the minimum singular value t\, \sigma_{\rm max} that should be retained. By default t=10^{2-p} where p is the precision of the matrix. ==Applications==
Applications
Linear least-squares The pseudoinverse provides a least squares solution to a system of linear equations. For {{tmath| A \in \mathbb{K}^{m\times n} }}, given a system of linear equations A x = b, in general, a vector that solves the system may not exist, or if one does exist, it may not be unique. More specifically, a solution exists if and only if b is in the image of A, and is unique if and only if A is injective. The pseudoinverse solves the "least-squares" problem as follows: • {{tmath| \forall x \in \mathbb{K}^n }}, we have \left\|Ax - b\right\|_2 \ge \left\|Az - b\right\|_2 where z = A^+b and \|\cdot\|_2 denotes the Euclidean norm. This weak inequality holds with equality if and only if x = A^+b + \left(I - A^+A\right)w for any vector ; this provides an infinitude of minimizing solutions unless has full column rank, in which case is a zero matrix. The solution with minimum Euclidean norm is x = A^+ b + \left[I - A^+ A\right]w for arbitrary vector . Solution(s) exist if and only if A A^+ b = b. If the latter holds, then the solution is unique if and only if has full column rank, in which case is a zero matrix. If solutions exist but does not have full column rank, then we have an indeterminate system, all of whose infinitude of solutions are given by this last equation. Minimum norm solution to a linear system For linear systems Ax = b, with non-unique solutions (such as under-determined systems), the pseudoinverse may be used to construct the solution of minimum Euclidean norm \|x\|_2 among all solutions. • If Ax = b is satisfiable, the vector z = A^+b is a solution, and satisfies \|z\|_2 \le \|x\|_2 for all solutions. This result is easily extended to systems with multiple right-hand sides, when the Euclidean norm is replaced by the Frobenius norm. Let {{tmath| B \in \mathbb{K}^{m\times p} }}. • If AX = B is satisfiable, the matrix Z = A^+B is a solution, and satisfies \|Z\|_{\mathrm{F}} \le \|X\|_{\mathrm{F}} for all solutions. Condition number Using the pseudoinverse and a matrix norm, one can define a condition number for any matrix: \mbox{cond}(A) = \|A\| \left\|A^+\right\|. A large condition number implies that the problem of finding least-squares solutions to the corresponding system of linear equations is ill-conditioned in the sense that small errors in the entries of can lead to huge errors in the entries of the solution. ==Theoretical complexity==
Theoretical complexity
It is possible to compute the Moore–Penrose inverse in a fast way with the use of fast matrix multiplication algorithms in the time O({n^\omega }) for ~2.37 \le \omega . ==Generalizations==
Generalizations
The weighted pseudoinverse generalizes the Moore-Penrose inverse between metric spaces with weight matrices in the domain and range. These weights are the identity for the standard Moore-Penrose inverse, which assumes an orthonormal basis in both spaces. In order to solve more general least-squares problems, one can define Moore–Penrose inverses for all continuous linear operators between two Hilbert spaces and , using the same four conditions as in our definition above. It turns out that not every continuous linear operator has a continuous linear pseudoinverse in this sense. Those that do are precisely the ones whose range is closed in . A notion of pseudoinverse exists for matrices over an arbitrary field equipped with an arbitrary involutive automorphism. In this more general setting, a given matrix doesn't always have a pseudoinverse. The necessary and sufficient condition for a pseudoinverse to exist is that \operatorname{rank}(A) = \operatorname{rank}\left(A^* A\right) = \operatorname{rank}\left(A A^*\right), where A^* denotes the result of applying the involution operation to the transpose of A. When it does exist, it is unique. Example: Consider the field of complex numbers equipped with the identity involution (as opposed to the involution considered elsewhere in the article); do there exist matrices that fail to have pseudoinverses in this sense? Consider the matrix A = \begin{bmatrix}1 & i\end{bmatrix}^\mathsf{T}. Observe that \operatorname{rank}\left(A A^\mathsf{T}\right) = 1 while \operatorname{rank}\left(A^\mathsf{T} A\right) = 0. So this matrix doesn't have a pseudoinverse in this sense. In abstract algebra, a Moore–Penrose inverse may be defined on a *-regular semigroup. This abstract definition coincides with the one in linear algebra. ==See also==
tickerdossier.comtickerdossier.substack.com