Está en la página 1de 5

package gaussjordan;

/**
*
* @author RALT
*/
import java.io.BufferedReader;//Complementos para leer datos desde el teclado
import java.io.IOException;
import java.io.InputStreamReader;
public class gj1 {
public static void main(String[] args)throws IOException{
System.out.println("\tEcuacion por el Metodo de Gauss Jordan\n ");
System.out.println("Metodo para sacar e valor de x, y, z \n");
double M[][];//Variable de la Matriz
M=new double [3][4];//Tamaño de la MAtriz
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int x=0;//Variable auxiliar
//PRIMEROS 2 CICLOS PARA LEER LOS DATOS DE LA MATRIZ
//Siempre se tendra que utilizar 2 ciclos for para trabajar con
//arreglos bidimencionales para representar la matriz en este caso seria
//la ecuacion de gauss jordan
for(int i=0;i<3;i++){
for(int j=0;j<4;j++){
System.out.println("Ingresar un numero para la posicion "+(i+1)+"
,"+(j+1)+": ");
x=Integer.parseInt(br.readLine());
M[i][j]=x;
}
}

//Imprimir la matriz aumentada ingresada


System.out.println("La matriz Aumentada es: ");
for(int i=0;i<3;i++){//SEGUNDOS CICLOS PARA IMPRIMIR LA MATRIZ
for(int j=0;j<4;j++){
System.out.print(M[i][j]+"\t");
}
System.out.println("\n");
}
//Variables auxiliares
double aux1=0, aux2=0, aux3=0, aux4=0;
//Comparaciones para saber si es uno y hacer el cambio de posicion
if(M[0][0]==1||M[0][0]==-1){//Para la fila 1
M[0][0]=1;
}
else
if(M[1][0]==1||M[1][0]==-1){//Para la fila 2
aux1=M[1][0];
aux2=M[1][1];
aux3=M[1][2];
aux4=M[1][3];
//
M[1][0]=M[0][0];
M[1][1]=M[0][1];
M[1][2]=M[0][2];
M[1][3]=M[0][3];
//
M[0][0]=aux1;
M[0][1]=aux2;
M[0][2]=aux3;
M[0][3]=aux4;
// M[1][0]=1;
}
else
if(M[2][0]==1||M[2][0]==-1){//Para la fila 3
aux1=M[2][0];
aux2=M[2][1];
aux3=M[2][2];
aux4=M[2][3];
//
M[2][0]=M[0][0];
M[2][1]=M[0][1];
M[2][2]=M[0][2];
M[2][3]=M[0][3];
//
M[0][0]=aux1;
M[0][1]=aux2;
M[0][2]=aux3;
M[0][3]=aux4;
// M[2][0]=1;

}
System.out.println("==========================");//Separador para no confundirme
jejeje
System.out.println("Siguiente Paso de Matriz es: ");
for(int i=0;i<3;i++){//CICLOS PARA IMPRIMIR LA MATRIZ acomodada
for(int j=0;j<4;j++){
System.out.print(M[i][j]+"\t");
}
System.out.println("\n");
}
System.out.println("==========================");
if(M[0][0]!=1&&M[1][0]!=1&&M[2][0]!=1){
M[0][1]=M[0][1]/M[0][0];
M[0][2]=M[0][2]/M[0][0];
M[0][3]=M[0][3]/M[0][0];
M[0][0]=M[0][0]/M[0][0];
System.out.println("Siguiente Paso de Matriz es: ");
for(int i=0;i<3;i++){//CICLOS PARA IMPRIMIR LA MATRIZ acomodada
for(int j=0;j<4;j++){
System.out.print(M[i][j]+"\t");
}
System.out.println("\n");
}
System.out.println("==========================");
}
if(M[1][0]!=0){//Condicion para tranformar posicion 1 de la fila 2 en 0
M[1][1]=M[1][1]-M[1][0];
M[1][2]=M[1][2]-M[1][0];
M[1][3]=M[1][3]-M[1][0];
M[1][0]=M[1][0]-M[1][0];
System.out.println("Siguiente Paso de Matriz es: ");
for(int i=0;i<3;i++){//CICLOS PARA IMPRIMIR LA MATRIZ
for(int j=0;j<4;j++){
System.out.print(M[i][j]+"\t");
}
System.out.println("\n");
}
System.out.println("==========================");
}
if(M[2][0]!=0){//Condicion para tranformar posicion 1 de la fila 3 en 0
M[2][1]=M[2][1]-M[2][0];
M[2][2]=M[2][2]-M[2][0];
M[2][3]=M[2][3]-M[2][0];
M[2][0]=M[2][0]-M[2][0];
System.out.println("Siguiente Paso de Matriz es: ");
for(int i=0;i<3;i++){//CICLOS PARA IMPRIMIR LA MATRIZ
for(int j=0;j<4;j++){
System.out.print(M[i][j]+"\t");
}
System.out.println("\n");
}
System.out.println("==========================");
}
if(M[1][1]!=1){//Condicion para tranformar posicion 2 de la fila 2 en 1
M[1][2]=M[1][2]/M[1][1];
M[1][3]=M[1][3]/M[1][1];
M[1][1]=M[1][1]/M[1][1];
System.out.println("Siguiente Paso de Matriz es: ");
for(int i=0;i<3;i++){//CICLOS PARA IMPRIMIR LA MATRIZ
for(int j=0;j<4;j++){
System.out.print(M[i][j]+"\t");
}
System.out.println("\n");
}
System.out.println("==========================");
}
if(M[2][1]!=0){//Condicion para tranformar posicion 2 de la fila 3 en 0
M[2][2]=M[2][2]-M[2][1];
M[2][3]=M[2][3]-M[2][1];
M[2][1]=M[2][1]-M[2][1];
System.out.println("Siguiente Paso de Matriz es: ");
for(int i=0;i<3;i++){//CICLOS PARA IMPRIMIR LA MATRIZ
for(int j=0;j<4;j++){
System.out.print(M[i][j]+"\t");
}
System.out.println("\n");
}
System.out.println("==========================");
}
if(M[2][2]!=1){//Condicion para tranformar posicion 3 de la fila 3 en 1

M[2][3]=M[2][2]/M[2][3];
M[2][2]=M[2][2]/M[2][2];
System.out.println("Siguiente Paso de Matriz es: ");
for(int i=0;i<3;i++){//CICLOS PARA IMPRIMIR LA MATRIZ
for(int j=0;j<4;j++){
System.out.print(M[i][j]+"\t");
}
System.out.println("\n");
}
System.out.println("==========================");
}
if(M[0][1]!=0){//Condicion para tranformar posicion 2 de la fila 1 en 0
M[0][2]=M[0][2]-M[0][1];
M[0][3]=M[0][3]-M[0][1];
M[0][1]=M[0][1]-M[0][1];
System.out.println("Siguiente Paso de Matriz es: ");
for(int i=0;i<3;i++){//CICLOS PARA IMPRIMIR LA MATRIZ
for(int j=0;j<4;j++){
System.out.print(M[i][j]+"\t");
}
System.out.println("\n");
}
System.out.println("==========================");
}
if(M[0][2]!=0){//Condicion para tranformar posicion 3 de la fila 1 en 0

M[0][3]=M[0][3]-M[0][2];
M[0][2]=M[0][2]-M[0][2];
System.out.println("Siguiente Paso de Matriz es: ");
for(int i=0;i<3;i++){//CICLOS PARA IMPRIMIR LA MATRIZ
for(int j=0;j<4;j++){
System.out.print(M[i][j]+"\t");
}
System.out.println("\n");
}
System.out.println("==========================");
}
if(M[1][2]!=0){//Condicion para tranformar posicion 3 de la fila 2 en 0

M[1][3]=M[1][3]-M[1][2];
M[1][2]=M[1][2]-M[1][2];
System.out.println("Siguiente Paso de Matriz es: ");
for(int i=0;i<3;i++){//CICLOS PARA IMPRIMIR LA MATRIZ
for(int j=0;j<4;j++){
System.out.print(M[i][j]+"\t");
}
System.out.println("\n");
}
System.out.println("==========================");
}
System.out.println();
System.out.println("El valor de X es: "+M[0][3]);//Imprime dato de x
System.out.println("El valor de Y es: "+M[1][3]);//Imprime dato de y
System.out.println("El valor de Z es: "+M[2][3]);//Imprime dato de z
System.out.println("==========================");
System.out.println("Fin del programa =)");

}
}

También podría gustarte