mathajax

Solving System of Linear Equation by Matrix Inverse

The two or more algebraic equation are called system of equations. The Java program finds solution vector X to a system of three linear equations by matrix inverse method.

a11 x1 + a12 x2 + a13 x3 = b 1
a21 x1 + a22 x2 + a23 x3 = b 2
a31 x1 + a32 x2 + a33 x3 = b 3

The three linear equation is represented by matrix format by separating coefficients and unknown variables

                                  |  a11  a12  a13   |
         Coefficients matrix A  = |  a21  a22  a23   |
                                  |  a31  a32  a33   |

         unknown variable     X = [ x1 x2 x3 ]'
       
         non-homogeneous      b = [ b1 b2 b3 ]' 
          
   

                      
        solve given matrix A and vector b (non-homogeneous vector) 
             find value of vector X    

         Matrix representation 

                 A X = b 
         
         multiply both side by A-1

               A-1 A X  =  A-1 b              
         
         Note - A-1 A  = I (Identity matrix)
                
                I X =  A-1 b 

         Note -  I X  = X  

            X =  A-1 b     
   

Algorithm - Solving System of Linear Equation by Matrix Inverse

The following steps are need to do solving system of linear equation by matrix inverse method.

  1. Read 3x3 matrix A and 3x1 b vector

  2. Find determinant value D of matrix A
    • if the determinant value D is zero
    • then print matrix A is singular, and has inverse matrix
    • else goto step 3

  3. Cofactor matrix - finds cofactor matrix from matrix A.
  4. Adjoint matrix (adjmat) - finds adjoint matrix by transposing cofactor matrix

  5. find A-1 = adjmat / D , divide each elements of matrix by D (determinant value) scalar operation over adjoint matrix .
  6. solution vector X = A-1 b , multiply A-1 by the vector b.
  7. print solution vector X

Java program - System of Linear Equation by Matrix Inverse

The program Linear-equation has one constructor and two member functions to find a solution vector to system of linear three linear equations.

constructor LinearEquation - accepts two arguments, one is 2D double array having 3x3 elements and other ID double array having 3x1 elements.

  1. multiply - This method used to carry out a matrix and a vector multiplication operation i.e. matrix A is multiplied by a vector b .

  2. solve - The method to used to solve the system of three equation by matrix inverse method.

 

import java.util.Arrays;

public class LinearEquation extends Matrix {

 double b[];
 public LinearEquation(double A[][],double b[]) {
      super(A);
      this.b=b;
 }
 
 public  double[] multiply(Matrix imat) {
  
    double sol[] =new double[imat.getNrow()];            
    for(int r=0;r<imat.getNrow();r++) 
    {            
       double temp=0;  
       for(int r2=0;r2<b.length;r2++)  
          temp += imat.getElement(r,r2)*b[r2];    

       sol[r]= temp;           
     }  
      return sol;

   }
 
 
    public  double[] solve() {
  
           System.out.println("Input Matrix A 3x3 " );
           System.out.println(this.toString());

         double det=MatrixOpr2.determinant(this);
  
      if ( det==0) {
         System.out.println("Determinant =" + det);
         System.out.println("Matrix is sinular");
         return null;   
      }
  
      System.out.println("Determinant =" + det);
  

       Matrix cfmat=MatrixOpr2.cofactor(this);
       System.out.println("Cofactor matrix");
       System.out.println(cfmat);
  
       Matrix adjmat=cfmat.transpose();
       System.out.println("Adjoint matrix");
       System.out.println(adjmat);
  
       Matrix imat= Scalar.divide(adjmat, det);
  
       System.out.println("Inverse matrix");
       System.out.println(imat);
  
  
       double sol[]=this.multiply(imat);    
       return sol;
  }

 
 public static void main(String[] args) {
  
  double A[][]= { {4,5,-2},{7,-1,2},{3,1,4}};
  double b[]= {-14,42,28};
  
  LinearEquation le=new LinearEquation(A,b);     
  double solution[]=le.solve();
  
  if ( solution !=null ) {
   System.out.println("Solution of Equation :");
   System.out.println(Arrays.toString(solution));
  }
  

 }

}
 

Java program Linear Equation by Matrix Inverse Output


Input Matrix A 3x3 
4.0  5.0  -2.0  
7.0  -1.0  2.0  
3.0  1.0  4.0  

Determinant of Matrix A =-154.0

Cofactor matrix of A
-6.0  -22.0  10.0  
-22.0  22.0  11.0  
8.0  -22.0  -39.0  

Adjoint matrix of A
-6.0  -22.0  8.0  
-22.0  22.0  -22.0  
10.0  11.0  -39.0  

Inverse matrix of A
0.03896103896103896  0.14285714285714285  -0.05194805194805195  
0.14285714285714285  -0.14285714285714285  0.14285714285714285  
-0.06493506493506493  -0.07142857142857142  0.2532467532467532  

Solution of Equation 
[4.0, -4.0, 4.999999999999999]

Comments

Post a Comment

Popular posts from this blog

Solving System of Linear Equations by Gauss Jordan Elimination

Matrix Forward and Back Substitution

Solve System of Linear Equations by LU Decompose

Chebyshev distance between two points

Binary 1's and 2's Complement