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:
Returning Custom Status Codes from Spring Controllers
Guide to CountDownLatch in Java
Java Program to Implement Heap
HttpClient 4 – Follow Redirects for POST
HttpClient Timeout
Java Program to Find Maximum Element in an Array using Binary Search
Sử dụng CountDownLatch trong Java
Custom Error Pages with Spring MVC
Java Program to Implement Coppersmith Freivald’s Algorithm
Converting a List to String in Java
Introduction to Project Reactor Bus
Java Program to Perform Postorder Non-Recursive Traversal of a Given Binary Tree
Checked and Unchecked Exceptions in Java
Runnable vs. Callable in Java
Spring’s RequestBody and ResponseBody Annotations
Spring Boot - Zuul Proxy Server and Routing
Constructor Injection in Spring with Lombok
ClassNotFoundException vs NoClassDefFoundError
So sánh ArrayList và LinkedList trong Java
Java Stream Filter with Lambda Expression
Java Program to Implement Sparse Matrix
Java Program to Perform Searching Using Self-Organizing Lists
Java Program to Generate Random Hexadecimal Byte
Tìm hiểu về xác thực và phân quyền trong ứng dụng
Java Program to Implement Nth Root Algorithm
Java Program to Permute All Letters of an Input String
How to use the Spring FactoryBean?
Get and Post Lists of Objects with RestTemplate
Java Program to Check whether Graph is a Bipartite using 2 Color Algorithm
Sorting Query Results with Spring Data
Prevent Cross-Site Scripting (XSS) in a Spring Application
How to Define a Spring Boot Filter?