## Numpy Inverse Matrix

The linear Algebra model contains a few linear algebra functions. It is written as “numpy.linalg”. Here, “lin” stands for linear and “alg” is used for the word Algebra. So, from this, the model gets its name “linalg”. We can invert the matrices using this model. We can also find out the power of matrix or exponential using this method. Linear equations can also be solved using this method. We can find out the determinants of the matrix and much more. In this article, we will only discuss the Invert method using the NumPy library.

As we know NumPy is the library that is provided by python to compute various scientific calculations. It enables us to perform various calculations on multi-dimensional arrays. Now, we will see how to inverse a matrix using the linear Algebra module, numpy.linalg function will inverse any given matrix. It takes only one variable as a parameter which can be an array or a matrix. One thing to get noticed is that it only inverts the square matrix. In other cases, it will throw a “linalg” error.

## Syntax

“a” is the input parameter that can be an array or a matrix.

## Example # 01:

Now, we have taken an array “x” which is a 2d array. We will treat this 2d Array as the matrix. Now, if we look at our figure, we are applying the “inv” function on our matrix in line 4. To understand the output, we have to know the way the inverse of the matrix is found. To find the inverse of a matrix, we have to interchange the first and fourth values and take the second and third values as their negatives and then multiply it by 1/ad-bc. Where a, d, b, and c are the first, fourth, second, and third values respectively.

In our matrix, values of “a”, “b”, “c”, and “d” are “1”, “2”, “3”, and “4”. We can countercheck the output by the formula explained above. We will execute our code:

x = np.array([[1, 2],[3, 4]])

y=np.linalg.inv(x)

print(y)

The following is the outcome we will get from our code. In the output shown below, we can see that the function has returned the inverse of the input matrix. We used this simple example of how the inverse matrix function works for a 2×2 matrix in NumPy.

## Example # 02:

In this example, we have tried to take the inverse of a 3X3 matrix. Taking the inverse of a 3×3 matrix is a bit complex. To understand our output first, we have to understand the inverse for the 3×3 matrix. First, we must ascertain whether the matrix is invertible. To do so, we have to compute the determinant of the matrix. We first determine the given matrix’s determinant. If the matrix is not invertible, we cannot inverse it.

Now distribute the matrix into a 2×2 minor matrix and take their inverse. Formulate the output matrix. After that, we will calculate the Adjoint of the matrix by simply applying the transpose of the output formulated matrix. Lastly, divide every value of a conjugate matrix by the determinant value of the matrix. Now, use the explained process to get the inverse of the 3×3 matrix so that you can verify the output of our code whether it’s right or wrong.

a = np.array([[2, -1,0],[-1, 2,-1],[0,-1,2]])

b = np.linalg.inv(a)

print(b)

Taking the inverse of a 3×3 matrix is a complex task but with the help of the inv function, we have done it easily.

## Example # 03:

In this, we will be covering the linear Algebra module using a 4×4 matrix. So first, we will be calculating the inverse of the matrix to do so we will first import the NumPy library. Afterward, we will be declaring a matrix. As you can see in the snippet below, we have declared an array of 4×4 naming it “a” which includes the values “2”, “-1”, “0”, “3”, “-1”, “2”, “-1”, “0”, “0”, “-1”, “2”, “1”, “2”, “-3”, “2”, and “1”. One thing to keep in mind is the No of rows must be equal to the number of columns unless the linalg function will display the error message.

When we have successfully declared our square matrix, we will initialize another variable that will be responsible for holding the inverse of a matrix. In our case, that is “a_inv”. We will call the numpy built-in linear algebra function np.linalg which allows us to implement various algebraic operations. Like in this, we have to calculate the inverse of a matrix.

a = np.array([[2, -1, 0, 3],[-1, 2, -1, 4],[0, -1, 2, 5],[2, -3, 4, 1]])

a_inv = np.linalg.inv(a)

print(a_inv)

print(a @ a_inv)

Next, we will print the inverse of the matrix using the print() statement in which we passed the variable that is responsible for handling the inverse of a matrix. In the next line, we will be printing the identity matrix. We will be passing the array “a” and the inverse of the matrix to calculate the product. In the NumPy library, we use the “@” operator to perform multiplication between two matrices.

Now, to check the outcome of the code, we will press “Shift+Enter”. To execute the program.in the snippet below, we can see the first matrix is the inverse of array “a” where the second one is the identity matrix of the array “a”.

## Conclusion

We have learned about the numpy linalg.inv method in this guide. We have discussed how we can take the inverse of complex matrices with the help of the linalg module of NumPy by using simple to complex examples no matter how large the size of the matrix is. We have explored the concept of inverting matrices with mathematical explanations. We also showed how to deal with 3×3 or 4×4 matrices which can get very complex and lengthy sometimes. We have applied the “linalg.inv()” method in this guide which helps us a lot in taking the inverse of matrices and 2d and 3d arrays.

Source: linuxhint.com