package Tugas4;
import java.io.*;
import java.util.*;
public class invers_matriks {
@SuppressWarnings("empty-statement")
public
static void main(String []args) throws IOException {
DataInputStream entry = new
DataInputStream(System.in);
try
{
Scanner input = new Scanner(System.in);
System.out.print("PROGRAM MENCARI DETERMINAN DAN INVERS MATRIKS
\n");
//Proses
pemilihan ordo 2x2 atau 4x4 oleh user
System.out.println("\nPilih ordo yang anda inginkan:\nA. 2x2 \t B.
4x4 \n");
System.out.print("Ketik 'A' atau 'B' = ");
char pilih = input.nextLine().charAt(0);
//Jika memilih A, ordo 2x2
switch(pilih){
case 'a':
case 'A':
System.out.print ("\n===== Ordo Matriks = 2 x 2 =====");
int[][] MatriksX = new int [2][2];
int temp;
//Proses memasukkan elemen-elemen matriksnya
System.out.println("\nMasukkan elemen-elemen matriksnya : ");
for (int i=0; i<2 ;i++ )
{
for(int j=0; j<2;j++)
{
System.out.print("Elemen ["+(i+1)+","+(j+1)+"]
= ");
MatriksX[i][j]=Integer.parseInt(input.nextLine());
}
}
//Proses menampilkan matriks
System.out.print("\nBerikut tampilan matriksnya : \n");
for (int i=0; i<2 ;i++)
{
for(int j=0;j<2;j++)
{
System.out.print(MatriksX[i][j]+"\t");
}
System.out.println();
}
//Proses perhitungan determinan Matriks
float
dtrm;
dtrm = (MatriksX[0][0]*MatriksX[1][1])-(MatriksX[1][0]*MatriksX[0][1]);
//Proses menampilkan determinan Matriks
System.out.println("\nMaka, determinan = "+dtrm);
//Proses membentuk adjoin
System.out.print("\nInvers Matriks : \n");
temp = MatriksX[0][0];
MatriksX[0][0]=MatriksX[1][1];
MatriksX[1][1]=temp;
MatriksX[0][1]=MatriksX[0][1]*-1;
MatriksX[1][0]=MatriksX[1][0]*-1;
//Proses perhitungan Invers
for (int i=0;i<2;i++)
{
for (int j=0;j<2;j++)
{
System.out.print(MatriksX[i][j]/dtrm+"\t");
}
System.out.println();
}
break;
//Jika memilih B, ordo 4x4
case 'b':
case 'B':
System.out.print ("\n===== Ordo Matriks = 4 x 4 =====");
int[][] MatriksY = new int [4][4];
//Proses memasukkan elemen-elemen matriksnya
System.out.println("\nMasukkan elemen-elemen matriksnya : ");
for (int i=0; i<4 ;i++ )
{
for(int j=0; j<4;j++)
{
System.out.print("Elemen ["+(i+1)+","+(j+1)+"]
= ");
MatriksY[i][j]=Integer.parseInt(input.nextLine());
}
}
//Proses menampilkan matriks
System.out.print("\nBerikut tampilan matriksnya : \n");
for (int i=0; i<4 ;i++ )
{
for(int j=0;j<4;j++)
{
System.out.print(MatriksY[i][j]+"\t");
}
System.out.println();
}
//Proses perhitungan determinan matriks
float dtr;
dtr =
(MatriksY[0][0]*MatriksY[1][1]*MatriksY[2][2]*MatriksY[3][3])+(MatriksY[0][1]*MatriksY[1][2]*MatriksY[2][3]*MatriksY[3][0])+(MatriksY[0][2]*MatriksY[1][3]*MatriksY[2][0]*MatriksY[3][1])-(MatriksY[0][3]*MatriksY[1][2]*MatriksY[2][1]*MatriksY[3][0])-(MatriksY[0][0]*MatriksY[1][3]*MatriksY[2][2]*MatriksY[3][1])-(MatriksY[0][1]*MatriksY[1][0]*MatriksY[2][3]*MatriksY[3][2]);
//Proses menampilkan determinan matriks
System.out.println("\nMaka, determinan = "+dtr);
System.out.print("\nInvers Matriks : \n");
//Proses Kofaktor
int m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41,
m42, m43, m44;
m11 =
(MatriksY[1][1]*MatriksY[2][2]*MatriksY[3][3])+(MatriksY[1][2]*MatriksY[2][3]*MatriksY[3][0])+(MatriksY[1][3]*MatriksY[2][0]*MatriksY[3][1])-(MatriksY[1][3]*MatriksY[2][2]*MatriksY[3][1])-(MatriksY[1][0]*MatriksY[2][3]*MatriksY[3][2])-(MatriksY[1][1]*MatriksY[2][0]*MatriksY[3][3]);
m12 =
-1*(MatriksY[1][0]*MatriksY[2][2]*MatriksY[3][3])+(MatriksY[1][2]*MatriksY[2][3]*MatriksY[3][0])+(MatriksY[1][3]*MatriksY[2][0]*MatriksY[3][1])-(MatriksY[1][3]*MatriksY[2][2]*MatriksY[3][0])-(MatriksY[1][0]*MatriksY[2][3]*MatriksY[3][2])-(MatriksY[1][1]*MatriksY[2][0]*MatriksY[3][3]);
m13 = (MatriksY[1][0]*MatriksY[2][1]*MatriksY[3][3])+(MatriksY[1][1]*MatriksY[2][3]*MatriksY[3][0])+(MatriksY[1][3]*MatriksY[2][0]*MatriksY[3][1])-(MatriksY[1][3]*MatriksY[2][1]*MatriksY[3][0])-(MatriksY[1][0]*MatriksY[2][3]*MatriksY[3][1])-(MatriksY[1][1]*MatriksY[2][0]*MatriksY[3][3]);
m14= -1*(MatriksY[1][0]*MatriksY[2][1]*MatriksY[3][2])+(MatriksY[1][1]*MatriksY[2][2]*MatriksY[3][0])+(MatriksY[1][2]*MatriksY[2][0]*MatriksY[3][1])-(MatriksY[1][2]*MatriksY[2][1]*MatriksY[3][0])-(MatriksY[1][0]*MatriksY[2][2]*MatriksY[3][1])-(MatriksY[1][1]*MatriksY[2][0]*MatriksY[3][2]);
m21 =
-1*(MatriksY[0][1]*MatriksY[2][2]*MatriksY[3][3])+(MatriksY[0][2]*MatriksY[2][3]*MatriksY[3][0])+(MatriksY[0][3]*MatriksY[2][0]*MatriksY[3][1])-(MatriksY[0][3]*MatriksY[2][2]*MatriksY[3][1])-(MatriksY[0][0]*MatriksY[2][3]*MatriksY[3][2])-(MatriksY[0][1]*MatriksY[2][0]*MatriksY[3][3]);
m22 =
(MatriksY[0][0]*MatriksY[2][2]*MatriksY[3][3])+(MatriksY[0][2]*MatriksY[2][3]*MatriksY[3][0])+(MatriksY[0][3]*MatriksY[2][0]*MatriksY[3][1])-(MatriksY[0][3]*MatriksY[2][2]*MatriksY[3][0])-(MatriksY[0][0]*MatriksY[2][3]*MatriksY[3][2])-(MatriksY[0][1]*MatriksY[2][0]*MatriksY[3][3]);
m23 =
-1*(MatriksY[0][0]*MatriksY[2][1]*MatriksY[3][3])+(MatriksY[0][1]*MatriksY[2][3]*MatriksY[3][0])+(MatriksY[0][3]*MatriksY[2][0]*MatriksY[3][1])-(MatriksY[0][3]*MatriksY[2][1]*MatriksY[3][0])-(MatriksY[0][0]*MatriksY[2][3]*MatriksY[3][1])-(MatriksY[0][1]*MatriksY[2][0]*MatriksY[3][3]);
m24 =
(MatriksY[0][0]*MatriksY[2][1]*MatriksY[3][2])+(MatriksY[0][1]*MatriksY[2][2]*MatriksY[3][0])+(MatriksY[0][2]*MatriksY[2][0]*MatriksY[3][1])-(MatriksY[0][2]*MatriksY[2][1]*MatriksY[3][0])-(MatriksY[0][0]*MatriksY[2][2]*MatriksY[3][1])-(MatriksY[0][1]*MatriksY[2][0]*MatriksY[3][2]);
m31 = (MatriksY[0][1]*MatriksY[1][2]*MatriksY[3][3])+(MatriksY[0][2]*MatriksY[1][3]*MatriksY[3][0])+(MatriksY[0][3]*MatriksY[1][1]*MatriksY[3][1])-(MatriksY[0][3]*MatriksY[1][2]*MatriksY[3][1])-(MatriksY[0][1]*MatriksY[1][3]*MatriksY[3][2])-(MatriksY[0][2]*MatriksY[1][1]*MatriksY[3][3]);
m32 =
-1*(MatriksY[0][0]*MatriksY[1][2]*MatriksY[3][3])+(MatriksY[0][2]*MatriksY[1][3]*MatriksY[3][0])+(MatriksY[0][3]*MatriksY[1][0]*MatriksY[3][2])-(MatriksY[0][3]*MatriksY[1][2]*MatriksY[3][0])-(MatriksY[0][0]*MatriksY[1][3]*MatriksY[3][2])-(MatriksY[0][1]*MatriksY[1][0]*MatriksY[3][3]);
m33 =
(MatriksY[0][0]*MatriksY[1][1]*MatriksY[3][3])+(MatriksY[0][1]*MatriksY[1][3]*MatriksY[3][0])+(MatriksY[0][3]*MatriksY[1][0]*MatriksY[3][1])-(MatriksY[0][3]*MatriksY[1][1]*MatriksY[3][0])-(MatriksY[0][0]*MatriksY[1][3]*MatriksY[3][1])-(MatriksY[0][1]*MatriksY[1][0]*MatriksY[3][3]);
m34=
-1*(MatriksY[0][0]*MatriksY[1][1]*MatriksY[3][2])+(MatriksY[0][1]*MatriksY[1][2]*MatriksY[3][0])+(MatriksY[0][2]*MatriksY[1][0]*MatriksY[3][1])-(MatriksY[0][2]*MatriksY[1][1]*MatriksY[3][0])-(MatriksY[0][0]*MatriksY[1][2]*MatriksY[3][1])-(MatriksY[0][1]*MatriksY[1][0]*MatriksY[3][2]);
m41=
-1*(MatriksY[0][1]*MatriksY[1][2]*MatriksY[2][3])+(MatriksY[0][2]*MatriksY[1][3]*MatriksY[2][1])+(MatriksY[0][3]*MatriksY[1][1]*MatriksY[2][2])-(MatriksY[0][3]*MatriksY[1][2]*MatriksY[2][1])-(MatriksY[0][1]*MatriksY[1][3]*MatriksY[2][2])-(MatriksY[0][2]*MatriksY[1][1]*MatriksY[2][3]);
m42= (MatriksY[0][0]*MatriksY[1][2]*MatriksY[2][3])+(MatriksY[0][2]*MatriksY[1][3]*MatriksY[2][0])+(MatriksY[0][3]*MatriksY[1][0]*MatriksY[2][2])-(MatriksY[0][3]*MatriksY[1][2]*MatriksY[2][0])-(MatriksY[0][0]*MatriksY[1][3]*MatriksY[2][2])-(MatriksY[0][2]*MatriksY[1][0]*MatriksY[2][3]);
m43= -1*(MatriksY[0][0]*MatriksY[1][1]*MatriksY[2][3])+(MatriksY[0][1]*MatriksY[1][3]*MatriksY[2][0])+(MatriksY[0][3]*MatriksY[1][0]*MatriksY[2][1])-(MatriksY[0][3]*MatriksY[1][1]*MatriksY[2][0])-(MatriksY[0][0]*MatriksY[1][3]*MatriksY[2][1])-(MatriksY[0][1]*MatriksY[1][0]*MatriksY[2][3]);
m44=(MatriksY[0][0]*MatriksY[1][1]*MatriksY[2][3])+(MatriksY[0][1]*MatriksY[1][3]*MatriksY[2][0])+(MatriksY[0][3]*MatriksY[1][0]*MatriksY[2][1])-(MatriksY[0][3]*MatriksY[1][1]*MatriksY[2][0])-(MatriksY[0][0]*MatriksY[1][3]*MatriksY[2][1])-(MatriksY[0][1]*MatriksY[1][0]*MatriksY[2][3]);
//Proses Adjoin (Transpose dari Kofaktor)
MatriksY[0][0] = m11;
MatriksY[0][1] = m21;
MatriksY[0][2] = m31;
MatriksY[0][3] = m41;
MatriksY[1][0] = m12;
MatriksY[1][1] = m22;
MatriksY[1][2] = m32;
MatriksY[1][2] = m42;
MatriksY[2][0] = m13;
MatriksY[2][1] = m23;
MatriksY[2][2] = m33;
MatriksY[2][3] = m43;
MatriksY[3][0] = m14;
MatriksY[3][1] = m24;
MatriksY[3][2] = m34;
MatriksY[3][3] = m44;
//Proses perhitungan Invers
for (int i=0;i<4;i++)
{
for (int j=0;j<4;j++)
{
System.out.print(MatriksY[i][j]/dtr+"\t");
}
System.out.println();
}
break;
default:
}
}
catch (Exception e)
{
System.out.println("Anda salah memasukkan data");
}
System.out.println("\n=================================
PROGRAM SELESAI =================================\n");
}
}
output
0 comments:
Post a Comment