Pseudoinverse Calculator
Welcome to our pseudoinverse calculator, where we'll learn all there is to know about the Moore-Penrose pseudoinverse. We'll show you how to calculate the pseudoinverse for any matrix, and we'll cover some of its important properties. We'll even show you how to calculate the pseudoinverse of a 3-by-2 matrix. So, grab a cup of coffee and let's get started!
A short introduction to matrices
Before we can properly explain what the pseudoinverse is, we have to cover some basics — and what can be a more fundamental building block of linear algebra than a matrix?
A matrix is an array of numbers, symbols, or expressions (collectively called its elements). A matrix's elements are arranged in rows and columns. Matrices can be added, subtracted, or multiplied together, but they can also be subjected to other operations:
-
The matrix transpose of a matrix MM involves swapping its rows with its columns, and we denote it as MTMT.
-
The matrix inverse can best be explained as calculating its reciprocal. Inverting a matrix MM is denoted as M−1M−1.
What is a matrix pseudoinverse?
Now that we know what a matrix is, we can start talking about its pseudoinverse.
The Moore-Penrose pseudoinverse A+A+ of a matrix AA is a generalization of its inverse A−1A−1. It's also known as the Moore-Penrose inverse or just the pseudoinverse. When a matrix's determinant is zero, it cannot be inverted. We'd call the matrix singular — it has no inverse. This is unfortunate, because the inverse is valuable in solving a system of equations. However, there is good news — if we can find some value that is almost a solution, we can still do some really useful things. Finding this approximate solution is precisely what the matrix pseudoinverse allows us to do.
A system of equations is defined as A⋅x=bA⋅x=b, where AA is a known matrix, and bb is a known vector. We need to solve for the unknown vector xx. In an ideal linear problem that you'd find in your algebra class, there is only one true solution, xx. We'd call such a problem "well-defined". However, real-world problems that are restated with A⋅x=bA⋅x=b are rarely well-defined and instead have either no solutions or multiple solutions for xx. How can we solve this problem? You guessed it — with the pseudoinverse of AA!
-
If the system has no solutions for xx, we can use A+A+ to find the system's best fitting solution, xapprox=A+⋅bxapprox=A+⋅b. While A⋅x_approx=bA⋅x_approx=b as no solution exists, we've still found the best approximation of the solution — we can also say it minimizes the error ∣A⋅x_approx−b∣∣A⋅x_approx−b∣.
-
If the system has more than one solution, we can also find the best one with xbest=A+⋅bxbest=A+⋅b.
Here's another way of thinking about the Moore-Penrose inverse. As we said before, AA is singular and has no inverse A−1A−1. The nonsingular matrix BB does have an inverse B−1B−1, and from the definition of the inverse matrix, B−1⋅B=IB−1⋅B=I (with II as the identity matrix) will always be true. The pseudoinverse A+A+ is defined so that A⋅A+A⋅A+ will be as close to II as possible. We denote this objective as A⋅A+≈IA⋅A+≈I. This is why we call A+A+ the generalized inverse of AA: it tries to perform the same function as the normal inverse does for matrices that don't have an inverse. Under this condition, the pseudoinverse doesn't have to be square, unlike the normal inverse. Lastly, it's interesting to note that if AA is actually invertible, then A+=A−1A+=A−1.
How to calculate the pseudoinverse?
By now, we've learned what the pseudoinverse is and why exactly it is so valuable. But how do we calculate the pseudoinverse of AA?
We can evaluate the pseudoinverse A+A+ in many ways.
If you use singular value decomposition to obtain the terms of A=U⋅S⋅VTA=U⋅S⋅VT, then you can pretty easily calculate AA's pseudoinverse with A+=V⋅S+⋅UTA+=V⋅S+⋅UT.
But that's a lot of effort, and so mathematicians have discovered some shortcuts.
-
If AA has linearly independent columns, you can calculate the Moore-Penrose pseudoinverse A+A+ with A+=(AT⋅A)−1⋅ATA+=(AT⋅A)−1⋅AT.
-
Similarly, if AA has linearly independent rows, A+=AT⋅(A⋅AT)−1A+=AT⋅(A⋅AT)−1.
If neither AA's columns nor its rows are linearly independent, it gets a little bit trickier!
-
Start by calculating A⋅ATA⋅AT and row reduce it to reduced row echelon form.
-
Take the non-zero rows of the result and make them the columns of a new matrix PP.
-
Similarly, row-reduce AT⋅AAT⋅A and use its non-zero rows for the columns of the new matrix QQ.
-
With your newly found PP and QQ, calculate M=PT⋅A⋅QM=PT⋅A⋅Q.
-
Finally, calculate the pseudoinverse A+=Q⋅M−1⋅PTA+=Q⋅M−1⋅PT.
How do I use the pseudoinverse calculator?
Lucky for us, our pseudoinverse calculator is much quicker to use than the formula! With your matrix handy, follow these easy steps.
- Select your matrix's dimensions. A matrix with nn rows and mm columns is commonly referred to as an n×mn×m matrix. So, if your matrix is three numbers tall and two numbers wide, its dimensions are 3×23×2.
- Input your matrix's values row-by-row. Use the symbolic matrix at the top of the calculator as a reference when deciding which value goes where.
- Find your visualized results at the bottom of the calculator.
Both your complete matrix and its pseudoinverse are shown, just in case you want to make sure you entered your values correctly.
What is the pseudoinverse used for?
As we've said before, we used the Moore-Penrose pseudoinverse in linear algebra to find approximate solutions to poorly defined systems of equations. But what good is an approximate solution?
Finding the best-fitting solution to a poorly defined system of equations is a crucial element of many real-world technologies. Approximate solutions power the entire concept of data fitting, and so the pseudoinverse can help you predict the weather, predict business and economic trends, and diagnose medical problems.
The best-fitting solution gets even better when you realize the resulting line of best fit doesn't have to be linear, but can be quadratic or exponential. If you can see a pattern in your data, you can fit any kind of line to it, and the Moore-Penrose inverse can help you find that line.
Because a non-invertible matrix has no inverse, we can't calculate its condition number, depriving us of valuable information. In cases such as these, the pseudoinverse can stand in for the regular inverse in the condition number formula.
An example of calculating the Moore-Penrose pseudoinverse
The calculations are all good in theory, but what about practice? Is it really as hard as it looks?
Let's look at two examples: one where we use the shortcuts that linear independence grants us, and one where we have to take the longer path.
We start with the matrix AA:
AA has linearly independent columns, and so to calculate A+A+, we can use our first shortcut A+=(AT⋅A)−1⋅ATA+=(AT⋅A)−1⋅AT.
Let's start by calculating the transpose of AA, denoted as ATAT.
We need to multiply ATAT with AA…
…invert it…
…and multiply the whole thing with ATAT again.
And there we have it: the pseudoinverse of our 3-by-2 matrix.
That was simple enough, but now let's tackle a linearly dependent 3-by-2 matrix and its pseudoinverse, where we're forced to use the extended method. Consider our next matrix BB:
Neither BB's rows nor its columns are linearly independent. You can obtain column #2 by multiplying column #1 with 22, and you can obtain rows #2 and #3 by multiplying row #1 with 22 and 33, respectively. As there is no linear independence, we have to use the extended method. Let's take it step by step!
Step 1: We calculate B⋅BTB⋅BT...
…and we use row reductions to obtain…
Step 2: We take the non-zero rows in the above result and use them to make the columns of PP.
Step 3: We do the same thing with BT⋅BBT⋅B. We calculate it, row-reduce it, and use the non-zero rows for the columns of QQ.
Step 4: Now that we have PP and QQ, we can calculate MM. It might only have one element, but MM is still a matrix!
Step 5: The last step is to use MM, PP, and QQ to finally calculate B+B+.
And so, we've found the pseudoinverse of a linearly dependent matrix!
FAQs
- What's the difference between a normal inverse and a pseudoinverse?
- There isn't a "difference" between the pseudoinverse and the inverse. The pseudoinverse is just a generalization of the inverse — it tries to do the same job. The pseudoinverse A+ strives to satisfy A·A+ ≈ Ɪ, where Ɪ is the identity matrix. If the inverse doesn't exist, the pseudoinverse is the closest we can get to the inverse. If the inverse exists, the pseudoinverse is exactly equal to the inverse.
- Is the pseudoinverse square?
- The pseudoinverse A+ will have the transposed shape of its original matrix. An n×m matrix has an m×n pseudoinverse. In other words, if A has, e.g., 2 rows and 3 columns, then A+ will have 3 rows and 2 columns. A+ will therefore only be square if A is square.
- What is the pseudoinverse of a zero matrix?
- A zero matrix Z is a matrix that contains only zeros. It has no inverse, as its determinant is always 0. A zero matrix's pseudoinverse is generally the zero matrix's transpose, i.e., Z+ = ZT.
- What is the pseudoinverse of a diagonal matrix?
- A diagonal matrix D is a matrix that only has nonzero elements on its diagonal, and all other elements are zero. Because of D's unique structure, computing D+ is very easy: simply replace the elements on the diagonal with their reciprocals.
Related calculators
Remainder
Use the remainder calculator to find the quotient and remainder of division.
Math
Slope
Calculate the slope of a line from two given points using the slope calculator. Discover the slope formula and learn how to find a slope with two points.
Math
Average
Calculate the average (mean) with our user-friendly tool. Discover how to find averages or perform quick calculations effortlessly.
Math
Circumference
Use this free circumference calculator to find the area, circumference and diameter of a circle.
Math