Inverse of a Matrix problem
I am trying to make a code for finding out the inverse of a matrix but something is wrong....can anybody please help me with this...Here's the code:
Code Java:
import java.util.Scanner;
public class mainclass
{
public static void main(String str[])
{
Scanner in = new Scanner(System.in);
int num;
System.out.println("Enter rows/columns : ");
num = in.nextInt();
double A[][] = new double[num][num];
double B[][] = new double[num][num];
for(int i=0;i<num;i++)
for(int j=0;j<num;j++)
{
System.out.println("Enter element " + "["+i+"]"+"["+j+"]");
A[i][j] = in.nextDouble();
}
for(int i=0;i<num;i++)
for(int j=0;j<num;j++)
{
if(i==j)
{
B[i][j] = 1;
}
else
{
B[i][j] = 0;
}
}
label1: for(int i=0;i<num;i++)
{
if(i%2==0)
{
label2: for(int j=0;j<num;j++)
{
if(j==i)
{
if(A[j][i]>1 || A[j][i]<1)
{
label3: for(int k=0;k<num;k++)
{
if(k!=j)
{
double div = (A[j][i]-1)/A[k][i];
for(int l=0;l<num;l++)
{
A[j][l]=A[j][l]-(div*A[k][l]);
B[j][l]=B[j][l]-(div*B[k][l]);
}
continue label2;
}
else
continue label3;
}
}
else
continue label2;
}
else
{
if(A[j][i]!=0)
{
label: for(int k=0;k<num;k++)
if(k!=j)
{
{
double div = A[k][i]/A[j][i];
for(int l=0;l<num;l++)
{
A[j][l]=A[j][l]-(div*A[k][l]);
B[j][l]=B[j][l]-(div*B[k][l]);
}
}
break label;
}
else
{
continue label;
}
}
else
continue label2;
}
}
}
else
{
label4: for(int j=num-1;j>=0;j--)
{
if(j==i)
{
if(A[j][i]>1 || A[j][i]<1)
{
label5: for(int k=0;k<num;k++)
{
if(k!=j)
{
double div = (A[j][i]-1)/A[k][i];
for(int l=0;l<num;l++)
{
A[j][l]=A[j][l]-(div*A[k][l]);
B[j][l]=B[j][l]-(div*B[k][l]);
}
break label5;
}
else
continue label5;
}
}
else
continue label4;
}
else
{
if(A[j][i]!=0)
{
label6: for(int k=0;k<num;k++)
if(k!=j)
{
double div = A[k][i]/A[j][i];
for(int l=0;l<num;l++)
{
A[j][l]=A[j][l]-(div*A[k][l]);
B[j][l]=B[j][l]-(div*B[k][l]);
}
break label6;
}
}
else
continue label4;
}
}
}
}
System.out.println("The inverted matrix is : ");
for(int i=0;i<num;i++)
{
System.out.println("");
for(int j=0;j<num;j++)
{
System.out.print(B[i][j]+ " ");
}
}
}
}