• Lenguaje

    Java

  • Descripción

    Resuelve sistemas de ecuaciones con el método de Gauss-Jordan.

    Por ejemplo para resolver el siguiente sistema de ecuaciones:

    2x+y-z=8
    -3x-y+2z=-11
    -2x+y+2z=-3

    Ingrese los siguientes datos:
    Ingrese el número de ecuaciones (n): 3
    Ingrese la literal de la variable 1: x
    Ingrese la literal de la variable 2: y
    Ingrese la literal de la variable 3: z
    Ingrese el coeficiente de la variable 'x' de la ecuación 1: 2
    Ingrese el coeficiente de la variable 'y' de la ecuación 1: 1
    Ingrese el coeficiente de la variable 'z' de la ecuación 1: -1
    Ingrese la constante de la ecuación 1: 8
    Ingrese el coeficiente de la variable 'x' de la ecuación 2: -3
    Ingrese el coeficiente de la variable 'y' de la ecuación 2: -1
    Ingrese el coeficiente de la variable 'z' de la ecuación 2: 2
    Ingrese la constante de la ecuación 2: -11
    Ingrese el coeficiente de la variable 'x' de la ecuación 3: -2
    Ingrese el coeficiente de la variable 'y' de la ecuación 3: 1
    Ingrese el coeficiente de la variable 'z' de la ecuación 3: 2
    Ingrese la constante de la ecuación 3: -3

    Solución:

    x = 2
    y = 3
    z = -1

    Presione una tecla para continuar . . .

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import java.util.Scanner;

public class GaussJordan {

    public static void main(String[] args) {
        int i, j, k, n;
        float termino;
        String literales = "";
        char literal;
        Scanner in = new Scanner(System.in);
        System.out.print("Ingrese el n\243mero de ecuaciones (n): ");
        n = Integer.parseInt(in.nextLine());
        float[][] matriz = new float[n][n+1];
        for(i=0; i<n; i++)
        {
            System.out.print("Ingrese la literal de la variable " + (i+1) + ": ");
            do {
                literal = in.nextLine().toLowerCase().charAt(0);
            } while(!Character.isLetter(literal) || literales.contains(String.valueOf(literal)));
            literales = literales + literal;
        }
        for(i=0; i<n; i++)
        {
            for(j=0; j<n; j++)
            {
                System.out.print("Ingrese el coeficiente de la variable '" + literales.charAt(j) + "' de la ecuaci\242n " + (i+1) + ": ");
                matriz[i][j] = Float.parseFloat(in.nextLine());
            }
            System.out.print("Ingrese la constante de la ecuaci\242n " + (i+1) + ": ");
            matriz[i][n] = Float.parseFloat(in.nextLine());
        }
        System.out.println();
        for(i=0; i<n; i++)
        {
            if(matriz[i][i]==0.0)
            {
                System.err.println("Error: divisi\242n entre cero.\n");
                return;
            }
            for(k=0; k<n; k++)
                if(k!=i)
                {
                    termino = matriz[k][i] / matriz[i][i];
                    for(j=0; j<=n; j++)
                        matriz[k][j] -= termino * matriz[i][j];
                }
        }
        System.out.println("Soluci\242n:\n");
        for(i=0; i<n; i++)
        {
            termino = matriz[i][n] / matriz[i][i];
            System.out.println(literales.charAt(i) + " = " + termino);
        }
        System.out.println();
    }

}