Compute the inverse of a matrix using NumPy
The inverse of a matrix is just a reciprocal of the matrix as we do in normal arithmetic for a single number which is used to solve the equations to find the value of unknown variables. The inverse of a matrix is that matrix which when multiplied with the original matrix will give as an identity matrix. The inverse of a matrix exists only if the matrix is non-singular i.e., determinant should not be 0. Using determinant and adjoint, we can easily find the inverse of a square matrix using below formula,
if det(A) != 0 A-1 = adj(A)/det(A) else "Inverse doesn't exist"
Matrix Equation
where,
A-1: The inverse of matrix A
x: The unknown variable column
B: The solution matrix
We can find out the inverse of any square matrix with the function numpy.linalg.inv(array).
Syntax: numpy.linalg.inv(a)
Parameters:
a: Matrix to be inverted
Returns: Inverse of the matrix a.
Example 1:
# Importing Library
import numpy as np
# Finding an inverse of given array
arr = np.array([[1, 2], [5, 6]])
inverse_array = np.linalg.inv(arr)
print("Inverse array is ")
print(inverse_array)
print()
# inverse of 3X3 matrix
arr = np.array([[1, 2, 3],
[4, 9, 6],
[7, 8, 9]])
inverse_array = np.linalg.inv(arr)
print("Inverse array is ")
print(inverse_array)
print()
# inverse of 4X4 matrix
arr = np.array([[1, 2, 3, 4],
[10, 11, 14, 25],
[20, 8, 7, 55],
[40, 41, 42, 43]])
inverse_array = np.linalg.inv(arr)
print("Inverse array is ")
print(inverse_array)
print()
# inverse of 1X1 matrix
arr = np.array([[1]])
inverse_array = np.linalg.inv(arr)
print("Inverse array is ")
print(inverse_array)
Output:
Inverse array is [[-1.5 0.5 ] [ 1.25 -0.25]] Inverse array is [[-0.6875 -0.125 0.3125 ] [-0.125 0.25 -0.125 ] [ 0.64583333 -0.125 -0.02083333]] Inverse array is [[-15.07692308 4.9 -0.8 -0.42307692] [ 32.48717949 -10.9 1.8 1.01282051] [-20.84615385 7.1 -1.2 -0.65384615] [ 3.41025641 -1.1 0.2 0.08974359]] Inverse array is [[1.]]
Example 2:
# Import required package
import numpy as np
# Inverses of several matrices can
# be computed at once
A = np.array([[[1., 2.], [3., 4.]],
[[1, 3], [3, 5]]])
# Calculating the inverse of the matrix
print(np.linalg.inv(A))
Output:
[[[-2. 1. ] [ 1.5 -0.5 ]] [[-1.25 0.75] [ 0.75 -0.25]]]