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:
Jackson – Marshall String to JsonNode
Hướng dẫn Java Design Pattern – Null Object
Introduction to Eclipse Collections
Java Program to Solve Set Cover Problem assuming at max 2 Elements in a Subset
The Difference Between map() and flatMap()
Spring Cloud AWS – RDS
Java Program to Perform Matrix Multiplication
Comparing Two HashMaps in Java
The HttpMediaTypeNotAcceptableException in Spring MVC
Java – Try with Resources
Static Content in Spring WebFlux
Java toString() Method
Introduction to Spring Security Expressions
Java Program to Implement Kosaraju Algorithm
Java Program to Implement Control Table
Java Switch Statement
Java Program to Convert a Decimal Number to Binary Number using Stacks
A Guide to Java HashMap
Java Program to Implement Word Wrap Problem
Guide to Java OutputStream
Disable Spring Data Auto Configuration
More Jackson Annotations
Java Program to Create a Random Linear Extension for a DAG
Guide to Apache Commons CircularFifoQueue
Lớp LinkedHashMap trong Java
Query Entities by Dates and Times with Spring Data JPA
Java Program to Implement PrinterStateReasons API
Spring MVC Async vs Spring WebFlux
Binary Numbers in Java
Tính đóng gói (Encapsulation) trong java
Spring Boot - Eureka Server
Java Program to Perform integer Partition for a Specific Case