fork download
  1. public class Main {
  2. public static void main(String[] args) {
  3.  
  4. int n = 3;
  5.  
  6. double[][] a = {
  7. {3, 6, -9, 15},
  8. {2, 4, -6, 10},
  9. {-2, -3, 4, -6}
  10. };
  11.  
  12. System.out.println("Initial Augmented Matrix:");
  13. printMatrix(a);
  14.  
  15. for (int i = 0; i < n; i++) {
  16. System.out.println("\nPivot at row " + (i+1));
  17.  
  18. for (int k = i + 1; k < n; k++) {
  19. double factor = a[k][i] / a[i][i];
  20. System.out.printf("R%d = R%d - (%.3f)*R%d\n",
  21. k+1, k+1, factor, i+1);
  22.  
  23. for (int j = i; j <= n; j++) {
  24. a[k][j] -= factor * a[i][j];
  25. }
  26. }
  27.  
  28. System.out.println("Matrix after elimination in column " + (i+1) + ":");
  29. printMatrix(a);
  30. }
  31.  
  32. System.out.println("\nUpper Triangular Matrix:");
  33. printMatrix(a);
  34.  
  35. double[] x = new double[n];
  36. System.out.println("\n--- Back Substitution Steps ---");
  37.  
  38. for (int i = n - 1; i >= 0; i--) {
  39. x[i] = a[i][n];
  40.  
  41. for (int j = i + 1; j < n; j++) {
  42. x[i] -= a[i][j] * x[j];
  43. }
  44.  
  45. x[i] /= a[i][i];
  46.  
  47. System.out.printf("x%d = %.6f\n", i + 1, x[i]);
  48. }
  49.  
  50. System.out.println("\nFinal Solution:");
  51. for (int i = 0; i < n; i++) {
  52. System.out.printf("x%d = %.6f\n", i + 1, x[i]);
  53. }
  54. }
  55.  
  56. static void printMatrix(double[][] a) {
  57. for (double[] row : a) {
  58. for (double val : row) {
  59. System.out.printf("%10.3f ", val);
  60. }
  61. System.out.println();
  62. }
  63. }
  64. }
  65.  
Success #stdin #stdout 0.25s 58192KB
stdin
Standard input is empty
stdout
Initial Augmented Matrix:
     3.000      6.000     -9.000     15.000 
     2.000      4.000     -6.000     10.000 
    -2.000     -3.000      4.000     -6.000 

Pivot at row 1
R2 = R2 - (0.667)*R1
R3 = R3 - (-0.667)*R1
Matrix after elimination in column 1:
     3.000      6.000     -9.000     15.000 
     0.000      0.000      0.000      0.000 
     0.000      1.000     -2.000      4.000 

Pivot at row 2
R3 = R3 - (Infinity)*R2
Matrix after elimination in column 2:
     3.000      6.000     -9.000     15.000 
     0.000      0.000      0.000      0.000 
     0.000        NaN        NaN        NaN 

Pivot at row 3
Matrix after elimination in column 3:
     3.000      6.000     -9.000     15.000 
     0.000      0.000      0.000      0.000 
     0.000        NaN        NaN        NaN 

Upper Triangular Matrix:
     3.000      6.000     -9.000     15.000 
     0.000      0.000      0.000      0.000 
     0.000        NaN        NaN        NaN 

--- Back Substitution Steps ---
x3 = NaN
x2 = NaN
x1 = NaN

Final Solution:
x1 = NaN
x2 = NaN
x3 = NaN