This is the java program to check whether the matrix is invertible or not. The square matrix is invertible if and only if its determinant is non zero.
Here is the source code of the Java Program to Check if a Matrix is Invertible. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
//This is a simple program to check whether the matrix is invertible or not.
//The complexity of the algorithm is O(n^3)
import java.util.*;
public class Invertible_Matrix
{
public double determinant(double A[][],int N)
{
double det=0;
if(N == 1)
{
det = A[0][0];
}
else if (N == 2)
{
det = A[0][0]*A[1][1] - A[1][0]*A[0][1];
}
else
{
det=0;
for(int j1=0;j1<N;j1++)
{
double[][] m = new double[N-1][];
for(int k=0;k<(N-1);k++)
{
m[k] = new double[N-1];
}
for(int i=1;i<N;i++)
{
int j2=0;
for(int j=0;j<N;j++)
{
if(j == j1)
continue;
m[i-1][j2] = A[i][j];
j2++;
}
}
det += Math.pow(-1.0,1.0+j1+1.0)* A[0][j1] * determinant(m,N-1);
}
}
return det;
}
public static void main(String args[])
{
Scanner input = new Scanner(System.in);
System.out.println("Enter the order of the square matrix");
int n = input.nextInt();
System.out.println("Enter the elements of the square matrix");
double[][] mat = new double[n][n];
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
mat[i][j] = input.nextDouble();
}
}
Invertible_Matrix I = new Invertible_Matrix();
if(I.determinant(mat, n) == 0)
{
System.out.println("Matrix is not Invertible, as the determinant is : "+I.determinant(mat, n));
}
else
{
System.out.println("Matrix is Invertible, as the determinant is : "+I.determinant(mat, n));
}
input.close();
}
}
Output:
$ javac Invertible_Matrix.java $ java Invertible_matrix Enter the order of the square matrix: 3 Enter the elements of the square matrix: 1 2 3 4 5 6 7 8 9 Matrix is not Invertible, as the determinant is : 0.0
Related posts:
Java Program to Implement Stack API
Một số tính năng mới về xử lý ngoại lệ trong Java 7
Introduction to Netflix Archaius with Spring Cloud
Giới thiệu Google Guice – Dependency injection (DI) framework
Java Program to Implement Queue using Two Stacks
A Guide to Queries in Spring Data MongoDB
Java Program to Apply DFS to Perform the Topological Sorting of a Directed Acyclic Graph
Phân biệt JVM, JRE, JDK
Multi Dimensional ArrayList in Java
The Difference Between Collection.stream().forEach() and Collection.forEach()
Spring Webflux and CORS
Java Program to Perform Right Rotation on a Binary Search Tree
Java Program to Find the Vertex Connectivity of a Graph
Java 8 Streams peek() API
Java Program to Implement Adjacency List
Recommended Package Structure of a Spring Boot Project
The SpringJUnitConfig and SpringJUnitWebConfig Annotations in Spring 5
Java – Write an InputStream to a File
Hướng dẫn Java Design Pattern – Visitor
Prevent Cross-Site Scripting (XSS) in a Spring Application
Java Program to Perform Searching Based on Locality of Reference
Thao tác với tập tin và thư mục trong Java
Hướng dẫn Java Design Pattern – Object Pool
Setting the Java Version in Maven
A Guide to Java SynchronousQueue
Java Program to Implement Bloom Filter
A Guide to Spring Cloud Netflix – Hystrix
Java Program to Implement Hash Tables
Java Program to Implement Treap
Java Program to Implement Caesar Cypher
Apache Commons Collections MapUtils
Lớp Collections trong Java (Collections Utility Class)