Friday, 17 November 2017

Java Program to Perform LU Decomposition of any Matrix


Code:

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
            for(int j=0; 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
            {
                for(int j=0; j
                    System.out.print(" "+l[i][j]);
                System.out.println();
            }
            System.out.println("The U Component is:");
            for(int i=0; i
            {
                for(int j=0; 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
            {
                for(int j=0; j
                    System.out.print(" "+l[i][j]);
                System.out.println();
            }
            System.out.println("The U Component is:");
            for(int i=0; i
            {
                for(int j=0; j
                    System.out.print(" "+u[i][j]);
                System.out.println();
            }
        }
        sc.close();
    }
}


Output:

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


More Java Programs:













100+ Best Home Decoration Ideas For Christmas Day 2019 To Make Home Beautiful

Best gifts for Christmas Day | Greeting cards for Christmas Day | Gift your children a new gift on Christmas day This Christmas d...