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:
Hướng dẫn Java Design Pattern – Intercepting Filter
Spring Boot - Scheduling
An Intro to Spring Cloud Security
Spring Boot - Eureka Server
The Guide to RestTemplate
Bootstrap a Web Application with Spring 5
Java TreeMap vs HashMap
Java Program to Check Whether it is Weakly Connected or Strongly Connected for a Directed Graph
ETags for REST with Spring
Spring Boot With H2 Database
LinkedHashSet trong java
Introduction to the Java NIO Selector
Transaction Propagation and Isolation in Spring @Transactional
Java Program to Perform Partial Key Search in a K-D Tree
Overview of the java.util.concurrent
How to Read a File in Java
Finding the rank of a matrix
Netflix Archaius with Various Database Configurations
Java Program to Implement Stack using Two Queues
Java Program to Perform Preorder Non-Recursive Traversal of a Given Binary Tree
Quick Guide to Spring MVC with Velocity
Java Program to Implement Kosaraju Algorithm
Java – Byte Array to Reader
Getting Started with GraphQL and Spring Boot
New Features in Java 14
Why String is Immutable in Java?
Java Program to Implement Pollard Rho Algorithm
Spring Security Remember Me
Thao tác với tập tin và thư mục trong Java
Java Program to Implement Segment Tree
Java Program to Implement Knight’s Tour Problem
Using the Map.Entry Java Class