C program to the determinant of a matrix; Through this tutorial, we will learn how to find determine of a matrix in the c program.
C Program to Find Determinant of a Matrix
#include<stdio.h> #include<math.h> #include<stdlib.h> #define SIZE 10 int main() { float a[SIZE][SIZE], x[SIZE], ratio, det=1; int i,j,k,n; /* Inputs */ /* 1. Reading number of unknowns */ printf("Enter Order of Matrix: "); scanf("%d", &n); /* 2. Reading Matrix */ printf("\nEnter Coefficients of Matrix: \n"); for(i=0;i< n;i++) { for(j=0;j< n;j++) { printf("a[%d][%d]=",i,j); scanf("%f", &a[i][j]); } } /* Here we are using Gauss Elimination Technique for transforming matrix to upper triangular matrix */ /* Applying Gauss Elimination */ for(i=0;i< n;i++) { if(a[i][i] == 0.0) { printf("Mathematical Error!"); exit(0); } for(j=i+1;j< n;j++) { ratio = a[j][i]/a[i][i]; for(k=0;k< n;k++) { a[j][k] = a[j][k] - ratio*a[i][k]; } } } /* Displaying upper triangular matrix */ /* Not required, just for the sake of understanding */ /* By analyzing upper triangular matrix you will get what's going on :) */ printf("\nUpper Triangular Matrix: \n"); for(i=0;i< n;i++) { for(j=0;j< n;j++) { printf("%0.2f\t",a[i][j]); } printf("\n"); } /* Finding determinant by multiplying elements in principal diagonal elements */ for(i=0;i< n;i++) { det = det * a[i][i]; } printf("\n\nDeterminant of given matrix is: %0.3f", det); return 0; }
The output of the above c program; as follows:
Enter Order of Matrix: 2 Enter Coefficients of Matrix: a[0][0]=1 a[0][1]=2 a[1][0]=3 a[1][1]=4 Upper Triangular Matrix: 1.00 2.00 0.00 -2.00 Determinant of given matrix is: -2.000