This is a java program to LU Decomposition of a given matrix. LU decomposition is the process of reducing single matrix into 2 matrices such that, upon multiplication we get the original matrix, having property that one of them is lower trinagular matrix and other one is upper trinagular matrix.
Here is the source code of the Java Program to Perform LU Decomposition of any Matrix. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
//This is a sample program to calulate the LU decomposition of the given matrix import java.util.Scanner; public class LUDecomposition { public static void main(String args[]) { System.out.println("Enter the dimension of the matrix:"); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); double [][]mat = new double[n][n]; for(int i=0; i<n; i++) for(int j=0; j<n; j++) mat[i][j] = sc.nextDouble(); if(n==2) { double [][]l = new double[n][n]; l[0][0] = l[1][1] = 1; l[0][1] = 0; double [][]u = new double[n][n]; u[1][0] = 0; u[0][0] = mat[0][0]; u[0][1] = mat[0][1]; l[1][0] = mat[1][0]/mat[0][0]; u[1][1] = mat[1][1] - (l[1][0]*u[0][1]); //mat[2][2]-(mat[2][1]*mat[1][2]/mat[1][1]); System.out.println("The L Component is:"); for(int i=0; i<n; i++) { for(int j=0; j<n; j++) System.out.print(" "+l[i][j]); System.out.println(); } System.out.println("The U Component is:"); for(int i=0; i<n; i++) { for(int j=0; j<n; j++) System.out.print(" "+u[i][j]); System.out.println(); } } if(n==3) { double [][]l = new double[n][n]; l[0][0] = l[1][1] = l[2][2] = 1; l[0][1] = l[0][2] = l[1][2] = 0; double [][]u = new double[n][n]; u[1][0] = u[2][0] = u[2][1] = 0; u[0][0] = mat[0][0]; u[0][1] = mat[0][1]; u[0][2] = mat[0][2]; l[1][0] = mat[1][0]/mat[0][0]; u[1][1] = mat[1][1] - (l[1][0]*u[0][1]); //mat[2][2]-(mat[2][1]*mat[1][2]/mat[1][1]); u[1][2] = mat[1][2] - (l[1][0]*u[0][2]); l[2][0] = mat[2][0]/u[0][0]; l[2][1] = (mat[2][1] - l[2][1]*u[0][1])/u[1][1]; u[2][2] = mat[2][2] - (l[2][0]*u[0][2]) - (l[2][1]*u[1][2]); System.out.println("The L Component is:"); for(int i=0; i<n; i++) { for(int j=0; j<n; j++) System.out.print(" "+l[i][j]); System.out.println(); } System.out.println("The U Component is:"); for(int i=0; i<n; i++) { for(int j=0; j<n; j++) System.out.print(" "+u[i][j]); System.out.println(); } } sc.close(); } }
Output:
$ javac LUDecomposition.java $ java LUDecomposition.java Enter the dimension of the matrix: 3 2 3 1 4 5 1 1 1 1 The L Component is: 1.0 0.0 0.0 2.0 1.0 0.0 0.5 -1.0 1.0 The U Component is: 2.0 3.0 1.0 0.0 -1.0 -1.0 0.0 0.0 -0.5
Related posts:
Java Program to Generate All Possible Combinations Out of a, b, c, d, e
Java Program to Represent Graph Using Linked List
Inheritance with Jackson
Intro to Spring Boot Starters
Stack Memory and Heap Space in Java
Getting Started with Stream Processing with Spring Cloud Data Flow
Java Program to Implement Kosaraju Algorithm
Java Program to Implement Naor-Reingold Pseudo Random Function
Java Program to Implement Control Table
Java Program to Implement PrinterStateReasons API
Java Byte Array to InputStream
A Quick JUnit vs TestNG Comparison
Converting String to Stream of chars
Command-Line Arguments in Java
New Stream Collectors in Java 9
Changing Annotation Parameters At Runtime
@Before vs @BeforeClass vs @BeforeEach vs @BeforeAll
Collection trong java
Java Switch Statement
Java Program to Find the Vertex Connectivity of a Graph
Java Program to Implement Doubly Linked List
New Features in Java 10
Java Program to Use the Bellman-Ford Algorithm to Find the Shortest Path
Introduction to Spring Cloud Netflix – Eureka
Java Program to Use rand and srand Functions
Java Program to Implement Shunting Yard Algorithm
Java Program to Encode a Message Using Playfair Cipher
Concurrent Test Execution in Spring 5
Getting the Size of an Iterable in Java
Giới thiệu Swagger – Công cụ document cho RESTfull APIs
Java Program to Perform Left Rotation on a Binary Search Tree
Spring Boot with Multiple SQL Import Files