Here you will get C and C++ program to find inverse of a matrix.
We can obtain matrix inverse by following method.
- First calculate deteminant of matrix.
- Then calculate adjoint of given matrix. Adjoint can be obtained by taking transpose of cofactor matrix of given square matrix.
- Finally multiply 1/deteminant by adjoint to get inverse.
The formula to find inverse of matrix is given below.
You can watch below video to learn how inverse is calculated.
In below program I have calculated the inverse of 3×3 matrix.
C Program to Find Inverse of a Matrix
#include<stdio.h> int main(){ int mat[3][3], i, j; float determinant = 0; printf("Enter elements of matrix row wise:\n"); for(i = 0; i < 3; i++) for(j = 0; j < 3; j++) scanf("%d", &mat[i][j]); printf("\nGiven matrix is:"); for(i = 0; i < 3; i++){ printf("\n"); for(j = 0; j < 3; j++) printf("%d\t", mat[i][j]); } //finding determinant for(i = 0; i < 3; i++) determinant = determinant + (mat[0][i] * (mat[1][(i+1)%3] * mat[2][(i+2)%3] - mat[1][(i+2)%3] * mat[2][(i+1)%3])); printf("\n\ndeterminant: %f\n", determinant); printf("\nInverse of matrix is: \n"); for(i = 0; i < 3; i++){ for(j = 0; j < 3; j++) printf("%.2f\t",((mat[(j+1)%3][(i+1)%3] * mat[(j+2)%3][(i+2)%3]) - (mat[(j+1)%3][(i+2)%3] * mat[(j+2)%3][(i+1)%3]))/ determinant); printf("\n"); } return 0; }
C++ Program to Find Inverse of a Matrix
#include<iostream> using namespace std; int main(){ int mat[3][3], i, j; float determinant = 0; cout<<"Enter elements of matrix row wise:\n"; for(i = 0; i < 3; i++) for(j = 0; j < 3; j++) cin>>mat[i][j]; printf("\nGiven matrix is:"); for(i = 0; i < 3; i++){ cout<<"\n"; for(j = 0; j < 3; j++) cout<<mat[i][j]<<"\t"; } //finding determinant for(i = 0; i < 3; i++) determinant = determinant + (mat[0][i] * (mat[1][(i+1)%3] * mat[2][(i+2)%3] - mat[1][(i+2)%3] * mat[2][(i+1)%3])); cout<<"\n\ndeterminant: "<<determinant; cout<<"\n\nInverse of matrix is: \n"; for(i = 0; i < 3; i++){ for(j = 0; j < 3; j++) cout<<((mat[(j+1)%3][(i+1)%3] * mat[(j+2)%3][(i+2)%3]) - (mat[(j+1)%3][(i+2)%3] * mat[(j+2)%3][(i+1)%3]))/ determinant<<"\t"; cout<<"\n"; } return 0; }
Output
The post C and C++ Program to Find Inverse of a Matrix appeared first on The Crazy Programmer.