diff --git a/Maths/DeterminantOfMatrix.java b/Maths/DeterminantOfMatrix.java new file mode 100644 index 000000000..f5ed09ca1 --- /dev/null +++ b/Maths/DeterminantOfMatrix.java @@ -0,0 +1,61 @@ +package Maths; +import java.util.*; + +/* +* @author Ojasva Jain +* Determinant of Matrix Wikipedia link : https://en.wikipedia.org/wiki/Determinant +*/ +public class DeterminantOfMatrix +{ + // Determinant calculator + //@return determinant of the input matrix + static int determinant(int a[][], int n) + { + int det = 0, sign = 1, p = 0, q = 0; + if(n==1) + { + det = a[0][0]; + } + else + { + int b[][] = new int[n-1][n-1]; + for(int x = 0 ; x < n ; x++) + { + p=0;q=0; + for(int i = 1;i < n; i++) + { + for(int j = 0; j < n;j++) + { + if(j != x) + { + b[p][q++] = a[i][j]; + if(q % (n-1) == 0) + { + p++; + q=0; + } + } + } + } + det = det + a[0][x] *determinant(b, n-1) * sign; + sign = -sign; + } + } + return det; + } + //Driver Method + public static void main(String [] args){ + Scanner in = new Scanner(System.in); + //Input Matrix + System.out.println("Enter matrix size (Square matrix only)"); + int n = in.nextInt(); + System.out.println("Enter matrix"); + int a [][] = new int [n][n]; + for(int i=0;i